From 48946be6b7cdcc91392f1274f95738876df48bca Mon Sep 17 00:00:00 2001 From: rafiarrafif Date: Sun, 22 Jun 2025 09:45:06 +0700 Subject: [PATCH] edit:module:user | add middlewware for unauthenticated only --- src/middleware/auth/unauthenticated.middleware.ts | 13 ++++++------- .../user/controller/createUser.controller.ts | 14 -------------- src/modules/user/index.ts | 7 +++++-- 3 files changed, 11 insertions(+), 23 deletions(-) diff --git a/src/middleware/auth/unauthenticated.middleware.ts b/src/middleware/auth/unauthenticated.middleware.ts index bfecabe..74f5509 100644 --- a/src/middleware/auth/unauthenticated.middleware.ts +++ b/src/middleware/auth/unauthenticated.middleware.ts @@ -3,13 +3,12 @@ import { getCookie } from "../../helpers/http/userHeader/cookies/getCookies"; import { returnErrorResponse } from "../../helpers/callback/httpResponse"; export const unautenticatedMiddleware = (ctx: Context) => { + // Check if the user is already logged in by checking the auth token in cookies. If the user is logged in, return an error response try { - const cookies = getCookie(ctx); - if (cookies.auth_token) - return returnErrorResponse(ctx.set, 403, "User already aunthenticated"); - - // pass - } catch (error) { - // pass + const cookie = getCookie(ctx); + if (cookie && cookie.auth_token) + return returnErrorResponse(ctx.set, 401, "You are already logged in. "); + } catch (_) { + // Pass } }; diff --git a/src/modules/user/controller/createUser.controller.ts b/src/modules/user/controller/createUser.controller.ts index aa2d7ee..3c4dead 100644 --- a/src/modules/user/controller/createUser.controller.ts +++ b/src/modules/user/controller/createUser.controller.ts @@ -7,7 +7,6 @@ import { Context } from "elysia"; import { createUserService } from "../services/createUser.service"; import { mainErrorHandler } from "../../../helpers/error/handler"; import { createUserSchema } from "../schemas/createUser.schema"; -import { getCookie } from "../../../helpers/http/userHeader/cookies/getCookies"; /** * @function createUser @@ -31,19 +30,6 @@ import { getCookie } from "../../../helpers/http/userHeader/cookies/getCookies"; export const createUserController = async ( ctx: Context & { body: Prisma.UserCreateInput } ) => { - // Check if the user is already logged in by checking the auth token in cookies. If the user is logged in, return an error response - try { - const cookie = getCookie(ctx); - if (cookie && cookie.auth_token) - return returnErrorResponse( - ctx.set, - 401, - "You are already logged in. Please log out first if you want to create a new account." - ); - } catch (_) { - // Pass - } - // Validate the user input using a validation schema const { error } = createUserSchema.validate(ctx.body); if (error) diff --git a/src/modules/user/index.ts b/src/modules/user/index.ts index 02467f6..794a857 100644 --- a/src/modules/user/index.ts +++ b/src/modules/user/index.ts @@ -2,8 +2,11 @@ import Elysia from "elysia"; import { getAllUserController } from "./controller/getAllUser.controller"; import { createUserController } from "./controller/createUser.controller"; import { editUserController } from "./controller/editUser.controller"; +import { unautenticatedMiddleware } from "../../middleware/auth/unauthenticated.middleware"; export const userModule = new Elysia({ prefix: "/users" }) .get("/", getAllUserController) - .post("/", createUserController) - .put("/", editUserController); + .put("/", editUserController) + .group("", (app) => + app.onBeforeHandle(unautenticatedMiddleware).post("/", createUserController) + );