utilizing user role repository
This commit is contained in:
@ -7,7 +7,7 @@ import {
|
||||
import { createUserRoleSchema } from "../userRole.schema";
|
||||
import { JWTDecodeToken } from "../../../helpers/jwt/decodeToken";
|
||||
import { createUserRoleService } from "../services/createUserRole.service";
|
||||
import { PrismaErrorTypes } from "../../../utils/databases/prisma/error/types";
|
||||
import { handlePrismaError } from "../../../utils/databases/prisma/error/handler";
|
||||
|
||||
/**
|
||||
* @function createUserRole
|
||||
@ -49,36 +49,21 @@ export const createUserRole = async (
|
||||
if (error)
|
||||
return returnErrorResponse(ctx.set, 400, "Invalid user input", error);
|
||||
|
||||
const formData: Prisma.UserRoleUncheckedCreateInput = { ...ctx.body };
|
||||
const userCreator = JWTDecodeToken(ctx);
|
||||
|
||||
const dataPayload = {
|
||||
...formData,
|
||||
isSuperadmin: Boolean(formData.isSuperadmin),
|
||||
canEditMedia: Boolean(formData.canEditMedia),
|
||||
canManageMedia: Boolean(formData.canManageMedia),
|
||||
canEditEpisodes: Boolean(formData.canEditEpisodes),
|
||||
canManageEpisodes: Boolean(formData.canManageEpisodes),
|
||||
canEditComment: Boolean(formData.canEditComment),
|
||||
canManageComment: Boolean(formData.canManageComment),
|
||||
canEditUser: Boolean(formData.canEditUser),
|
||||
canManageUser: Boolean(formData.canManageUser),
|
||||
canEditSystem: Boolean(formData.canEditSystem),
|
||||
canManageSystem: Boolean(formData.canManageSystem),
|
||||
createdBy: userCreator.user.id,
|
||||
deletedAt: null,
|
||||
const formData: Prisma.UserRoleUncheckedCreateInput = {
|
||||
...ctx.body,
|
||||
createdBy: JWTDecodeToken(ctx).user.id,
|
||||
};
|
||||
|
||||
createUserRoleService(dataPayload)
|
||||
.then((result) => {
|
||||
return returnWriteResponse(ctx.set, 201, "User role created", result);
|
||||
})
|
||||
.catch((error: PrismaErrorTypes) => {
|
||||
return returnErrorResponse(
|
||||
try {
|
||||
const newUserRole = await createUserRoleService(formData);
|
||||
return returnWriteResponse(
|
||||
ctx.set,
|
||||
error.status,
|
||||
error.message,
|
||||
error.details
|
||||
201,
|
||||
"User role created successfully",
|
||||
newUserRole
|
||||
);
|
||||
});
|
||||
} catch (error) {
|
||||
const { status, message, details } = handlePrismaError(error);
|
||||
return returnErrorResponse(ctx.set, status, message, details);
|
||||
}
|
||||
};
|
||||
|
||||
@ -1,16 +1,28 @@
|
||||
import { Prisma } from "@prisma/client";
|
||||
import { userRoleModel } from "../userRole.model";
|
||||
import { handlePrismaError } from "../../../utils/databases/prisma/error/handler";
|
||||
import { createUserRoleRepo } from "../userRole.repository";
|
||||
|
||||
export const createUserRoleService = async (
|
||||
userRoleData: Prisma.UserRoleUncheckedCreateInput
|
||||
) => {
|
||||
try {
|
||||
const newUserRole = await userRoleModel.create({
|
||||
data: userRoleData,
|
||||
});
|
||||
const dataPayload = {
|
||||
...userRoleData,
|
||||
isSuperadmin: Boolean(userRoleData.isSuperadmin),
|
||||
canEditMedia: Boolean(userRoleData.canEditMedia),
|
||||
canManageMedia: Boolean(userRoleData.canManageMedia),
|
||||
canEditEpisodes: Boolean(userRoleData.canEditEpisodes),
|
||||
canManageEpisodes: Boolean(userRoleData.canManageEpisodes),
|
||||
canEditComment: Boolean(userRoleData.canEditComment),
|
||||
canManageComment: Boolean(userRoleData.canManageComment),
|
||||
canEditUser: Boolean(userRoleData.canEditUser),
|
||||
canManageUser: Boolean(userRoleData.canManageUser),
|
||||
canEditSystem: Boolean(userRoleData.canEditSystem),
|
||||
canManageSystem: Boolean(userRoleData.canManageSystem),
|
||||
deletedAt: null,
|
||||
};
|
||||
const newUserRole = await createUserRoleRepo(dataPayload);
|
||||
return newUserRole;
|
||||
} catch (error) {
|
||||
return handlePrismaError(error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
import { Prisma } from "@prisma/client";
|
||||
import { userRoleModel } from "./userRole.model";
|
||||
|
||||
export const createUserRoleRepo = async (
|
||||
data: Prisma.UserRoleUncheckedCreateInput
|
||||
) => {
|
||||
try {
|
||||
const newUserRole = await userRoleModel.create({
|
||||
data,
|
||||
});
|
||||
return newUserRole;
|
||||
} catch (error) {
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user