From 96fa3d1fcb5ff17435f90cca89a5c3eb32e65524 Mon Sep 17 00:00:00 2001 From: HenriT Date: Tue, 16 Feb 2021 21:32:52 +0200 Subject: [PATCH] Fix edge cases with error handling. --- src/services/invoice.service.js | 13 ++++++------- src/store/invoices.js | 13 +++---------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/services/invoice.service.js b/src/services/invoice.service.js index 3b4afdf..16c9de3 100644 --- a/src/services/invoice.service.js +++ b/src/services/invoice.service.js @@ -58,9 +58,9 @@ class InvoiceService { number: 'Number', }; - const errors = validate(requiredFields, invoice); - if (Object.keys(errors).length > 0) { - return Promise.reject(errors); + const res = validate(requiredFields, invoice); + if (Object.keys(res.errors).length > 0) { + return Promise.reject(res); } const invoices = await this.getInvoices(); const index = invoices.findIndex(item => item.id === invoice.id); @@ -100,7 +100,6 @@ class InvoiceService { from_phone: 'From Phone', bank_name: 'Bank Name', bank_account_no: 'Bank Account No.', - project_id: 'Project Id', rows: { item: 'Item', quantity: 'Quantity', @@ -109,9 +108,9 @@ class InvoiceService { }, }; - const errors = await validate(requiredFields, invoice); - if (Object.keys(errors).length > 0) { - return Promise.reject(errors); + const res = await validate(requiredFields, invoice); + if (Object.keys(res.errors).length > 0) { + return Promise.reject(res); } invoice.status = 'booked'; diff --git a/src/store/invoices.js b/src/store/invoices.js index 4fc67e2..527e5d0 100644 --- a/src/store/invoices.js +++ b/src/store/invoices.js @@ -150,19 +150,12 @@ export default { async removeRow(store, row) { await InvoiceRow.delete(row.id); }, - async sendInvoice({ state, dispatch }, message) { - const res = await InvoiceService.sendInvoice(state.invoiceId, message); - dispatch('invoiceProps', { - status: 'sent', - }); - return res; - }, async bookInvoice({ getters, commit, dispatch }) { commit('clearErrors'); try { - const res = await InvoiceService.bookInvoice(getters.invoice); - return dispatch('getInvoice', res.invoice_id); + await InvoiceService.bookInvoice(getters.invoice); + return dispatch('getInvoice', getters.invoice.id); } catch (err) { commit('setErrors', err.errors); } @@ -171,7 +164,7 @@ export default { getters: { invoice(state) { return Invoice.query() - .with(['client', 'project', 'team.logos']) + .with(['client']) .with('rows', query => query.orderBy('order', 'asc')) .find(state.invoiceId); },