mirror of
https://github.com/penpot/penpot.git
synced 2025-03-11 07:11:32 -05:00
🔥 Replace spec with schema on media RPC methods
This commit is contained in:
parent
c4cf745d77
commit
37fcc74ef8
1 changed files with 24 additions and 23 deletions
|
@ -9,7 +9,7 @@
|
||||||
[app.common.data :as d]
|
[app.common.data :as d]
|
||||||
[app.common.exceptions :as ex]
|
[app.common.exceptions :as ex]
|
||||||
[app.common.media :as cm]
|
[app.common.media :as cm]
|
||||||
[app.common.spec :as us]
|
[app.common.schema :as sm]
|
||||||
[app.common.uuid :as uuid]
|
[app.common.uuid :as uuid]
|
||||||
[app.config :as cf]
|
[app.config :as cf]
|
||||||
[app.db :as db]
|
[app.db :as db]
|
||||||
|
@ -25,7 +25,6 @@
|
||||||
[app.util.services :as sv]
|
[app.util.services :as sv]
|
||||||
[app.util.time :as dt]
|
[app.util.time :as dt]
|
||||||
[app.worker :as-alias wrk]
|
[app.worker :as-alias wrk]
|
||||||
[clojure.spec.alpha :as s]
|
|
||||||
[cuerdas.core :as str]
|
[cuerdas.core :as str]
|
||||||
[datoteka.io :as io]
|
[datoteka.io :as io]
|
||||||
[promesa.exec :as px]))
|
[promesa.exec :as px]))
|
||||||
|
@ -39,25 +38,21 @@
|
||||||
:quality 85
|
:quality 85
|
||||||
:format :jpeg})
|
:format :jpeg})
|
||||||
|
|
||||||
(s/def ::id ::us/uuid)
|
|
||||||
(s/def ::name ::us/string)
|
|
||||||
(s/def ::file-id ::us/uuid)
|
|
||||||
(s/def ::team-id ::us/uuid)
|
|
||||||
|
|
||||||
;; --- Create File Media object (upload)
|
;; --- Create File Media object (upload)
|
||||||
|
|
||||||
(declare create-file-media-object)
|
(declare create-file-media-object)
|
||||||
|
|
||||||
(s/def ::content ::media/upload)
|
(def ^:private schema:upload-file-media-object
|
||||||
(s/def ::is-local ::us/boolean)
|
[:map {:title "upload-file-media-object"}
|
||||||
|
[:id {:optional true} ::sm/uuid]
|
||||||
(s/def ::upload-file-media-object
|
[:file-id ::sm/uuid]
|
||||||
(s/keys :req [::rpc/profile-id]
|
[:is-local :boolean]
|
||||||
:req-un [::file-id ::is-local ::name ::content]
|
[:name :string]
|
||||||
:opt-un [::id]))
|
[:content ::media/upload]])
|
||||||
|
|
||||||
(sv/defmethod ::upload-file-media-object
|
(sv/defmethod ::upload-file-media-object
|
||||||
{::doc/added "1.17"
|
{::doc/added "1.17"
|
||||||
|
::sm/params schema:upload-file-media-object
|
||||||
::climit/id [[:process-image/by-profile ::rpc/profile-id]
|
::climit/id [[:process-image/by-profile ::rpc/profile-id]
|
||||||
[:process-image/global]]}
|
[:process-image/global]]}
|
||||||
[{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id content] :as params}]
|
[{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id content] :as params}]
|
||||||
|
@ -176,14 +171,17 @@
|
||||||
|
|
||||||
(declare ^:private create-file-media-object-from-url)
|
(declare ^:private create-file-media-object-from-url)
|
||||||
|
|
||||||
(s/def ::create-file-media-object-from-url
|
(def ^:private schema:create-file-media-object-from-url
|
||||||
(s/keys :req [::rpc/profile-id]
|
[:map {:title "create-file-media-object-from-url"}
|
||||||
:req-un [::file-id ::is-local ::url]
|
[:file-id ::sm/uuid]
|
||||||
:opt-un [::id ::name]))
|
[:is-local :boolean]
|
||||||
|
[:url ::sm/uri]
|
||||||
|
[:id {:optional true} ::sm/uuid]
|
||||||
|
[:name {:optional true} :string]])
|
||||||
|
|
||||||
(sv/defmethod ::create-file-media-object-from-url
|
(sv/defmethod ::create-file-media-object-from-url
|
||||||
{::doc/added "1.17"
|
{::doc/added "1.17"
|
||||||
::doc/deprecated "1.19"}
|
::sm/params schema:create-file-media-object-from-url}
|
||||||
[{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id] :as params}]
|
[{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id] :as params}]
|
||||||
(let [cfg (update cfg ::sto/storage media/configure-assets-storage)]
|
(let [cfg (update cfg ::sto/storage media/configure-assets-storage)]
|
||||||
(files/check-edition-permissions! pool profile-id file-id)
|
(files/check-edition-permissions! pool profile-id file-id)
|
||||||
|
@ -255,12 +253,15 @@
|
||||||
|
|
||||||
(declare clone-file-media-object)
|
(declare clone-file-media-object)
|
||||||
|
|
||||||
(s/def ::clone-file-media-object
|
(def ^:private schema:clone-file-media-object
|
||||||
(s/keys :req [::rpc/profile-id]
|
[:map {:title "clone-file-media-object"}
|
||||||
:req-un [::file-id ::is-local ::id]))
|
[:file-id ::sm/uuid]
|
||||||
|
[:is-local :boolean]
|
||||||
|
[:id ::sm/uuid]])
|
||||||
|
|
||||||
(sv/defmethod ::clone-file-media-object
|
(sv/defmethod ::clone-file-media-object
|
||||||
{::doc/added "1.17"}
|
{::doc/added "1.17"
|
||||||
|
::sm/params schema:clone-file-media-object}
|
||||||
[{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id] :as params}]
|
[{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id] :as params}]
|
||||||
(db/with-atomic [conn pool]
|
(db/with-atomic [conn pool]
|
||||||
(files/check-edition-permissions! conn profile-id file-id)
|
(files/check-edition-permissions! conn profile-id file-id)
|
||||||
|
|
Loading…
Add table
Reference in a new issue