👔 (user) create user check password

create boilerplate code for user check password
This commit is contained in:
unknown
2025-06-30 23:42:28 +07:00
parent 26295c749c
commit e7857e0384
4 changed files with 29 additions and 2 deletions

View File

@ -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);
};

View File

@ -4,12 +4,18 @@ import { createUserController } from "./controller/createUser.controller";
import { editUserController } from "./controller/editUser.controller"; import { editUserController } from "./controller/editUser.controller";
import { unautenticatedMiddleware } from "../../middleware/auth/unauthenticated.middleware"; import { unautenticatedMiddleware } from "../../middleware/auth/unauthenticated.middleware";
import { authenticatedMiddleware } from "../../middleware/auth/authenticated.middleware"; import { authenticatedMiddleware } from "../../middleware/auth/authenticated.middleware";
import { checkUserPasswordController } from "./controller/checkUserPassword.controller";
export const userModule = new Elysia({ prefix: "/users" }) export const userModule = new Elysia({ prefix: "/users" })
.get("/", getAllUserController) .get("/", getAllUserController)
.group("", (app) => .group("", (app) =>
app.onBeforeHandle(unautenticatedMiddleware).post("/", createUserController) app
.onBeforeHandle(unautenticatedMiddleware) // middleware to ensure the user is not authenticated
.post("/", createUserController)
) )
.group("", (app) => .group("", (app) =>
app.onBeforeHandle(authenticatedMiddleware).put("/", editUserController) app
.onBeforeHandle(authenticatedMiddleware) // middleware to ensure the user is authenticated
.put("/", editUserController)
.post("/check-password", checkUserPasswordController)
); );

View File

@ -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}"`;
};

View File

@ -34,6 +34,7 @@ export const editUserService = async (
let storeAvatar: string | undefined = undefined; let storeAvatar: string | undefined = undefined;
if (payload.avatar) storeAvatar = await saveAvatar(payload.avatar as File); 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; let storeCommentBackground: string | undefined = undefined;
if (payload.commentBackground) if (payload.commentBackground)
storeCommentBackground = await saveCommentBackground( storeCommentBackground = await saveCommentBackground(