mirror of
https://github.com/penpot/penpot.git
synced 2025-02-03 21:09:00 -05:00
🎉 Add :project-file query.
This commit is contained in:
parent
94fe18b4ae
commit
932d5bb004
1 changed files with 22 additions and 5 deletions
|
@ -22,9 +22,7 @@
|
||||||
(s/def ::project-id ::us/uuid)
|
(s/def ::project-id ::us/uuid)
|
||||||
(s/def ::user ::us/uuid)
|
(s/def ::user ::us/uuid)
|
||||||
|
|
||||||
;; --- Query: Project Files
|
(def ^:private sql:generic-project-files
|
||||||
|
|
||||||
(def ^:private sql:project-files
|
|
||||||
"select pf.*,
|
"select pf.*,
|
||||||
array_agg(pp.id) as pages
|
array_agg(pp.id) as pages
|
||||||
from project_files as pf
|
from project_files as pf
|
||||||
|
@ -32,10 +30,15 @@
|
||||||
inner join project_users as pu on (p.id = pu.project_id)
|
inner join project_users as pu on (p.id = pu.project_id)
|
||||||
left join project_pages as pp on (pf.id = pp.file_id)
|
left join project_pages as pp on (pf.id = pp.file_id)
|
||||||
where pu.user_id = $1
|
where pu.user_id = $1
|
||||||
and pu.project_id = $2
|
|
||||||
and pu.can_edit = true
|
and pu.can_edit = true
|
||||||
group by pf.id
|
group by pf.id
|
||||||
order by pf.created_at asc;")
|
order by pf.created_at asc")
|
||||||
|
|
||||||
|
;; --- Query: Project Files
|
||||||
|
|
||||||
|
(def ^:private sql:project-files
|
||||||
|
(str "with files as (" sql:generic-project-files ")"
|
||||||
|
" select * from files where project_id = $2"))
|
||||||
|
|
||||||
(s/def ::project-files
|
(s/def ::project-files
|
||||||
(s/keys :req-un [::user ::project-id]))
|
(s/keys :req-un [::user ::project-id]))
|
||||||
|
@ -45,6 +48,20 @@
|
||||||
(-> (db/query db/pool [sql:project-files user project-id])
|
(-> (db/query db/pool [sql:project-files user project-id])
|
||||||
(p/then' (partial mapv decode-row))))
|
(p/then' (partial mapv decode-row))))
|
||||||
|
|
||||||
|
;; --- Query: Project File (By ID)
|
||||||
|
|
||||||
|
(def ^:private sql:project-file
|
||||||
|
(str "with files as (" sql:generic-project-files ")"
|
||||||
|
" select * from files where id = $2"))
|
||||||
|
|
||||||
|
(s/def ::project-file
|
||||||
|
(s/keys :req-un [::user ::id]))
|
||||||
|
|
||||||
|
(sq/defquery ::project-file
|
||||||
|
[{:keys [user id] :as params}]
|
||||||
|
(-> (db/query-one db/pool [sql:project-file user id])
|
||||||
|
(p/then' decode-row)))
|
||||||
|
|
||||||
;; --- Helpers
|
;; --- Helpers
|
||||||
|
|
||||||
(defn decode-row
|
(defn decode-row
|
||||||
|
|
Loading…
Add table
Reference in a new issue