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",