From ec5cfc64a96e52bda3373fba481e319fc407eafd Mon Sep 17 00:00:00 2001 From: Juho Haapakoski Date: Tue, 22 Oct 2024 08:38:26 +0300 Subject: [PATCH] AE-2282: Add removal of toimenpide document - Change the valvonta type in test to be such that it creates a document. - Reveal file-path from valvonta-oikeellisuus.asha - Add document removal step --- .../service/energiatodistus_destruction.clj | 35 +++++++--- .../service/valvonta_oikeellisuus/asha.clj | 2 +- .../energiatodistus_destruction_test.clj | 70 ++++++++++++++----- 3 files changed, 78 insertions(+), 29 deletions(-) diff --git a/etp-core/etp-backend/src/main/clj/solita/etp/service/energiatodistus_destruction.clj b/etp-core/etp-backend/src/main/clj/solita/etp/service/energiatodistus_destruction.clj index 7c017880a..37041fd63 100644 --- a/etp-core/etp-backend/src/main/clj/solita/etp/service/energiatodistus_destruction.clj +++ b/etp-core/etp-backend/src/main/clj/solita/etp/service/energiatodistus_destruction.clj @@ -7,6 +7,7 @@ [solita.etp.exception :as exception] [solita.etp.service.complete-energiatodistus :as complete-energiatodistus-service] [solita.etp.service.energiatodistus :as energiatodistus-service] + [solita.etp.service.valvonta-oikeellisuus.asha :as vo-asha-service] [solita.etp.service.kayttaja :as kayttaja-service] [solita.etp.service.rooli :as rooli-service] [solita.etp.service.liite :as liite-service] @@ -21,15 +22,6 @@ (defn- destroy-energiatodistus-audit-data! [db energiatodistus-id] (energiatodistus-destruction-db/destroy-energiatodistus-audit! db {:energiatodistus-id energiatodistus-id})) -(defn- destroy-energiatodistus-oikeellisuuden-valvonta! [db energiatodistus-id] - (energiatodistus-destruction-db/destroy-energiatodistus-oikeellisuuden-valvonta-note! db {:energiatodistus-id energiatodistus-id}) - (energiatodistus-destruction-db/destroy-energiatodistus-oikeellisuuden-valvonta-virhe! db {:energiatodistus-id energiatodistus-id}) - (energiatodistus-destruction-db/destroy-energiatodistus-oikeellisuuden-valvonta-tiedoksi! db {:energiatodistus-id energiatodistus-id}) - (energiatodistus-destruction-db/destroy-energiatodistus-oikeellisuuden-valvonta-toimenpide! db {:energiatodistus-id energiatodistus-id}) - - (energiatodistus-destruction-db/destroy-energiatodistus-oikeellisuuden-valvonta-toimenpide-audit! db {:energiatodistus-id energiatodistus-id}) - (energiatodistus-destruction-db/destroy-energiatodistus-oikeellisuuden-valvonta-note-audit! db {:energiatodistus-id energiatodistus-id})) - (defn- delete-from-s3 [aws-s3-client file-key] (if (file/file-exists? aws-s3-client file-key) (do @@ -65,6 +57,27 @@ (let [liitteet (map :liite-id (energiatodistus-destruction-db/select-to-be-destroyed-liitteet-by-energiatodistus-id db {:energiatodistus-id energiatodistus-id}))] (run! #(delete-energiatodistus-liite db aws-s3-client %) liitteet))) +(defn- destroy-toimenpide-s3! [aws-s3-client energiatodistus-id valvonta-id] + (let [file-key (vo-asha-service/file-path energiatodistus-id valvonta-id)] + ;; All the toimenpiteet do not create documents + (when (file/file-exists? aws-s3-client file-key) + (delete-from-s3 aws-s3-client file-key)))) + +(defn- destroy-oikeellisuuden-valvonta-s3! [db aws-s3-client energiatodistus-id] + (let [vo-toimenpide-ids (map :vo-toimenpide-id (energiatodistus-destruction-db/select-vo-toimenpiteet-by-energiatodistus-id db {:energiatodistus-id energiatodistus-id}))] + (run! #(destroy-toimenpide-s3! aws-s3-client energiatodistus-id %) vo-toimenpide-ids))) + +(defn- destroy-energiatodistus-oikeellisuuden-valvonta! [db aws-s3-client energiatodistus-id] + (destroy-oikeellisuuden-valvonta-s3! db aws-s3-client energiatodistus-id) + + (energiatodistus-destruction-db/destroy-energiatodistus-oikeellisuuden-valvonta-note! db {:energiatodistus-id energiatodistus-id}) + (energiatodistus-destruction-db/destroy-energiatodistus-oikeellisuuden-valvonta-virhe! db {:energiatodistus-id energiatodistus-id}) + (energiatodistus-destruction-db/destroy-energiatodistus-oikeellisuuden-valvonta-tiedoksi! db {:energiatodistus-id energiatodistus-id}) + (energiatodistus-destruction-db/destroy-energiatodistus-oikeellisuuden-valvonta-toimenpide! db {:energiatodistus-id energiatodistus-id}) + + (energiatodistus-destruction-db/destroy-energiatodistus-oikeellisuuden-valvonta-toimenpide-audit! db {:energiatodistus-id energiatodistus-id}) + (energiatodistus-destruction-db/destroy-energiatodistus-oikeellisuuden-valvonta-note-audit! db {:energiatodistus-id energiatodistus-id})) + (defn- destroy-viesti! [db viesti-id] (energiatodistus-destruction-db/destroy-viesti-reader! db {:viesti-id viesti-id}) (energiatodistus-destruction-db/destroy-viesti! db {:viesti-id viesti-id})) @@ -98,7 +111,7 @@ (log/error "There exists one or many viestiketju for oikeellisuuden valvonta (id: " vo-toimenpide-id ")")))) (defn- check-oikeellisuuden-valvontojen-viestiketjut [db energiatodistus-id] - (let [vo-toimenpide-ids (map :id (energiatodistus-destruction-db/select-vo-toimenpiteet-by-energiatodistus-id db {:energiatodistus-id energiatodistus-id}))] + (let [vo-toimenpide-ids (map :vo-toimenpide-id (energiatodistus-destruction-db/select-vo-toimenpiteet-by-energiatodistus-id db {:energiatodistus-id energiatodistus-id}))] (run! (partial check-oikeellisuuden-valvonta-viestiketjut db) vo-toimenpide-ids))) (defn- destroy-energiatodistus-viestiketjut [db aws-s3-client energiatodistus-id] @@ -111,7 +124,7 @@ (jdbc/with-db-transaction [db db] (destroy-energiatodistus-viestiketjut db aws-s3-client energiatodistus-id) (destroy-energiatodistus-liitteet db aws-s3-client energiatodistus-id) - (destroy-energiatodistus-oikeellisuuden-valvonta! db energiatodistus-id) + (destroy-energiatodistus-oikeellisuuden-valvonta! db aws-s3-client energiatodistus-id) (anonymize-energiatodistus! db energiatodistus-id) (destroy-energiatodistus-audit-data! db energiatodistus-id)) (log/info (str "Destroyed energiatodistus (id: " energiatodistus-id ")"))) diff --git a/etp-core/etp-backend/src/main/clj/solita/etp/service/valvonta_oikeellisuus/asha.clj b/etp-core/etp-backend/src/main/clj/solita/etp/service/valvonta_oikeellisuus/asha.clj index d7c4488f0..693fdb252 100644 --- a/etp-core/etp-backend/src/main/clj/solita/etp/service/valvonta_oikeellisuus/asha.clj +++ b/etp-core/etp-backend/src/main/clj/solita/etp/service/valvonta_oikeellisuus/asha.clj @@ -24,7 +24,7 @@ (def file-key-prefix "valvonta/oikeellisuus") -(defn- file-path [energiatodistus-id toimenpide-id] +(defn file-path [energiatodistus-id toimenpide-id] (str file-key-prefix "/" energiatodistus-id "/" toimenpide-id)) (defn toimenpide-type->document [type-id] diff --git a/etp-core/etp-backend/src/test/clj/solita/etp/service/energiatodistus_destruction_test.clj b/etp-core/etp-backend/src/test/clj/solita/etp/service/energiatodistus_destruction_test.clj index 504bca0e3..b5252fbcb 100644 --- a/etp-core/etp-backend/src/test/clj/solita/etp/service/energiatodistus_destruction_test.clj +++ b/etp-core/etp-backend/src/test/clj/solita/etp/service/energiatodistus_destruction_test.clj @@ -6,6 +6,7 @@ [solita.etp.service.valvonta-oikeellisuus :as valvonta-oikeellisuus-service] [solita.etp.service.energiatodistus-destruction :as service] [solita.etp.service.viesti-test :as viesti-test] + [solita.etp.service.valvonta-oikeellisuus.asha :as vo-asha-service] [solita.etp.service.kayttaja :as kayttaja-service] [solita.etp.service.file :as file-service] [solita.etp.service.liite :as liite-service] @@ -341,23 +342,43 @@ :description-sv "test"}) vo_virhe {:description "Test" :type-id virhetype-id} - rfi-reply {:type-id 4 - :deadline-date nil - :template-id nil - :description "Test" - :virheet [vo_virhe] - :severity-id nil - :tiedoksi [vo_tiedoksi vo_tiedoksi]} - _ (valvonta-oikeellisuus-service/add-toimenpide! (ts/db-user laatija-id) - ts/*aws-s3-client* - (test-whoami/laatija laatija-id) - energiatodistus-id-1 rfi-reply) - _ (valvonta-oikeellisuus-service/add-toimenpide! (ts/db-user laatija-id) - ts/*aws-s3-client* - (test-whoami/laatija laatija-id) - energiatodistus-id-2 rfi-reply) - _ (valvonta-oikeellisuus-service/add-note! ts/*db* energiatodistus-id-1 (:description vo_note)) - _ (valvonta-oikeellisuus-service/add-note! ts/*db* energiatodistus-id-2 (:description vo_note))] + + audit-report {:type-id 7 + :deadline-date nil + :template-id nil + :description "Test" + :virheet [vo_virhe] + :severity-id nil + :tiedoksi [vo_tiedoksi vo_tiedoksi]} + vo-toimenpide-1-id (:id (valvonta-oikeellisuus-service/add-toimenpide! (ts/db-user paakayttaja-id) + ts/*aws-s3-client* + (test-whoami/paakayttaja paakayttaja-id) + energiatodistus-id-1 audit-report)) + vo-toimenpide-2-id (:id (valvonta-oikeellisuus-service/add-toimenpide! (ts/db-user paakayttaja-id) + ts/*aws-s3-client* + (test-whoami/paakayttaja paakayttaja-id) + energiatodistus-id-2 audit-report))] + + (valvonta-oikeellisuus-service/add-note! ts/*db* energiatodistus-id-1 (:description vo_note)) + + (valvonta-oikeellisuus-service/update-toimenpide! (ts/db-user paakayttaja-id) + (test-whoami/paakayttaja paakayttaja-id) + energiatodistus-id-1 vo-toimenpide-1-id {:template-id 1}) + (valvonta-oikeellisuus-service/publish-toimenpide! ts/*db* + ts/*aws-s3-client* + (test-whoami/paakayttaja paakayttaja-id) + energiatodistus-id-1 + vo-toimenpide-1-id) + (valvonta-oikeellisuus-service/add-note! ts/*db* energiatodistus-id-2 (:description vo_note)) + (valvonta-oikeellisuus-service/update-toimenpide! (ts/db-user paakayttaja-id) + (test-whoami/paakayttaja paakayttaja-id) + energiatodistus-id-2 vo-toimenpide-2-id {:template-id 1}) + (valvonta-oikeellisuus-service/publish-toimenpide! ts/*db* + ts/*aws-s3-client* + (test-whoami/paakayttaja paakayttaja-id) + energiatodistus-id-2 + vo-toimenpide-2-id) + (t/testing "There is some toimenpide before deletion." (t/is (not (empty? (get-vo-toimenpiteet energiatodistus-id-1))))) (t/testing "There is some note before deletion." @@ -373,9 +394,24 @@ (t/testing "There was some audit data on notes before deletion." (t/is (not (empty? (select-notes-audit energiatodistus-id-1))))) + (t/testing "There are valvonta liite documents" + (let [file-key-et-1 (vo-asha-service/file-path energiatodistus-id-1 vo-toimenpide-1-id) + file-key-et-2 (vo-asha-service/file-path energiatodistus-id-2 vo-toimenpide-2-id)] + (t/is (true? (file-service/file-exists? ts/*aws-s3-client* file-key-et-1))) + (t/is (true? (file-service/file-exists? ts/*aws-s3-client* file-key-et-2))))) + + ;; wait for emails to finish + (Thread/sleep 5000) + (expire-energiatodistus! energiatodistus-id-1) (service/destroy-expired-energiatodistukset! ts/*db* ts/*aws-s3-client* system-expiration-user) + (t/testing "Energiatodistus 1 valovonta documents are destroyed and energiatodistus 2 are not" + (let [file-key-et-1 (vo-asha-service/file-path energiatodistus-id-1 vo-toimenpide-1-id) + file-key-et-2 (vo-asha-service/file-path energiatodistus-id-2 vo-toimenpide-2-id)] + (t/is (false? (file-service/file-exists? ts/*aws-s3-client* file-key-et-1))) + (t/is (true? (file-service/file-exists? ts/*aws-s3-client* file-key-et-2))))) + (t/testing "There are no more toimenpiteet after deletion." (t/is (empty? (get-vo-toimenpiteet energiatodistus-id-1)))) (t/testing "There are no more notes after deletion."