Files
tehran_taj/apps/api/src/modules/admin-invoices/admin-invoices.controller.ts
T

63 lines
1.7 KiB
TypeScript
Raw Normal View History

import { Body, Controller, Delete, Get, HttpCode, Param, Post, Put } from '@nestjs/common';
import { AdminInvoicesService } from './admin-invoices.service';
import { TableQueryDto } from '../admin-table/table-query.dto';
import { CurrentAdmin, RequirePermission } from '../auth/guards';
import type { AuthenticatedAdmin } from '../auth/jwt.strategy';
/**
* Legacy endpoints (BranchController's `branch/product` family):
* POST branch/product/table
* POST branch/product
* GET branch/product/{id}
* DELETE branch/product/{id}
* GET branch/list -> the branch picker
*/
@Controller('admin/invoices')
export class AdminInvoicesController {
constructor(private readonly invoices: AdminInvoicesService) {}
@Post('list')
@HttpCode(200)
@RequirePermission('invoice.list')
list(@Body() query: TableQueryDto) {
return this.invoices.list(query);
}
@Get('branch-list')
@RequirePermission('invoice.create')
branchList() {
return this.invoices.branchList();
}
@Post()
@HttpCode(200)
@RequirePermission('invoice.create')
create(
@Body() data: { branch_id?: string; products?: string[]; note?: string },
@CurrentAdmin() admin: AuthenticatedAdmin,
) {
return this.invoices.create(data, admin.id);
}
@Get(':id')
@RequirePermission('invoice.list')
findOne(@Param('id') id: string) {
return this.invoices.findOne(id);
}
@Put(':id')
@RequirePermission('invoice.list')
update(
@Param('id') id: string,
@Body() data: { branch_id?: string; products?: string[]; note?: string },
) {
return this.invoices.update(id, data);
}
@Delete(':id')
@RequirePermission('invoice.list')
remove(@Param('id') id: string) {
return this.invoices.remove(id);
}
}