diff --git a/src/modules/user/controller/checkUserPassword.controller.ts b/src/modules/user/controller/checkUserPassword.controller.ts new file mode 100644 index 0000000..976d1ff --- /dev/null +++ b/src/modules/user/controller/checkUserPassword.controller.ts @@ -0,0 +1,12 @@ +import { Context } from "elysia"; +import { checkUserPasswordService } from "../services/checkUserPassword.service"; +import { jwtDecode } from "../../../helpers/http/jwt/decode"; +import { getCookie } from "../../../helpers/http/userHeader/cookies/getCookies"; + +export const checkUserPasswordController = async ( + ctx: Context & { body: { password: string } } +) => { + const cookie = getCookie(ctx); + const jwtPayload = jwtDecode(cookie.auth_token!); + return checkUserPasswordService(jwtPayload, ctx.body.password); +}; diff --git a/src/modules/user/index.ts b/src/modules/user/index.ts index adcd4c0..712a18c 100644 --- a/src/modules/user/index.ts +++ b/src/modules/user/index.ts @@ -4,12 +4,18 @@ import { createUserController } from "./controller/createUser.controller"; import { editUserController } from "./controller/editUser.controller"; import { unautenticatedMiddleware } from "../../middleware/auth/unauthenticated.middleware"; import { authenticatedMiddleware } from "../../middleware/auth/authenticated.middleware"; +import { checkUserPasswordController } from "./controller/checkUserPassword.controller"; export const userModule = new Elysia({ prefix: "/users" }) .get("/", getAllUserController) .group("", (app) => - app.onBeforeHandle(unautenticatedMiddleware).post("/", createUserController) + app + .onBeforeHandle(unautenticatedMiddleware) // middleware to ensure the user is not authenticated + .post("/", createUserController) ) .group("", (app) => - app.onBeforeHandle(authenticatedMiddleware).put("/", editUserController) + app + .onBeforeHandle(authenticatedMiddleware) // middleware to ensure the user is authenticated + .put("/", editUserController) + .post("/check-password", checkUserPasswordController) ); diff --git a/src/modules/user/services/checkUserPassword.service.ts b/src/modules/user/services/checkUserPassword.service.ts new file mode 100644 index 0000000..6ca3e97 --- /dev/null +++ b/src/modules/user/services/checkUserPassword.service.ts @@ -0,0 +1,8 @@ +import { JWTAuthToken } from "../../../helpers/http/jwt/decode/types"; + +export const checkUserPasswordService = async ( + jwtPayload: JWTAuthToken, + password: string +) => { + return `id user "${jwtPayload.userId}" cek password "${password}"`; +}; diff --git a/src/modules/user/services/editUser.service.ts b/src/modules/user/services/editUser.service.ts index 4e7245d..090cb2e 100644 --- a/src/modules/user/services/editUser.service.ts +++ b/src/modules/user/services/editUser.service.ts @@ -34,6 +34,7 @@ export const editUserService = async ( let storeAvatar: string | undefined = undefined; if (payload.avatar) storeAvatar = await saveAvatar(payload.avatar as File); + // Store the comment background to the file system if provided in the payload let storeCommentBackground: string | undefined = undefined; if (payload.commentBackground) storeCommentBackground = await saveCommentBackground(