From f198f27dcf5743c4d9de1ae4d830397a4aefa0ef Mon Sep 17 00:00:00 2001 From: Gursimran Singh Date: Thu, 11 Jul 2024 17:18:55 -0600 Subject: [PATCH 1/4] Added error handling while updating the already deleted records. --- packages/api/src/controllers/farmExpenseController.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/api/src/controllers/farmExpenseController.js b/packages/api/src/controllers/farmExpenseController.js index 79f19b7709..b0432af97d 100644 --- a/packages/api/src/controllers/farmExpenseController.js +++ b/packages/api/src/controllers/farmExpenseController.js @@ -78,6 +78,13 @@ const farmExpenseController = { const { user_id } = req.auth; const trx = await transaction.start(Model.knex()); + + // do not allow updates to deleted records + if (await baseController.isDeleted(trx, FarmExpenseModel, { farm_expense_id })) { + await trx.rollback(); + return res.status(409).send(); + } + try { const result = await FarmExpenseModel.query(trx) .context({ user_id }) From 8ccec8f405756a6fb8063cfcda8a13880de6697d Mon Sep 17 00:00:00 2001 From: Gursimran Singh Date: Fri, 12 Jul 2024 14:20:10 -0600 Subject: [PATCH 2/4] correctly handle UI/UX on failure --- packages/api/src/controllers/farmExpenseController.js | 2 +- packages/webapp/public/locales/en/message.json | 3 ++- packages/webapp/public/locales/es/message.json | 3 ++- packages/webapp/public/locales/fr/message.json | 3 ++- packages/webapp/public/locales/pt/message.json | 3 ++- packages/webapp/src/containers/Finances/saga.js | 7 ++++++- 6 files changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/api/src/controllers/farmExpenseController.js b/packages/api/src/controllers/farmExpenseController.js index b0432af97d..f9c2000809 100644 --- a/packages/api/src/controllers/farmExpenseController.js +++ b/packages/api/src/controllers/farmExpenseController.js @@ -82,7 +82,7 @@ const farmExpenseController = { // do not allow updates to deleted records if (await baseController.isDeleted(trx, FarmExpenseModel, { farm_expense_id })) { await trx.rollback(); - return res.status(409).send(); + return res.status(409).send('expense deleted'); } try { diff --git a/packages/webapp/public/locales/en/message.json b/packages/webapp/public/locales/en/message.json index a367a115d9..c74abf8b81 100644 --- a/packages/webapp/public/locales/en/message.json +++ b/packages/webapp/public/locales/en/message.json @@ -46,7 +46,8 @@ "ERROR": { "ADD": "Failed to add new expenses", "DELETE": "Failed to delete expenses", - "UPDATE": "Failed to update expenses!" + "UPDATE": "Failed to update expenses!", + "EXPENSE_DELETED": "It appears you are trying to edit a deleted expense, please try again. Contact litefarm for assistance if the problem persists!." }, "SUCCESS": { "ADD": "Successfully added new expenses!", diff --git a/packages/webapp/public/locales/es/message.json b/packages/webapp/public/locales/es/message.json index d0cde5e28c..b12727a9d9 100644 --- a/packages/webapp/public/locales/es/message.json +++ b/packages/webapp/public/locales/es/message.json @@ -51,7 +51,8 @@ "SUCCESS": { "ADD": "¡Nuevos gastos agregados exitosamente!", "DELETE": "¡Gastos eliminados exitosamente!", - "UPDATE": "¡Gastos actualizados exitosamente!" + "UPDATE": "¡Gastos actualizados exitosamente!", + "EXPENSE_DELETED": "MISSING" } }, "EXPENSE_TYPE": { diff --git a/packages/webapp/public/locales/fr/message.json b/packages/webapp/public/locales/fr/message.json index 4c62848919..3682d11ece 100644 --- a/packages/webapp/public/locales/fr/message.json +++ b/packages/webapp/public/locales/fr/message.json @@ -46,7 +46,8 @@ "ERROR": { "ADD": "Impossible d'ajouter de nouvelles dépenses", "DELETE": "Impossible de supprimer les dépenses", - "UPDATE": "Impossible de mettre à jour les dépenses" + "UPDATE": "Impossible de mettre à jour les dépenses", + "EXPENSE_DELETED": "MISSING" }, "SUCCESS": { "ADD": "Nouvelles dépenses ajoutées", diff --git a/packages/webapp/public/locales/pt/message.json b/packages/webapp/public/locales/pt/message.json index d3f1644cb7..883c208b33 100644 --- a/packages/webapp/public/locales/pt/message.json +++ b/packages/webapp/public/locales/pt/message.json @@ -46,7 +46,8 @@ "ERROR": { "ADD": "Falha ao adicionar novas despesas", "DELETE": "Falha ao excluir despesas", - "UPDATE": "Falha ao atualizar despesas!" + "UPDATE": "Falha ao atualizar despesas!", + "EXPENSE_DELETED": "MISSING" }, "SUCCESS": { "ADD": "Novas despesas adicionadas com sucesso!", diff --git a/packages/webapp/src/containers/Finances/saga.js b/packages/webapp/src/containers/Finances/saga.js index 83caf4a9dc..5704a93a86 100644 --- a/packages/webapp/src/containers/Finances/saga.js +++ b/packages/webapp/src/containers/Finances/saga.js @@ -336,7 +336,12 @@ export function* editExpenseSaga(action) { history.push(FINANCES_HOME_URL); } catch (e) { console.log(e); - yield put(enqueueErrorSnackbar(i18n.t('message:EXPENSE.ERROR.UPDATE'))); + if (e.response.data == 'expense deleted') { + yield put(enqueueErrorSnackbar(i18n.t('message:EXPENSE.ERROR.EXPENSE_DELETED'))); + history.push(FINANCES_HOME_URL); + } else { + yield put(enqueueErrorSnackbar(i18n.t('message:EXPENSE.ERROR.UPDATE'))); + } } } From 74cb451c181b025cee5f01d33a37c48d828ce896 Mon Sep 17 00:00:00 2001 From: Gursimran Singh Date: Fri, 12 Jul 2024 14:24:27 -0600 Subject: [PATCH 3/4] reformatting --- packages/webapp/public/locales/es/message.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/webapp/public/locales/es/message.json b/packages/webapp/public/locales/es/message.json index b12727a9d9..6cf2417612 100644 --- a/packages/webapp/public/locales/es/message.json +++ b/packages/webapp/public/locales/es/message.json @@ -46,13 +46,13 @@ "ERROR": { "ADD": "No se pudo agregar nuevos gastos", "DELETE": "No se pudo borrar gastos", - "UPDATE": "No se pudo actualizar gastos!" + "UPDATE": "No se pudo actualizar gastos!", + "EXPENSE_DELETED": "MISSING" }, "SUCCESS": { "ADD": "¡Nuevos gastos agregados exitosamente!", "DELETE": "¡Gastos eliminados exitosamente!", - "UPDATE": "¡Gastos actualizados exitosamente!", - "EXPENSE_DELETED": "MISSING" + "UPDATE": "¡Gastos actualizados exitosamente!" } }, "EXPENSE_TYPE": { From 0805423ada92c86575f542b99a026a3169be13b6 Mon Sep 17 00:00:00 2001 From: Gursimran Singh Date: Tue, 30 Jul 2024 12:44:19 -0600 Subject: [PATCH 4/4] Error message update --- packages/webapp/public/locales/en/message.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webapp/public/locales/en/message.json b/packages/webapp/public/locales/en/message.json index 7b251e1c38..91986be6d7 100644 --- a/packages/webapp/public/locales/en/message.json +++ b/packages/webapp/public/locales/en/message.json @@ -47,7 +47,7 @@ "ADD": "Failed to add new expenses", "DELETE": "Failed to delete expenses", "UPDATE": "Failed to update expenses!", - "EXPENSE_DELETED": "It appears you are trying to edit a deleted expense, please try again. Contact litefarm for assistance if the problem persists!." + "EXPENSE_DELETED": "This expense no longer exists" }, "SUCCESS": { "ADD": "Successfully added new expenses!",