targo-backend/src/identity-and-account/user-module-access/module-access.controller.ts
2025-12-04 14:50:23 -05:00

32 lines
1.6 KiB
TypeScript

import { Body, Controller, Get, Patch, Query, Req } from "@nestjs/common";
import { Access } from "src/common/decorators/module-access.decorators";
import { Result } from "src/common/errors/result-error.factory";
import { ModuleAccess } from "src/identity-and-account/user-module-access/module-acces.dto";
import { AccessGetService } from "src/identity-and-account/user-module-access/services/module-access-get.service";
import { AccessUpdateService } from "src/identity-and-account/user-module-access/services/module-access-update.service";
import { ModuleAccessAllowed } from "src/common/decorators/modules-guard.decorators";
import { Modules as ModulesEnum } from ".prisma/client";
@Controller('module_access')
export class ModuleAccessController {
constructor(
private readonly getService: AccessGetService,
private readonly updateService: AccessUpdateService,
) { }
@Get()
@ModuleAccessAllowed(ModulesEnum.employee_management)
async findAccess(@Access('email') email: string, @Query('employee_email') employee_email?: string
): Promise<Result<boolean, string>> {
await this.getService.findModuleAccess(email, employee_email);
return { success: true, data: true };
};
@Patch('update')
@ModuleAccessAllowed(ModulesEnum.employee_management)
async updateAccess(@Access('email') email: string, @Body() dto: ModuleAccess, @Query('employee_email') employee_email?: string
): Promise<Result<boolean, string>> {
await this.updateService.updateModuleAccess(email, dto, employee_email);
return { success: true, data: true };
};
}