🎉 Add themes infraestructure.

This commit is contained in:
Vitaly Kornilov 2020-04-08 11:57:29 +03:00 committed by Andrey Antukh
parent cd61269cd5
commit ea3e17f7fe
20 changed files with 207 additions and 33 deletions

View file

@ -46,6 +46,7 @@
(s/def ::profile-id ::us/uuid)
(s/def ::password ::us/string)
(s/def ::old-password ::us/string)
(s/def ::theme ::us/string)
;; --- Mutation: Login
@ -96,20 +97,21 @@
(def ^:private sql:update-profile
"update profile
set fullname = $2,
lang = $3
lang = $3,
theme = $4
where id = $1
and deleted_at is null
returning *")
(defn- update-profile
[conn {:keys [id fullname lang] :as params}]
(let [sqlv [sql:update-profile id fullname lang]]
[conn {:keys [id fullname lang theme] :as params}]
(let [sqlv [sql:update-profile id fullname lang theme]]
(-> (db/query-one conn sqlv)
(p/then' su/raise-not-found-if-nil)
(p/then' profile/strip-private-attrs))))
(s/def ::update-profile
(s/keys :req-un [::id ::fullname ::lang]))
(s/keys :req-un [::id ::fullname ::lang ::theme]))
(sm/defmutation ::update-profile
[params]

View file

@ -30,6 +30,7 @@
(s/def ::path ::us/string)
(s/def ::user ::us/uuid)
(s/def ::profile-id ::us/uuid)
(s/def ::theme ::us/string)
;; --- Query: Profile (own)
@ -93,4 +94,4 @@
(defn strip-private-attrs
"Only selects a publicy visible profile attrs."
[profile]
(select-keys profile [:id :fullname :lang :email :created-at :photo]))
(select-keys profile [:id :fullname :lang :email :created-at :photo :theme]))

View file

@ -87,7 +87,9 @@
[^Row row]
(reduce (fn [acc index]
(let [cname (.getColumnName row index)]
(assoc acc cname (.getValue row ^int index))))
(if-some [value (.getValue row ^int index)]
(assoc acc cname value)
acc)))
{}
(range (.size row))))