45 lines
1.8 KiB
TypeScript
45 lines
1.8 KiB
TypeScript
|
|
import { Injectable } from "@nestjs/common";
|
||
|
|
import { TrpcService } from "@server/trpc/trpc.service";
|
||
|
|
import { RoleService } from "./role.service";
|
||
|
|
import { RoleMethodSchema } from "@nicestack/common";
|
||
|
|
import { z } from "zod";
|
||
|
|
|
||
|
|
@Injectable()
|
||
|
|
export class RoleRouter {
|
||
|
|
constructor(
|
||
|
|
private readonly trpc: TrpcService,
|
||
|
|
private readonly roleService: RoleService
|
||
|
|
) { }
|
||
|
|
|
||
|
|
router = this.trpc.router({
|
||
|
|
create: this.trpc.protectProcedure.input(RoleMethodSchema.create).mutation(async ({ ctx, input }) => {
|
||
|
|
const { staff } = ctx;
|
||
|
|
return await this.roleService.create(input);
|
||
|
|
}),
|
||
|
|
deleteMany: this.trpc.protectProcedure.input(RoleMethodSchema.deleteMany).mutation(async ({ input }) => {
|
||
|
|
return await this.roleService.deleteMany(input);
|
||
|
|
}),
|
||
|
|
update: this.trpc.protectProcedure.input(RoleMethodSchema.update).mutation(async ({ ctx, input }) => {
|
||
|
|
const { staff } = ctx;
|
||
|
|
return await this.roleService.update(input);
|
||
|
|
}),
|
||
|
|
paginate: this.trpc.protectProcedure.input(RoleMethodSchema.paginate).query(async ({ ctx, input }) => {
|
||
|
|
const { staff } = ctx;
|
||
|
|
return await this.roleService.paginate(input);
|
||
|
|
}),
|
||
|
|
findById: this.trpc.protectProcedure
|
||
|
|
.input(z.object({ id: z.string().nullish() }))
|
||
|
|
.query(async ({ ctx, input }) => {
|
||
|
|
const { staff } = ctx;
|
||
|
|
return await this.roleService.findById(input.id);
|
||
|
|
}),
|
||
|
|
findMany: this.trpc.procedure
|
||
|
|
.input(RoleMethodSchema.findMany) // Assuming StaffMethodSchema.findMany is the Zod schema for finding staffs by keyword
|
||
|
|
.query(async ({ input }) => {
|
||
|
|
return await this.roleService.findMany(input);
|
||
|
|
})
|
||
|
|
}
|
||
|
|
)
|
||
|
|
}
|
||
|
|
|