feat: Hook orgnization name and logo to payment page

This commit is contained in:
Ahmed Bouhuolia
2024-09-28 19:20:01 +02:00
parent 2191ad0d40
commit e506a7ba35
4 changed files with 55 additions and 8 deletions

View File

@@ -1,6 +1,8 @@
import { Transform } from 'form-data';
import { ItemEntryTransformer } from './ItemEntryTransformer';
import { SaleInvoiceTaxEntryTransformer } from './SaleInvoiceTaxEntryTransformer';
import { SaleInvoiceTransformer } from './SaleInvoiceTransformer';
import { Transformer } from '@/lib/Transformer/Transformer';
export class GetInvoicePaymentLinkMetaTransformer extends SaleInvoiceTransformer {
/**
@@ -17,7 +19,6 @@ export class GetInvoicePaymentLinkMetaTransformer extends SaleInvoiceTransformer
*/
public includeAttributes = (): string[] => {
return [
'companyName',
'customerName',
'dueAmount',
'dueDateFormatted',
@@ -39,6 +40,7 @@ export class GetInvoicePaymentLinkMetaTransformer extends SaleInvoiceTransformer
'termsConditions',
'entries',
'taxes',
'organization',
];
};
@@ -46,8 +48,15 @@ export class GetInvoicePaymentLinkMetaTransformer extends SaleInvoiceTransformer
return invoice.customer.displayName;
}
public companyName() {
return 'Bigcapital Technology, Inc.';
/**
* Retrieves the organization metadata for the payment link.
* @returns
*/
public organization(invoice) {
return this.item(
this.context.organization,
new GetPaymentLinkOrganizationMetaTransformer()
);
}
/**
@@ -82,6 +91,20 @@ export class GetInvoicePaymentLinkMetaTransformer extends SaleInvoiceTransformer
};
}
class GetPaymentLinkOrganizationMetaTransformer extends Transformer {
/**
* Include these attributes to item entry object.
* @returns {Array}
*/
public includeAttributes = (): string[] => {
return ['primaryColor', 'name', 'address', 'logoUri'];
};
public excludeAttributes = (): string[] => {
return ['*'];
};
}
class GetInvoicePaymentLinkEntryMetaTransformer extends ItemEntryTransformer {
/**
* Include these attributes to item entry object.