♻️ Refactor thumbnails persistence

This commit is contained in:
Aitor 2023-11-08 16:27:23 +01:00 committed by Andrey Antukh
parent a19f5fd305
commit e24309b883
3 changed files with 42 additions and 13 deletions

View file

@ -320,6 +320,41 @@
(delete-file-object-thumbnail! file-id object-id))
nil)))
;; --- MUTATION COMMAND: upsert-file-object-thumbnail
(def ^:private schema:upsert-file-object-thumbnail
[:map {:title "upsert-file-object-thumbnail"}
[:file-id ::sm/uuid]
[:object-id :string]
[:media ::media/upload]
[:tag {:optional true} :string]])
(defn- upsert-file-object-thumbnail!
[cfg file-id object-id media tag]
(delete-file-object-thumbnail! cfg file-id object-id)
(create-file-object-thumbnail! cfg file-id object-id media (or tag "frame")))
(sv/defmethod ::upsert-file-object-thumbnail
{::doc/added "1.20"
::doc/module :files
::climit/id :file-thumbnail-ops
::climit/key-fn ::rpc/profile-id
::audit/skip true
::sm/params schema:upsert-file-object-thumbnail}
[{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id object-id media tag]}]
(db/with-atomic [conn pool]
(files/check-edition-permissions! conn profile-id file-id)
(media/validate-media-type! media)
(media/validate-media-size! media)
(when-not (db/read-only? conn)
(-> cfg
(update ::sto/storage media/configure-assets-storage)
(assoc ::db/conn conn)
(upsert-file-object-thumbnail! file-id object-id media tag))
nil)))
;; --- MUTATION COMMAND: create-file-thumbnail
(def ^:private sql:create-file-thumbnail