create user role bind and create

creating basic validation dan operation service for user role
This commit is contained in:
Rafi Arrafif
2025-07-14 21:50:42 +07:00
parent ffdc80146d
commit 08a2ac3c43
6 changed files with 47 additions and 5 deletions

View File

@ -0,0 +1,16 @@
import { Context } from "elysia";
import { UserRoleAssignmentSchema } from "../schemas/UserRoleAssignment.schema";
import { returnErrorResponse } from "../../../helpers/callback/httpResponse";
export const UserRoleAssignmentController = async (ctx: Context) => {
const validation = UserRoleAssignmentSchema.safeParse(ctx.body);
// if (!validation.success)
// return returnErrorResponse(
// ctx.set,
// 400,
// "Validation error",
// validation.error
// );
return ctx.body;
};

View File

@ -7,6 +7,8 @@ import {
import { createUserRoleService } from "../services/createUserRole.service";
import { mainErrorHandler } from "../../../helpers/error/handler";
import { createUserRoleSchema } from "../schemas/createUserRole.schema";
import { getCookie } from "../../../helpers/http/userHeader/cookies/getCookies";
import { jwtDecode } from "../../../helpers/http/jwt/decode";
/**
* @function createUserRole
@ -41,16 +43,28 @@ import { createUserRoleSchema } from "../schemas/createUserRole.schema";
* "canManageSystem": false
* }
*/
export const createUserRole = async (
export const createUserRoleController = async (
ctx: Context & { body: Prisma.UserRoleUncheckedCreateInput }
) => {
// Validation input form with schema
const { error } = createUserRoleSchema.validate(ctx.body);
if (error)
return returnErrorResponse(ctx.set, 400, "Invalid user input", error);
// Delete this, use middleware instead!!!
const cookie = getCookie(ctx);
if (!cookie.auth_token)
return returnErrorResponse(
ctx.set,
403,
"Forbidden, You don't have access to this resouce"
);
const jwtSession = jwtDecode(cookie.auth_token);
const formData: Prisma.UserRoleUncheckedCreateInput = {
...ctx.body,
createdBy: "daw",
createdBy: jwtSession.userId,
};
try {

View File

@ -1,9 +1,11 @@
import Elysia from "elysia";
import { createUserRole } from "./controller/createUserRole.controller";
import { createUserRoleController } from "./controller/createUserRole.controller";
import { unautenticatedMiddleware } from "../../middleware/auth/unauthenticated.middleware";
import { UserRoleAssignmentController } from "./controller/UserRoleAssignment.controller";
export const userRoleModule = new Elysia({ prefix: "/roles" })
.get("/", () => "Hello User Role Module", {
beforeHandle: unautenticatedMiddleware,
})
.post("/", createUserRole);
.post("/", createUserRoleController)
.post("/assign", UserRoleAssignmentController); // need fix and it just for development only!

View File

@ -0,0 +1,6 @@
import z from "zod";
export const UserRoleAssignmentSchema = z.object({
userId: z.string(),
roleId: z.string(),
});