diff --git a/src/modules/user/controller/createUser.controller.ts b/src/modules/user/controller/createUser.controller.ts index c3387d4..ad0c9bb 100644 --- a/src/modules/user/controller/createUser.controller.ts +++ b/src/modules/user/controller/createUser.controller.ts @@ -7,6 +7,7 @@ import { returnErrorResponse, returnWriteResponse, } from "../../../helpers/callback/httpResponse"; +import { handlePrismaError } from "../../../utils/databases/prisma/error/handler"; /** * @function createUser @@ -36,21 +37,17 @@ export const createUser = async ( return returnErrorResponse(ctx.set, 400, "Invalid user input", error); // Create the user in the database using the service - createUserService(ctx.body) - .then((result) => { - return returnWriteResponse( - ctx.set, - 201, - "User created successfully", - result - ); - }) - .catch((error: PrismaErrorTypes) => { - return returnErrorResponse( - ctx.set, - error.status, - error.message, - error.details - ); - }); + try { + const newUser = await createUserService(ctx.body); + return returnWriteResponse( + ctx.set, + 201, + "User created successfully", + newUser + ); + } catch (error) { + // Handle any errors that occur during user creation + const { status, message, details } = handlePrismaError(error); + return returnErrorResponse(ctx.set, status, message, details); + } }; diff --git a/src/modules/user/index.ts b/src/modules/user/index.ts index 6a4e208..efb8647 100644 --- a/src/modules/user/index.ts +++ b/src/modules/user/index.ts @@ -3,5 +3,5 @@ import { getAllUser } from "./controller/getAllUser.controller"; import { createUser } from "./controller/createUser.controller"; export const userModule = new Elysia({ prefix: "/users" }) - .get("/", () => getAllUser) - .post("/", () => createUser); + .get("/", getAllUser) + .post("/", createUser); diff --git a/src/modules/user/services/createUser.service.ts b/src/modules/user/services/createUser.service.ts index a31b225..16671ee 100644 --- a/src/modules/user/services/createUser.service.ts +++ b/src/modules/user/services/createUser.service.ts @@ -1,7 +1,6 @@ import { Prisma } from "@prisma/client"; import { hashPassword } from "../../../helpers/security/password/hash"; import { userModel } from "../user.model"; -import { handlePrismaError } from "../../../utils/databases/prisma/error/handler"; export const createUserService = async (userData: Prisma.UserCreateInput) => { const { password, ...rest } = userData; // Destructure the password and the rest of the user data @@ -17,6 +16,6 @@ export const createUserService = async (userData: Prisma.UserCreateInput) => { }); return newUser; } catch (error) { - return handlePrismaError(error); + return error; } };