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,
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) => {
try {
const newUser = await createUserService(ctx.body);
return returnWriteResponse(
ctx.set,
201,
"User created successfully",
result
newUser
);
})
.catch((error: PrismaErrorTypes) => {
return returnErrorResponse(
ctx.set,
error.status,
error.message,
error.details
);
});
} catch (error) {
// Handle any errors that occur during user creation
const { status, message, details } = handlePrismaError(error);
return returnErrorResponse(ctx.set, status, message, details);
}
};

View File

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

View File

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