diff --git a/src/helpers/error/instances/forwarder.ts b/src/helpers/error/instances/forwarder.ts new file mode 100644 index 0000000..b9a5821 --- /dev/null +++ b/src/helpers/error/instances/forwarder.ts @@ -0,0 +1,13 @@ +import { AppError } from "./app"; + +export function ErrorForwarder( + statusCode: number, + message: string, + cause: unknown +): never { + if (cause instanceof AppError) { + throw cause; + } + + throw new AppError(statusCode, message, cause); +} diff --git a/src/modules/auth/services/authVerification.service.ts b/src/modules/auth/services/authVerification.service.ts index 98a0707..ed0636a 100644 --- a/src/modules/auth/services/authVerification.service.ts +++ b/src/modules/auth/services/authVerification.service.ts @@ -35,7 +35,7 @@ export const authVerificationService = async (cookie: string) => { 1000 ); await storeUserSessionToCacheService(sessionCheckOnDB, timeExpires); - return "daridb"; + return sessionCheckOnDB; } } else { return jwtSession; diff --git a/src/modules/debug/debug.controller.ts b/src/modules/debug/debug.controller.ts index e320b02..e4dda41 100644 --- a/src/modules/debug/debug.controller.ts +++ b/src/modules/debug/debug.controller.ts @@ -1,13 +1,15 @@ import { Context } from "elysia"; import { mainErrorHandler } from "../../helpers/error/handler"; import { debugService } from "./debug.service"; +import { returnWriteResponse } from "../../helpers/callback/httpResponse"; -export const debugController = (ctx: Context) => { - ctx.set.status = 418; - return Math.floor( - (new Date("2025-07-13 16:22:12.335").getTime() - new Date().getTime()) / - 1000 - ); +export const debugController = async (ctx: Context) => { + try { + const dataFromService = await debugService(); + return returnWriteResponse(ctx.set, 200, "Message Sent", dataFromService); + } catch (error) { + return mainErrorHandler(ctx.set, error); + } }; // buat debug untuk date to number (second) diff --git a/src/modules/debug/debug.service.ts b/src/modules/debug/debug.service.ts index 8ce09b6..58e4b13 100644 --- a/src/modules/debug/debug.service.ts +++ b/src/modules/debug/debug.service.ts @@ -1,6 +1,11 @@ -import { AppError } from "../../helpers/error/instances/app"; +import { ErrorForwarder } from "../../helpers/error/instances/forwarder"; +import { debug2Service } from "./debug2.service"; -export const debugService = () => { - // return "OK2"; - throw new AppError(404, "not found"); +export const debugService = async () => { + try { + const dataFromService = await debug2Service(); + return dataFromService; + } catch (error) { + ErrorForwarder(402, "Error from 1", error); + } }; diff --git a/src/modules/debug/debug2.service.ts b/src/modules/debug/debug2.service.ts new file mode 100644 index 0000000..216821a --- /dev/null +++ b/src/modules/debug/debug2.service.ts @@ -0,0 +1,11 @@ +import { ErrorForwarder } from "../../helpers/error/instances/forwarder"; +import { debug3Service } from "./debug3.service"; + +export const debug2Service = async () => { + try { + const dataFromService = await debug3Service(); + return dataFromService; + } catch (error) { + ErrorForwarder(402, "Error from 2", error); + } +}; diff --git a/src/modules/debug/debug3.service.ts b/src/modules/debug/debug3.service.ts new file mode 100644 index 0000000..21052e5 --- /dev/null +++ b/src/modules/debug/debug3.service.ts @@ -0,0 +1,5 @@ +import { AppError } from "../../helpers/error/instances/app"; + +export const debug3Service = async () => { + throw new AppError(402, "Error from 3"); +}; diff --git a/src/modules/userSession/repositories/checkUserSessionInCache.repository.ts b/src/modules/userSession/repositories/checkUserSessionInCache.repository.ts index 44f9f42..d407f8a 100644 --- a/src/modules/userSession/repositories/checkUserSessionInCache.repository.ts +++ b/src/modules/userSession/repositories/checkUserSessionInCache.repository.ts @@ -8,6 +8,6 @@ export const checkUserSessionInCacheRepo = async (redisKeyName: string) => { return userSessionInRedis; } catch (error) { - throw new AppError(500, "Server cache error"); + throw new AppError(500, "Server cache error", error); } }; diff --git a/src/modules/userSession/services/checkUserSessionInCache.service.ts b/src/modules/userSession/services/checkUserSessionInCache.service.ts index fae0abb..17ca5c0 100644 --- a/src/modules/userSession/services/checkUserSessionInCache.service.ts +++ b/src/modules/userSession/services/checkUserSessionInCache.service.ts @@ -6,10 +6,7 @@ export const checkUserSessionInCacheService = async ( sessionId: string ) => { const redisKeyName = `${process.env.app_name}:users:${userId}:sessions:${sessionId}`; - try { - const userSessionInRedis = await checkUserSessionInCacheRepo(redisKeyName); - return userSessionInRedis; - } catch { - throw new AppError(502, "Server cache error"); - } + + const userSessionInRedis = await checkUserSessionInCacheRepo(redisKeyName); + return userSessionInRedis; };