From 9e65be2c5849039a7e04a1192fc1d99a04cbddf5 Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Sun, 7 Jun 2026 16:01:54 +0330 Subject: [PATCH] activate dign purchase after invoice payment --- src/modules/dpage/dpage.service.ts | 32 +++++++++++++++++++ .../invoices/providers/invoices.service.ts | 6 ++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/modules/dpage/dpage.service.ts b/src/modules/dpage/dpage.service.ts index bee38e0..6e6825d 100644 --- a/src/modules/dpage/dpage.service.ts +++ b/src/modules/dpage/dpage.service.ts @@ -224,6 +224,38 @@ export class DPageService { throw error; } } + + async finishPurchaseDesign(businessId: string, invoiceId: string) { + try { + const { data } = await firstValueFrom( + this.httpService + .post(`${this.config.baseUrl}/super-admin/design-request/finish`, { + businessId, + invoiceId + }, { + headers: this.getHeaders(), + }) + .pipe( + catchError((err: AxiosError) => { + this.logger.error(`Failed to perform finish request design purchase: ${err.message}`, err.stack); + return throwError(() => err); + }), + ), + ); + return data; + } catch (error: unknown) { + if (error instanceof AxiosError && error.response) { + this.logger.error(`External API error response:`, error.response.data); + const errorResponse = { + ...error.response.data, + message: error.response.data.error?.message || error.message, + }; + throw new HttpException(errorResponse, error.response.status); + } + this.logger.error(`Error performing to finish purchase catalogue: ${error instanceof Error ? error.message : "Unknown error"}`); + throw error; + } + } } diff --git a/src/modules/invoices/providers/invoices.service.ts b/src/modules/invoices/providers/invoices.service.ts index 7aa5719..7c8337b 100755 --- a/src/modules/invoices/providers/invoices.service.ts +++ b/src/modules/invoices/providers/invoices.service.ts @@ -948,7 +948,9 @@ export class InvoicesService { await this.addNotifyForWalletDeduction(invoice, user, userWallet, WalletMessage.SUPPORT_PLAN_WALLET_TRANSFER); // } else if (invoice.isExternal) { - if (invoice.items[0]?.name == 'purchase_new_catalogue') { + if (invoice.items[0]?.name == 'purchase_design') { + this.dpageService.finishPurchaseDesign(invoice.externalBusinessId!, invoice.id) + } else if (invoice.items[0]?.name == 'purchase_new_catalogue') { // call dpage api const businessId = invoice.externalBusinessId if (!businessId) { @@ -1475,7 +1477,7 @@ export class InvoicesService { //*********************************** */ async findInvoicesByCustomerIds(custmerIds: string[], query: SearchResellerInvoicesQueryDto) { - + return this.invoiceRepository.findPaginatedListByUserIds(query, custmerIds) }