utilizing user role repository
This commit is contained in:
@ -7,7 +7,7 @@ import {
|
|||||||
import { createUserRoleSchema } from "../userRole.schema";
|
import { createUserRoleSchema } from "../userRole.schema";
|
||||||
import { JWTDecodeToken } from "../../../helpers/jwt/decodeToken";
|
import { JWTDecodeToken } from "../../../helpers/jwt/decodeToken";
|
||||||
import { createUserRoleService } from "../services/createUserRole.service";
|
import { createUserRoleService } from "../services/createUserRole.service";
|
||||||
import { PrismaErrorTypes } from "../../../utils/databases/prisma/error/types";
|
import { handlePrismaError } from "../../../utils/databases/prisma/error/handler";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @function createUserRole
|
* @function createUserRole
|
||||||
@ -49,36 +49,21 @@ export const createUserRole = async (
|
|||||||
if (error)
|
if (error)
|
||||||
return returnErrorResponse(ctx.set, 400, "Invalid user input", error);
|
return returnErrorResponse(ctx.set, 400, "Invalid user input", error);
|
||||||
|
|
||||||
const formData: Prisma.UserRoleUncheckedCreateInput = { ...ctx.body };
|
const formData: Prisma.UserRoleUncheckedCreateInput = {
|
||||||
const userCreator = JWTDecodeToken(ctx);
|
...ctx.body,
|
||||||
|
createdBy: JWTDecodeToken(ctx).user.id,
|
||||||
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,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
createUserRoleService(dataPayload)
|
try {
|
||||||
.then((result) => {
|
const newUserRole = await createUserRoleService(formData);
|
||||||
return returnWriteResponse(ctx.set, 201, "User role created", result);
|
return returnWriteResponse(
|
||||||
})
|
ctx.set,
|
||||||
.catch((error: PrismaErrorTypes) => {
|
201,
|
||||||
return returnErrorResponse(
|
"User role created successfully",
|
||||||
ctx.set,
|
newUserRole
|
||||||
error.status,
|
);
|
||||||
error.message,
|
} catch (error) {
|
||||||
error.details
|
const { status, message, details } = handlePrismaError(error);
|
||||||
);
|
return returnErrorResponse(ctx.set, status, message, details);
|
||||||
});
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,16 +1,28 @@
|
|||||||
import { Prisma } from "@prisma/client";
|
import { Prisma } from "@prisma/client";
|
||||||
import { userRoleModel } from "../userRole.model";
|
import { createUserRoleRepo } from "../userRole.repository";
|
||||||
import { handlePrismaError } from "../../../utils/databases/prisma/error/handler";
|
|
||||||
|
|
||||||
export const createUserRoleService = async (
|
export const createUserRoleService = async (
|
||||||
userRoleData: Prisma.UserRoleUncheckedCreateInput
|
userRoleData: Prisma.UserRoleUncheckedCreateInput
|
||||||
) => {
|
) => {
|
||||||
try {
|
try {
|
||||||
const newUserRole = await userRoleModel.create({
|
const dataPayload = {
|
||||||
data: userRoleData,
|
...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;
|
return newUserRole;
|
||||||
} catch (error) {
|
} 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