From 3ec459da6fb4122553372480435fc7d669140df8 Mon Sep 17 00:00:00 2001 From: mvvasilev Date: Wed, 3 Jan 2024 18:12:09 +0200 Subject: [PATCH] Re-fetch categories on import, add delete cascade of categorizations --- .../finances/services/CategoryService.java | 2 +- .../V1.20__MakeCategorizationFKCascade.sql | 4 ++++ frontend/src/app/pages/CategoriesPage.jsx | 15 +++++++++------ 3 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 PersonalFinancesService/src/main/resources/db/migration/V1.20__MakeCategorizationFKCascade.sql diff --git a/PersonalFinancesService/src/main/java/dev/mvvasilev/finances/services/CategoryService.java b/PersonalFinancesService/src/main/java/dev/mvvasilev/finances/services/CategoryService.java index 49eb4e9..2fa5686 100644 --- a/PersonalFinancesService/src/main/java/dev/mvvasilev/finances/services/CategoryService.java +++ b/PersonalFinancesService/src/main/java/dev/mvvasilev/finances/services/CategoryService.java @@ -391,7 +391,7 @@ public class CategoryService { private CreateCategorizationDTO mapCategorizationForImport(CategorizationDTO cr) { return new CreateCategorizationDTO ( cr.rule().rule(), - cr.ruleBasedOn().field(), + cr.ruleBasedOn() == null ? null : cr.ruleBasedOn().field(), Optional.ofNullable(cr.stringValue()), Optional.ofNullable(cr.numericGreaterThan()), Optional.ofNullable(cr.numericLessThan()), diff --git a/PersonalFinancesService/src/main/resources/db/migration/V1.20__MakeCategorizationFKCascade.sql b/PersonalFinancesService/src/main/resources/db/migration/V1.20__MakeCategorizationFKCascade.sql new file mode 100644 index 0000000..b9877a1 --- /dev/null +++ b/PersonalFinancesService/src/main/resources/db/migration/V1.20__MakeCategorizationFKCascade.sql @@ -0,0 +1,4 @@ +ALTER TABLE categories.categorization DROP CONSTRAINT FK_categorization_category; + +ALTER TABLE categories.categorization +ADD CONSTRAINT FK_categorization_category FOREIGN KEY (category_id) REFERENCES categories.transaction_category(id) ON DELETE CASCADE; \ No newline at end of file diff --git a/frontend/src/app/pages/CategoriesPage.jsx b/frontend/src/app/pages/CategoriesPage.jsx index a260320..742751f 100644 --- a/frontend/src/app/pages/CategoriesPage.jsx +++ b/frontend/src/app/pages/CategoriesPage.jsx @@ -197,12 +197,15 @@ export default function CategoriesPage() { toast.promise( utils.performRequest("/api/categories/import", { - method: "POST", - body: formData - }).then(resp => { - openUploadDialog(false); - utils.hideSpinner(); - }), + method: "POST", + body: formData + }) + .then(resp => fetchCategories()) + .then(resp => { + setSelectedCategory(null); + openUploadDialog(false); + utils.hideSpinner(); + }), { loading: "Importing...", success: "Imported",