mirror of
https://github.com/penpot/penpot.git
synced 2025-05-17 18:36:11 +02:00
Import backend code inside the repository.
This commit is contained in:
parent
e21798f1ed
commit
de57630c14
113 changed files with 8040 additions and 0 deletions
64
backend/resources/sql/projects.sql
Normal file
64
backend/resources/sql/projects.sql
Normal file
|
@ -0,0 +1,64 @@
|
|||
-- :name create-project :<! :1
|
||||
insert into projects (id, "user", name)
|
||||
values (:id, :user, :name)
|
||||
returning *;
|
||||
|
||||
-- :name update-project :<! :1
|
||||
update projects
|
||||
set name = :name,
|
||||
version = :version
|
||||
where id = :id
|
||||
and "user" = :user
|
||||
and deleted_at is null
|
||||
returning *;
|
||||
|
||||
-- :name delete-project :! :n
|
||||
update projects
|
||||
set deleted_at = clock_timestamp()
|
||||
where id = :id
|
||||
and "user" = :user
|
||||
and deleted_at is null;
|
||||
|
||||
-- :name get-project-by-id :? :1
|
||||
select p.*
|
||||
from projects as p
|
||||
where p.id = :id
|
||||
and p.deleted_at is null;
|
||||
|
||||
-- :name get-projects :? :*
|
||||
select distinct
|
||||
pr.*,
|
||||
ps.token as share_token,
|
||||
count(pg.id) over win as total_pages,
|
||||
first_value(pg.id) over win as page_id,
|
||||
first_value(pg.data) over win as page_data,
|
||||
first_value(pg.name) over win as page_name,
|
||||
first_value(pg.version) over win as page_version,
|
||||
first_value(pg.created_at) over win as page_created_at,
|
||||
first_value(pg.metadata) over win as page_metadata,
|
||||
first_value(pg.modified_at) over win as page_modified_at
|
||||
from projects as pr
|
||||
inner join project_shares as ps
|
||||
on (ps.project = pr.id)
|
||||
left join pages as pg
|
||||
on (pg.project = pr.id)
|
||||
where pr.deleted_at is null
|
||||
and pr."user" = :user
|
||||
window win as (partition by pr.id
|
||||
order by pg.created_at
|
||||
range between unbounded preceding
|
||||
and unbounded following)
|
||||
order by pr.created_at asc;
|
||||
|
||||
-- :name get-project-by-share-token :? :*
|
||||
select p.*
|
||||
from projects as p
|
||||
inner join project_shares as ps
|
||||
on (p.id = ps.project)
|
||||
where ps.token = :token;
|
||||
|
||||
-- :name get-share-tokens-for-project
|
||||
select s.*
|
||||
from project_shares as s
|
||||
where s.project = :project
|
||||
order by s.created_at desc;
|
Loading…
Add table
Add a link
Reference in a new issue