diff --git a/src/modules/invoice/invoice.controller.ts b/src/modules/invoice/invoice.controller.ts index 9f0cfd9..cf6733d 100644 --- a/src/modules/invoice/invoice.controller.ts +++ b/src/modules/invoice/invoice.controller.ts @@ -54,6 +54,13 @@ export class InvoiceController { return this.invoiceService.findAllAsAdmin(dto); } + @Get('admin/invoice/:id') + @UseGuards(AuthGuard) + @ApiOperation({ summary: 'Get one invoice by id' }) + findOneAsAdmin(@Param('id') id: string) { + return this.invoiceService.findOneAsAdmin(id); + } + @Patch('admin/invoice/:id') @UseGuards(AdminAuthGuard) @Permissions(PermissionEnum.UPDATE_INVOICE) diff --git a/src/modules/invoice/invoice.service.ts b/src/modules/invoice/invoice.service.ts index 71d137c..4aa5058 100644 --- a/src/modules/invoice/invoice.service.ts +++ b/src/modules/invoice/invoice.service.ts @@ -119,6 +119,19 @@ export class InvoiceService { return invoice; } + async findOneAsAdmin(id: string) { + const invoice = await this.em.findOne( + Invoice, + { id }, + { populate: ['user', 'request', 'items', 'items.product'] }, + ); + if (!invoice) { + throw new NotFoundException('Invoice not found'); + } + return invoice; + } + + async confirmInvoiceItem(id: string, userId: string) { const item = await this.em.findOne( InvoiceItem,