a lot of prep for editing customers
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user