🎉 Set files as shared libraries

This commit is contained in:
Andrés Moya 2020-08-04 12:05:54 +02:00
parent 69ae893bd0
commit 9fb821d6e0
19 changed files with 322 additions and 56 deletions

View file

@ -372,7 +372,8 @@
(files/create-file conn {:id id
:profile-id uuid/zero
:project-id project-id
:name name})
:name name
:shared? true})
(files/create-page conn {:file-id id}))
id))

View file

@ -63,7 +63,11 @@
{:desc "Make libraries linked to a file"
:name "0012-make-libraries-linked-to-a-file"
:fn (mg/resource "migrations/0012-make-libraries-linked-to-a-file.sql")}]})
:fn (mg/resource "migrations/0012-make-libraries-linked-to-a-file.sql")}
{:desc "Mark files shareable"
:name "0013-mark-files-shareable"
:fn (mg/resource "migrations/0013-mark-files-shareable.sql")}]})
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Entry point

View file

@ -63,9 +63,14 @@
:can-edit true}))
(defn create-file
[conn {:keys [id profile-id name project-id] :as params}]
(let [id (or id (uuid/next))
file (db/insert! conn :file {:id id :project-id project-id :name name})]
[conn {:keys [id profile-id name project-id shared?] :as params}]
(let [id (or id (uuid/next))
shared? (or shared? false)
file (db/insert! conn :file
{:id id
:project-id project-id
:name name
:is-shared shared?})]
(->> (assoc params :file-id id)
(create-file-profile conn))
file))
@ -101,6 +106,26 @@
{:id id}))
;; --- Mutation: Set File shared
(declare set-file-shared)
(s/def ::set-file-shared
(s/keys :req-un [::profile-id ::id ::is-shared]))
(sm/defmutation ::set-file-shared
[{:keys [id profile-id] :as params}]
(db/with-atomic [conn db/pool]
(files/check-edition-permissions! conn profile-id id)
(set-file-shared conn params)))
(defn- set-file-shared
[conn {:keys [id is-shared] :as params}]
(db/update! conn :file
{:is-shared is-shared}
{:id id}))
;; --- Mutation: Delete Project File
(declare mark-file-deleted)