32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import { Body, Controller, Delete, Get, Param, ParseIntPipe, Patch, Post } from "@nestjs/common";
|
|
import { PrismaService } from "src/prisma/prisma.service";
|
|
import { ExpenseDto } from "../dtos/expense.dto";
|
|
import { CreateResult, ExpenseUpsertService, UpdateResult } from "../services/expense-upsert.service";
|
|
import { updateExpenseDto } from "src/time-and-attendance/modules/expenses/dtos/update-expense.dto";
|
|
|
|
|
|
@Controller('expense')
|
|
export class ExpenseController {
|
|
constructor(
|
|
private readonly prisma: PrismaService,
|
|
private readonly upsert_service: ExpenseUpsertService,
|
|
){}
|
|
|
|
@Post(':timesheet_id')
|
|
create(
|
|
@Param('timesheet_id', ParseIntPipe) timesheet_id: number,
|
|
@Body() dto: ExpenseDto): Promise<CreateResult>{
|
|
return this.upsert_service.createExpense(timesheet_id, dto);
|
|
}
|
|
|
|
@Patch()
|
|
update(
|
|
@Body() body: { update :{ id: number; dto: updateExpenseDto }}): Promise<UpdateResult>{
|
|
return this.upsert_service.updateExpense(body.update);
|
|
}
|
|
|
|
@Delete(':expense_id')
|
|
remove(@Param('expense_id') expense_id: number) {
|
|
return this.upsert_service.deleteExpense(expense_id);
|
|
}
|
|
} |