import { Controller, Post, Param, Body, Patch, Delete, Req, UnauthorizedException } from "@nestjs/common"; import { ExpenseUpsertService } from "src/time-and-attendance/expenses/services/expense-upsert.service"; import { ExpenseDto } from "src/time-and-attendance/expenses/dtos/expense-create.dto"; import { RolesAllowed } from "src/common/decorators/roles.decorators"; import { GLOBAL_CONTROLLER_ROLES } from "src/common/shared/role-groupes"; import { Result } from "src/common/errors/result-error.factory"; import { GetExpenseDto } from "src/time-and-attendance/expenses/dtos/expense-get.dto"; @Controller('expense') @RolesAllowed(...GLOBAL_CONTROLLER_ROLES) export class ExpenseController { constructor(private readonly upsert_service: ExpenseUpsertService) { } @Post('create') create(@Req() req, @Body() dto: ExpenseDto): Promise> { const email = req.user?.email; if (!email) throw new UnauthorizedException('Unauthorized User'); return this.upsert_service.createExpense(dto, email); } @Patch('update') update(@Body() dto: ExpenseDto): Promise> { return this.upsert_service.updateExpense(dto); } @Delete('delete/:expense_id') remove(@Param('expense_id') expense_id: number): Promise> { return this.upsert_service.deleteExpense(expense_id); } }