users are not activated, looks like you can edit existing ones

This commit is contained in:
Bryce Covert
2018-05-21 17:48:59 -07:00
parent d020a4d254
commit 3fee89f840
12 changed files with 282 additions and 35 deletions

View File

@@ -1,23 +1,44 @@
(ns auto-ap.db.users
(:require [auto-ap.db.utils :refer [get-conn]]
(:require [auto-ap.db.utils :refer [get-conn query db->clj clj->db]]
[clojure.edn :as edn]
[clojure.java.jdbc :as j]))
[clojure.java.jdbc :as j]
[honeysql.core :as sql]
[honeysql.helpers :as helpers]))
(defn data->fields [x]
(-> x
(merge (:data x))
(dissoc :data)))
(defn fields->data [x]
(-> x
(assoc-in [:data :role] (:role x))
(assoc-in [:data :name] (:name x))
(assoc-in [:data :companies] (:companies x))
(dissoc :role)
(dissoc :name)
(dissoc :companies)))
(def base-query (sql/build :select :*
:from :users))
(defn get-all []
(map data->fields (query base-query)))
(defn find-or-insert! [row]
(let [user (first (j/find-by-keys (get-conn)
:users
{:provider_id (:provider_id row)
:provider (:provider row)}))
]
(let [user (-> base-query
(helpers/merge-where [:and [:= :provider-id (:provider-id row)]
[:= :provider (:provider row)]])
query
first
data->fields)]
(if user
(merge user (edn/read-string (:data user "{}")))
(do
(j/insert! (get-conn)
:users
{:provider_id (:provider_id row)
:provider (:provider row)
:data "{}"})
{:provider_id (:provider_id row)
:provider (:provider row)
:data "{}"})
)))
user
(-> (j/insert! (get-conn)
:users
(-> row
fields->data
clj->db))
first
db->clj
data->fields))))