a lot of prep for editing customers

This commit is contained in:
Bryce Covert
2018-04-05 09:09:56 -07:00
parent 1ed2b109c9
commit 23e1a7e20f
8 changed files with 110 additions and 40 deletions

View File

@@ -39,12 +39,44 @@
(re-frame/reg-event-db
::received-companies
(fn [db [_ companies]]
(assoc db :companies companies)))
(assoc db :companies (reduce (fn [companies company]
(assoc companies (:id company) company))
{}
companies))))
(re-frame/reg-event-db
::select-company
::edit-company
(fn [db [_ company-id]]
(assoc-in db [:admin-companies :editing]
(get (:companies db) company-id))))
(re-frame/reg-event-fx
::save-editing-company
(fn [{:keys [db]} _]
(let [edited-company (get-in db [:admin-companies :editing])]
{:db (assoc-in db [:admin-companies :editing :saving?] true)
:http {:method :put
:token (:user db)
:body (pr-str (select-keys edited-company [:name :email :data]))
:headers {"Content-Type" "application/edn"}
:uri (str "/api/companies/" (:id edited-company))
:on-success [::finish-saving-company]}})))
(re-frame/reg-event-db
::finish-saving-company
(fn [db [_ company]]
(assoc-in db [:admin-companies :selected] company)))
(-> db
(assoc-in [:admin-companies :editing] nil)
(assoc-in [:companies (:id company)] company))))
(re-frame/reg-event-db
::change-editing-company
(fn [db [_ path value]]
(assoc-in db (concat [:admin-companies :editing] path)
value)))
(re-frame/reg-event-db
::swap-company