From 37d0cec26518689b41dc29d8ec0cdcebf8474d51 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 26 Jun 2024 14:59:38 +0200 Subject: [PATCH 1/2] :bug: Properly report importation errors --- backend/src/app/http/sse.clj | 2 ++ backend/src/app/rpc/commands/binfile.clj | 26 ++++++++++-------------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/backend/src/app/http/sse.clj b/backend/src/app/http/sse.clj index 868801091..3da84322c 100644 --- a/backend/src/app/http/sse.clj +++ b/backend/src/app/http/sse.clj @@ -61,6 +61,8 @@ (let [result (handler)] (events/tap :end result)) (catch Throwable cause + (l/err :hint "unexpected error on processing sse response" + :cause cause) (events/tap :error (errors/handle' cause request))) (finally (sp/close! events/*channel*) diff --git a/backend/src/app/rpc/commands/binfile.clj b/backend/src/app/rpc/commands/binfile.clj index d6759eb42..3f5bb931c 100644 --- a/backend/src/app/rpc/commands/binfile.clj +++ b/backend/src/app/rpc/commands/binfile.clj @@ -30,14 +30,12 @@ ;; --- Command: export-binfile -(def ^:private - schema:export-binfile - (sm/define - [:map {:title "export-binfile"} - [:name :string] - [:file-id ::sm/uuid] - [:include-libraries :boolean] - [:embed-assets :boolean]])) +(def ^:private schema:export-binfile + [:map {:title "export-binfile"} + [:name :string] + [:file-id ::sm/uuid] + [:include-libraries :boolean] + [:embed-assets :boolean]]) (sv/defmethod ::export-binfile "Export a penpot file in a binary format." @@ -76,13 +74,11 @@ {:id project-id}) result)) -(def ^:private - schema:import-binfile - (sm/define - [:map {:title "import-binfile"} - [:name :string] - [:project-id ::sm/uuid] - [:file ::media/upload]])) +(def ^:private schema:import-binfile + [:map {:title "import-binfile"} + [:name :string] + [:project-id ::sm/uuid] + [:file ::media/upload]]) (sv/defmethod ::import-binfile "Import a penpot file in a binary format." From 1c1929ed329fee963a2d0cc9fab95591b53e1644 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 26 Jun 2024 15:00:47 +0200 Subject: [PATCH 2/2] :paperclip: Add helpers for process deletion cascade of old objects --- backend/src/app/srepl/main.clj | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/backend/src/app/srepl/main.clj b/backend/src/app/srepl/main.clj index c71c58db0..aed63f1cd 100644 --- a/backend/src/app/srepl/main.clj +++ b/backend/src/app/srepl/main.clj @@ -582,6 +582,38 @@ :deleted-at (dt/now) :id file-id}))))) + +(defn process-deleted-teams-cascade + [] + (->> (db/exec! main/system ["select id, deleted_at from team where deleted_at is not null"]) + (run! (fn [{:keys [id deleted-at]}] + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :team + :deleted-at deleted-at + :id id}))))))) + + +(defn process-deleted-projects-cascade + [] + (->> (db/exec! main/system ["select id, deleted_at from project where deleted_at is not null"]) + (run! (fn [{:keys [id deleted-at]}] + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :project + :deleted-at deleted-at + :id id}))))))) + +(defn process-deleted-files-cascade + [] + (->> (db/exec! main/system ["select id, deleted_at from file where deleted_at is not null"]) + (run! (fn [{:keys [id deleted-at]}] + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :file + :deleted-at deleted-at + :id id}))))))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; MISC ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;