fix: Download invoice pdf of the payment link page

This commit is contained in:
Ahmed Bouhuolia
2024-10-05 21:46:48 +02:00
parent 2649f1c326
commit c89b2367e6
3 changed files with 15 additions and 5 deletions

View File

@@ -43,9 +43,9 @@ export class PaymentLinksApplication {
* Retrieves the sale invoice pdf of the given payment link id. * Retrieves the sale invoice pdf of the given payment link id.
* @param {number} tenantId * @param {number} tenantId
* @param {number} paymentLinkId * @param {number} paymentLinkId
* @returns * @returns {Promise<Buffer> }
*/ */
public getPaymentLinkInvoicePdf(paymentLinkId: string) { public getPaymentLinkInvoicePdf(paymentLinkId: string): Promise<Buffer> {
return this.getPaymentLinkInvoicePdfService.getPaymentLinkInvoicePdf( return this.getPaymentLinkInvoicePdfService.getPaymentLinkInvoicePdf(
paymentLinkId paymentLinkId
); );

View File

@@ -33,7 +33,11 @@ export function PaymentPortal() {
const handleInvoiceDownloadBtnClick = () => { const handleInvoiceDownloadBtnClick = () => {
generatePaymentLinkInvoice({ paymentLinkId: linkId }) generatePaymentLinkInvoice({ paymentLinkId: linkId })
.then((data) => { .then((data) => {
downloadFile(data, `Invoice ${sharableLinkMeta?.invoiceNo}.pdf`); downloadFile(
data,
`Invoice ${sharableLinkMeta?.invoiceNo}`,
'application/pdf',
);
}) })
.catch(() => { .catch(() => {
AppToaster.show({ AppToaster.show({

View File

@@ -200,7 +200,10 @@ export const useGeneratePaymentLinkInvoicePdf = (
>( >(
(values: GeneratePaymentLinkInvoicePdfValues) => { (values: GeneratePaymentLinkInvoicePdfValues) => {
return apiRequest return apiRequest
.get(`/payment-links/${values.paymentLinkId}/invoice/pdf`) .get(`/payment-links/${values.paymentLinkId}/invoice/pdf`, {
responseType: 'blob',
headers: { accept: 'application/pdf' },
})
.then((res) => res?.data); .then((res) => res?.data);
}, },
{ ...options }, { ...options },
@@ -217,7 +220,10 @@ export const useGetPaymentLinkInvoicePdf = (
[GetPaymentLinkInvoicePdf, invoiceId], [GetPaymentLinkInvoicePdf, invoiceId],
() => () =>
apiRequest apiRequest
.get(`/payment-links/${invoiceId}/invoice/pdf`) .get(`/payment-links/${invoiceId}/invoice/pdf`, {
responseType: 'blob',
headers: { accept: 'application/pdf' },
})
.then((res) => res.data), .then((res) => res.data),
{ {
...options, ...options,