fix: invoice generate sharable link

This commit is contained in:
Ahmed Bouhuolia
2025-06-27 01:59:46 +02:00
parent e7178a6575
commit 0c0e1dc22e
10 changed files with 74 additions and 19 deletions

View File

@@ -38,12 +38,14 @@ import { AcceptType } from '@/constants/accept-type';
import { SaleInvoiceResponseDto } from './dtos/SaleInvoiceResponse.dto';
import { PaginatedResponseDto } from '@/common/dtos/PaginatedResults.dto';
import { SaleInvoiceStateResponseDto } from './dtos/SaleInvoiceState.dto';
import { GenerateSaleInvoiceSharableLinkResponseDto } from './dtos/generateSaleInvoiceSharableLinkResponse.dto';
@Controller('sale-invoices')
@ApiTags('Sale Invoices')
@ApiExtraModels(SaleInvoiceResponseDto)
@ApiExtraModels(PaginatedResponseDto)
@ApiExtraModels(SaleInvoiceStateResponseDto)
@ApiExtraModels(GenerateSaleInvoiceSharableLinkResponseDto)
@ApiHeader({
name: 'organization-id',
description: 'The organization id',
@@ -318,4 +320,25 @@ export class SaleInvoicesController {
): Promise<SaleInvoiceMailState> {
return this.saleInvoiceApplication.getSaleInvoiceMailState(id);
}
@Post(':id/generate-link')
@ApiOperation({
summary: 'Generate sharable sale invoice link (private or public)',
})
@ApiResponse({
status: 201,
description: 'The link has been generated successfully.',
schema: {
$ref: getSchemaPath(GenerateSaleInvoiceSharableLinkResponseDto),
},
})
@ApiParam({
name: 'id',
required: true,
type: Number,
description: 'The sale invoice id',
})
generateSaleInvoiceSharableLink(@Param('id', ParseIntPipe) id: number) {
return this.saleInvoiceApplication.generateSaleInvoiceSharableLink(id);
}
}