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