From 82b909a2235709ed9568823583244b7233244125 Mon Sep 17 00:00:00 2001 From: Marco Russo Date: Thu, 27 Feb 2025 18:50:25 +0000 Subject: [PATCH] fix: report validation second solution --- .../domain/entity/report/ReportEntity.java | 4 --- ...lockchain_transaction_metadata_schema.json | 27 +++++++++++++++---- .../api3_test_transactions_valid_bs.json | 1 + .../api3_test_transactions_valid_is.json | 1 + 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/accounting_reporting_core/src/main/java/org/cardanofoundation/lob/app/accounting_reporting_core/domain/entity/report/ReportEntity.java b/accounting_reporting_core/src/main/java/org/cardanofoundation/lob/app/accounting_reporting_core/domain/entity/report/ReportEntity.java index 163c8341..10a9408b 100644 --- a/accounting_reporting_core/src/main/java/org/cardanofoundation/lob/app/accounting_reporting_core/domain/entity/report/ReportEntity.java +++ b/accounting_reporting_core/src/main/java/org/cardanofoundation/lob/app/accounting_reporting_core/domain/entity/report/ReportEntity.java @@ -255,10 +255,6 @@ public boolean isValid() { } public void setPeriod(Optional<@Min(1) @Max(12) Short> period) { - if (this.intervalType.equals(IntervalType.YEAR)) { - this.period = null; - return; - } this.period = period.orElse(null); } diff --git a/blockchain_common/src/main/resources/api3_lob_blockchain_transaction_metadata_schema.json b/blockchain_common/src/main/resources/api3_lob_blockchain_transaction_metadata_schema.json index 2911bdd1..958b8ea6 100644 --- a/blockchain_common/src/main/resources/api3_lob_blockchain_transaction_metadata_schema.json +++ b/blockchain_common/src/main/resources/api3_lob_blockchain_transaction_metadata_schema.json @@ -71,7 +71,7 @@ "enum": ["YEAR", "MONTH", "QUARTER"] }, "period": { - "type": ["integer", "null"], + "type": ["integer"], "minimum": 1, "maximum": 12 }, @@ -98,8 +98,9 @@ } }, "then": { - "not": { - "required": ["period"] + "required": ["period"], + "properties": { + "period": {"const": 1} } } }, @@ -107,12 +108,28 @@ "if": { "properties": { "interval": { - "enum": ["MONTH", "QUARTER"] + "const": "QUARTER" } } }, "then": { - "required": ["period"] + "required": ["period"], + "properties": { + "period": { + "type": ["integer"], + "minimum": 1, + "maximum": 4 + } + } + } + }, + { + "if": { + "properties": { + "interval": { + "enum": ["MONTH", "QUARTER"] + } + } } }, { diff --git a/blockchain_common/src/test/resources/api3_test_transactions_valid_bs.json b/blockchain_common/src/test/resources/api3_test_transactions_valid_bs.json index 13f2d16a..1941c7fd 100644 --- a/blockchain_common/src/test/resources/api3_test_transactions_valid_bs.json +++ b/blockchain_common/src/test/resources/api3_test_transactions_valid_bs.json @@ -42,6 +42,7 @@ "results_carried_forward": "300000.00" } }, + "period": 1, "type": "REPORT", "subType": "BALANCE_SHEET", "interval": "YEAR", diff --git a/blockchain_common/src/test/resources/api3_test_transactions_valid_is.json b/blockchain_common/src/test/resources/api3_test_transactions_valid_is.json index 9a3a857d..caa648b9 100644 --- a/blockchain_common/src/test/resources/api3_test_transactions_valid_is.json +++ b/blockchain_common/src/test/resources/api3_test_transactions_valid_is.json @@ -41,6 +41,7 @@ }, "profit_for_the_year": "3000000.00" }, + "period": 1, "type": "REPORT", "subType": "INCOME_STATEMENT", "interval": "YEAR",