From d03788af939060fb88309a9f464541df977dde10 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 12 Sep 2024 15:20:16 +0200 Subject: [PATCH 1/4] :bug: Ignore object thumbnail requests if file is already marked as deleted --- backend/src/app/rpc/commands/files.clj | 2 +- .../src/app/rpc/commands/files_thumbnails.clj | 22 ++++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/backend/src/app/rpc/commands/files.clj b/backend/src/app/rpc/commands/files.clj index cfcd85df75..8c80a93bd0 100644 --- a/backend/src/app/rpc/commands/files.clj +++ b/backend/src/app/rpc/commands/files.clj @@ -273,7 +273,7 @@ (defn get-minimal-file [cfg id & {:as opts}] - (let [opts (assoc opts ::sql/columns [:id :modified-at :revn :data-ref-id :data-backend])] + (let [opts (assoc opts ::sql/columns [:id :modified-at :deleted-at :revn :data-ref-id :data-backend])] (db/get cfg :file {:id id} opts))) (defn get-file-etag diff --git a/backend/src/app/rpc/commands/files_thumbnails.clj b/backend/src/app/rpc/commands/files_thumbnails.clj index 8e9c2da1c3..7afa8752b6 100644 --- a/backend/src/app/rpc/commands/files_thumbnails.clj +++ b/backend/src/app/rpc/commands/files_thumbnails.clj @@ -233,7 +233,7 @@ "INSERT INTO file_tagged_object_thumbnail (file_id, object_id, tag, media_id) VALUES (?, ?, ?, ?) ON CONFLICT (file_id, object_id, tag) - DO UPDATE SET updated_at=?, media_id=?, deleted_at=null + DO UPDATE SET updated_at=?, media_id=?, deleted_at=? RETURNING *") (defn- persist-thumbnail! @@ -251,17 +251,19 @@ :content-type mtype :bucket "file-object-thumbnail"}))) - - (defn- create-file-object-thumbnail! - [{:keys [::sto/storage] :as cfg} file-id object-id media tag] - (let [tsnow (dt/now) - media (persist-thumbnail! storage media tsnow) + [{:keys [::sto/storage] :as cfg} file object-id media tag] + (let [file-id (:id file) + timestamp (dt/now) + media (persist-thumbnail! storage media timestamp) [th1 th2] (db/tx-run! cfg (fn [{:keys [::db/conn]}] (let [th1 (db/exec-one! conn [sql:get-file-object-thumbnail file-id object-id tag]) th2 (db/exec-one! conn [sql:create-file-object-thumbnail - file-id object-id tag (:id media) - tsnow (:id media)])] + file-id object-id tag + (:id media) + timestamp + (:id media) + (:deleted-at file)])] [th1 th2])))] (when (and (some? th1) @@ -294,8 +296,8 @@ (media/validate-media-size! media) (db/run! cfg files/check-edition-permissions! profile-id file-id) - - (create-file-object-thumbnail! cfg file-id object-id media (or tag "frame"))) + (when-let [file (files/get-minimal-file cfg file-id {::db/check-deleted false})] + (create-file-object-thumbnail! cfg file object-id media (or tag "frame")))) ;; --- MUTATION COMMAND: delete-file-object-thumbnail From a8814dcabaebaa034358dbdf6a2b0f883e8f1c76 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 12 Sep 2024 21:07:19 +0200 Subject: [PATCH 2/4] :bug: Add missing fields on file-gc libraries fetching sql --- backend/src/app/tasks/file_gc.clj | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/backend/src/app/tasks/file_gc.clj b/backend/src/app/tasks/file_gc.clj index 07bc7ffba5..a903a6730e 100644 --- a/backend/src/app/tasks/file_gc.clj +++ b/backend/src/app/tasks/file_gc.clj @@ -133,7 +133,13 @@ file)) (def ^:private sql:get-files-for-library - "SELECT f.id, f.data, f.modified_at, f.features, f.version + "SELECT f.id, + f.data, + f.modified_at, + f.features, + f.version, + f.data_backend, + f.data_ref_id FROM file AS f LEFT JOIN file_library_rel AS fl ON (fl.file_id = f.id) WHERE fl.library_file_id = ? From 0ce981a68ca703db66514dc6c92aafd6253c5a22 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 12 Sep 2024 21:32:34 +0200 Subject: [PATCH 3/4] :bug: Add missing ref-id unsassign on srepl helpers for process file --- backend/src/app/srepl/helpers.clj | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/app/srepl/helpers.clj b/backend/src/app/srepl/helpers.clj index 38ea61dd89..702790ebac 100644 --- a/backend/src/app/srepl/helpers.clj +++ b/backend/src/app/srepl/helpers.clj @@ -75,6 +75,7 @@ :created-at (:created-at file) :modified-at (:modified-at file) :data-backend nil + :data-ref-id nil :has-media-trimmed false} {:id (:id file)}))) From f29112537736e6c21d73d987ecfa4cfc09c7a8f9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 12 Sep 2024 21:33:01 +0200 Subject: [PATCH 4/4] :bug: Add migration for invalid value on layout-wrap-type on shape prop --- common/src/app/common/files/defaults.cljc | 2 +- common/src/app/common/files/migrations.cljc | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/common/src/app/common/files/defaults.cljc b/common/src/app/common/files/defaults.cljc index 6ef70b5ea5..4c2dd1d963 100644 --- a/common/src/app/common/files/defaults.cljc +++ b/common/src/app/common/files/defaults.cljc @@ -6,4 +6,4 @@ (ns app.common.files.defaults) -(def version 51) +(def version 52) diff --git a/common/src/app/common/files/migrations.cljc b/common/src/app/common/files/migrations.cljc index 111d050726..218103f325 100644 --- a/common/src/app/common/files/migrations.cljc +++ b/common/src/app/common/files/migrations.cljc @@ -1010,13 +1010,25 @@ (defn migrate-up-51 "This migration fixes library invalid colors" - [data] (let [update-colors (fn [colors] (into {} (filter #(-> % val valid-color?) colors)))] (update data :colors update-colors))) +(defn migrate-up-52 + "Fixes incorrect value on `layout-wrap-type` prop" + [data] + (letfn [(update-shape [shape] + (if (= :no-wrap (:layout-wrap-type shape)) + (assoc shape :layout-wrap-type :nowrap) + shape)) + + (update-page [page] + (d/update-when page :objects update-vals update-shape))] + + (update data :pages-index update-vals update-page))) + (def migrations "A vector of all applicable migrations" [{:id 2 :migrate-up migrate-up-2} @@ -1059,4 +1071,5 @@ {:id 48 :migrate-up migrate-up-48} {:id 49 :migrate-up migrate-up-49} {:id 50 :migrate-up migrate-up-50} - {:id 51 :migrate-up migrate-up-51}]) + {:id 51 :migrate-up migrate-up-51} + {:id 52 :migrate-up migrate-up-52}])