import { Injectable } from '@nestjs/common'; import { TrpcService } from '@server/trpc/trpc.service'; import { ObjectType, RoleMapMethodSchema, } from '@nice/common'; import { RoleMapService } from './rolemap.service'; @Injectable() export class RoleMapRouter { constructor( private readonly trpc: TrpcService, private readonly roleMapService: RoleMapService, ) { } router = this.trpc.router({ deleteAllRolesForObject: this.trpc.protectProcedure .input(RoleMapMethodSchema.deleteWithObject) .mutation(({ input }) => this.roleMapService.deleteAllRolesForObject(input), ), setRoleForObject: this.trpc.protectProcedure .input(RoleMapMethodSchema.create) .mutation(({ input }) => this.roleMapService.setRoleForObject(input)), setRoleForObjects: this.trpc.protectProcedure .input(RoleMapMethodSchema.setRoleForObjects) .mutation(({ input }) => this.roleMapService.setRoleForObjects(input)), addRoleForObjects: this.trpc.protectProcedure .input(RoleMapMethodSchema.setRoleForObjects) .mutation(({ input }) => this.roleMapService.addRoleForObjects(input)), setRolesForObject: this.trpc.protectProcedure .input(RoleMapMethodSchema.setRolesForObject) .mutation(({ input }) => this.roleMapService.setRolesForObject(input)), getPermsForObject: this.trpc.procedure .input(RoleMapMethodSchema.getPermsForObject) .query(({ input }) => this.roleMapService.getPermsForObject(input)), deleteMany: this.trpc.protectProcedure .input(RoleMapMethodSchema.deleteMany) // Assuming RoleMapMethodSchema.deleteMany is the Zod schema for batch deleting staff .mutation(async ({ input }) => { return await this.roleMapService.deleteMany(input); }), paginate: this.trpc.procedure .input(RoleMapMethodSchema.paginate) // Define the input schema for pagination .query(async ({ input }) => { return await this.roleMapService.paginate(input); }), update: this.trpc.protectProcedure .input(RoleMapMethodSchema.update) .mutation(async ({ ctx, input }) => { const { staff } = ctx; return await this.roleMapService.update(input); }), getRoleMapDetail: this.trpc.procedure .input(RoleMapMethodSchema.getRoleMapDetail) .query(async ({ input }) => { return await this.roleMapService.getRoleMapDetail(input); }), getRows: this.trpc.procedure .input(RoleMapMethodSchema.getRows) .query(async ({ input, ctx }) => { const { staff } = ctx; return await this.roleMapService.getRows(input, staff); }), getStaffsNotMap: this.trpc.procedure .input(RoleMapMethodSchema.getStaffsNotMap) .query(async ({ input }) => { return this.roleMapService.getStaffsNotMap(input); }), }); }