add user create controller and service
This commit is contained in:
@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user