From 87cf7fa56cc9c6a05d9b2da2101200f441ef039c Mon Sep 17 00:00:00 2001 From: rafiarrafif Date: Fri, 9 May 2025 00:29:30 +0700 Subject: [PATCH] initial auth basic controller --- src/modules/auth/auth.schema.ts | 6 ++++++ src/modules/auth/auth.types.ts | 4 ++++ .../controller/loginViaPassword.controller.ts | 7 ------- .../controller/loginWithPassword.controller.ts | 16 ++++++++++++++++ src/modules/auth/index.ts | 4 ++-- .../auth/services/loginViaPassword.service.ts | 5 ----- .../auth/services/loginWithPassword.service.ts | 9 +++++++++ 7 files changed, 37 insertions(+), 14 deletions(-) delete mode 100644 src/modules/auth/controller/loginViaPassword.controller.ts create mode 100644 src/modules/auth/controller/loginWithPassword.controller.ts delete mode 100644 src/modules/auth/services/loginViaPassword.service.ts create mode 100644 src/modules/auth/services/loginWithPassword.service.ts diff --git a/src/modules/auth/auth.schema.ts b/src/modules/auth/auth.schema.ts index e69de29..2d87bb7 100644 --- a/src/modules/auth/auth.schema.ts +++ b/src/modules/auth/auth.schema.ts @@ -0,0 +1,6 @@ +import Joi from "joi"; + +export const loginWithPasswordSchema = Joi.object({ + identifier: Joi.string().required(), + password: Joi.string().required(), +}); diff --git a/src/modules/auth/auth.types.ts b/src/modules/auth/auth.types.ts index e69de29..f200c5b 100644 --- a/src/modules/auth/auth.types.ts +++ b/src/modules/auth/auth.types.ts @@ -0,0 +1,4 @@ +export interface LoginWithPasswordRequest { + identifier: string; + password: string; +} diff --git a/src/modules/auth/controller/loginViaPassword.controller.ts b/src/modules/auth/controller/loginViaPassword.controller.ts deleted file mode 100644 index b5f9b17..0000000 --- a/src/modules/auth/controller/loginViaPassword.controller.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Context } from "elysia"; -import { loginViaPasswordService } from "../services/loginViaPassword.service"; - -export const loginViaPassword = async (ctx: Context) => { - const result = loginViaPasswordService(ctx); - return result; -}; diff --git a/src/modules/auth/controller/loginWithPassword.controller.ts b/src/modules/auth/controller/loginWithPassword.controller.ts new file mode 100644 index 0000000..bd748e5 --- /dev/null +++ b/src/modules/auth/controller/loginWithPassword.controller.ts @@ -0,0 +1,16 @@ +import { Context } from "elysia"; +import { loginWithPasswordService } from "../services/loginWithPassword.service"; +import { loginWithPasswordSchema } from "../auth.schema"; +import { returnErrorResponse } from "../../../helpers/callback/httpResponse"; +import { LoginWithPasswordRequest } from "../auth.types"; + +export const loginWithPassword = async ( + ctx: Context & { body: LoginWithPasswordRequest } +) => { + const { error } = loginWithPasswordSchema.validate(ctx.body); + if (error || !ctx.body) + return returnErrorResponse(ctx.set, 400, "Invalid user input", error); + + const result = await loginWithPasswordService(ctx.body); + return result; +}; diff --git a/src/modules/auth/index.ts b/src/modules/auth/index.ts index 28430db..95bc6e9 100644 --- a/src/modules/auth/index.ts +++ b/src/modules/auth/index.ts @@ -1,7 +1,7 @@ import Elysia from "elysia"; -import { loginViaPassword } from "./controller/loginViaPassword.controller"; +import { loginWithPassword } from "./controller/loginWithPassword.controller"; export const authModule = new Elysia({ prefix: "/auth" }).post( "/legacy", - loginViaPassword + loginWithPassword ); diff --git a/src/modules/auth/services/loginViaPassword.service.ts b/src/modules/auth/services/loginViaPassword.service.ts deleted file mode 100644 index 4de4e6f..0000000 --- a/src/modules/auth/services/loginViaPassword.service.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Context } from "elysia"; - -export const loginViaPasswordService = async (ctx: Context) => { - return "OK PASSED"; -}; diff --git a/src/modules/auth/services/loginWithPassword.service.ts b/src/modules/auth/services/loginWithPassword.service.ts new file mode 100644 index 0000000..9e7e9ed --- /dev/null +++ b/src/modules/auth/services/loginWithPassword.service.ts @@ -0,0 +1,9 @@ +import { LoginWithPasswordRequest } from "../auth.types"; + +export const loginWithPasswordService = async ( + data: LoginWithPasswordRequest +) => { + return `Login with password service called with data: ${JSON.stringify( + data + )}`; +};