From 2d9c8e30693d1bddf1af7b2ffe083b467e7600f6 Mon Sep 17 00:00:00 2001 From: Inga Date: Mon, 15 Jan 2024 20:00:22 +0000 Subject: [PATCH] fixed app crashing when database query rejects (closes #3) --- src/transaction/transaction.controller.ts | 47 +++++++++++++---------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/src/transaction/transaction.controller.ts b/src/transaction/transaction.controller.ts index b6af91b..0c50631 100644 --- a/src/transaction/transaction.controller.ts +++ b/src/transaction/transaction.controller.ts @@ -117,17 +117,22 @@ export class TransactionController { try { this.exchangeRateService.convertCurrency(exhangeRateInput).subscribe({ - next: async (exchangeRateResponse) => { - this.transactionService.insertOne({ - date: transactionInput.date, - amount: parseInt(transactionInput.amount), - currency: transactionInput.currency, - client_id: transactionInput.client_id, - commission: await commissionAmount, - base_currency: Currency.EUR, - base_amount: parseInt(transactionInput.amount) * exchangeRateResponse[transactionInput.currency], - }); - }, + next: (exchangeRateResponse) => + commissionAmount + .then((commission) => + this.transactionService.insertOne({ + date: transactionInput.date, + amount: parseInt(transactionInput.amount), + currency: transactionInput.currency, + client_id: transactionInput.client_id, + commission, + base_currency: Currency.EUR, + base_amount: + parseInt(transactionInput.amount) * + exchangeRateResponse[transactionInput.currency], + }), + ) + .catch((error) => console.log(error)), error: (error) => { console.log(error); }, @@ -145,15 +150,17 @@ export class TransactionController { transactionInput, ); try { - this.transactionService.insertOne({ - date: transactionInput.date, - amount: parseInt(transactionInput.amount), - currency: transactionInput.currency, - client_id: transactionInput.client_id, - commission: commissionAmount, - base_currency: Currency.EUR, - base_amount: parseInt(transactionInput.amount), - }); + this.transactionService + .insertOne({ + date: transactionInput.date, + amount: parseInt(transactionInput.amount), + currency: transactionInput.currency, + client_id: transactionInput.client_id, + commission: commissionAmount, + base_currency: Currency.EUR, + base_amount: parseInt(transactionInput.amount), + }) + .catch((error) => console.log(error)); } catch (error) { console.log(error); throw error;