add user create controller and service

This commit is contained in:
rafiarrafif
2025-05-07 04:07:03 +07:00
parent 32dc3dae4a
commit 0f506debfb
3 changed files with 17 additions and 21 deletions

View File

@ -7,6 +7,7 @@ import {
returnErrorResponse, returnErrorResponse,
returnWriteResponse, returnWriteResponse,
} from "../../../helpers/callback/httpResponse"; } from "../../../helpers/callback/httpResponse";
import { handlePrismaError } from "../../../utils/databases/prisma/error/handler";
/** /**
* @function createUser * @function createUser
@ -36,21 +37,17 @@ export const createUser = async (
return returnErrorResponse(ctx.set, 400, "Invalid user input", error); return returnErrorResponse(ctx.set, 400, "Invalid user input", error);
// Create the user in the database using the service // Create the user in the database using the service
createUserService(ctx.body) try {
.then((result) => { const newUser = await createUserService(ctx.body);
return returnWriteResponse( return returnWriteResponse(
ctx.set, ctx.set,
201, 201,
"User created successfully", "User created successfully",
result newUser
); );
}) } catch (error) {
.catch((error: PrismaErrorTypes) => { // Handle any errors that occur during user creation
return returnErrorResponse( const { status, message, details } = handlePrismaError(error);
ctx.set, return returnErrorResponse(ctx.set, status, message, details);
error.status, }
error.message,
error.details
);
});
}; };

View File

@ -3,5 +3,5 @@ import { getAllUser } from "./controller/getAllUser.controller";
import { createUser } from "./controller/createUser.controller"; import { createUser } from "./controller/createUser.controller";
export const userModule = new Elysia({ prefix: "/users" }) export const userModule = new Elysia({ prefix: "/users" })
.get("/", () => getAllUser) .get("/", getAllUser)
.post("/", () => createUser); .post("/", createUser);

View File

@ -1,7 +1,6 @@
import { Prisma } from "@prisma/client"; import { Prisma } from "@prisma/client";
import { hashPassword } from "../../../helpers/security/password/hash"; import { hashPassword } from "../../../helpers/security/password/hash";
import { userModel } from "../user.model"; import { userModel } from "../user.model";
import { handlePrismaError } from "../../../utils/databases/prisma/error/handler";
export const createUserService = async (userData: Prisma.UserCreateInput) => { export const createUserService = async (userData: Prisma.UserCreateInput) => {
const { password, ...rest } = userData; // Destructure the password and the rest of the user data 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; return newUser;
} catch (error) { } catch (error) {
return handlePrismaError(error); return error;
} }
}; };