specing.
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
(ns auto-ap.events.admin.vendors
|
||||
(:require [re-frame.core :as re-frame]
|
||||
[clojure.spec.alpha :as s]
|
||||
[auto-ap.db :as db]
|
||||
[auto-ap.routes :as routes]
|
||||
[auto-ap.effects :as effects]
|
||||
[auto-ap.entities.vendors :as entity]
|
||||
|
||||
[bidi.bidi :as bidi]))
|
||||
|
||||
(re-frame/reg-event-db
|
||||
@@ -21,21 +24,21 @@
|
||||
::save
|
||||
(fn [{:keys [db]} _]
|
||||
(let [edited-vendor (get-in db [:admin :vendor])
|
||||
fx {:db (assoc-in db [:admin :vendor :saving?] true)}
|
||||
all-fields [:name :email :data :invoice-reminder-schedule :primary-contact :primary-email :primary-phone :secondary-contact :secondary-email :secondary-phone :code :address1 :address2 :city :state :zip]]
|
||||
(if (:id edited-vendor)
|
||||
(assoc fx :http {:method :put
|
||||
:token (:user db)
|
||||
:body (pr-str (select-keys edited-vendor all-fields))
|
||||
:headers {"Content-Type" "application/edn"}
|
||||
:uri (str "/api/vendors/" (:id edited-vendor))
|
||||
:on-success [::save-complete]})
|
||||
(assoc fx :http {:method :post
|
||||
:token (:user db)
|
||||
:body (pr-str (select-keys edited-vendor all-fields))
|
||||
:headers {"Content-Type" "application/edn"}
|
||||
:uri (str "/api/vendors")
|
||||
:on-success [::save-complete]})))))
|
||||
fx {:db (assoc-in db [:admin :vendor :saving?] true)}]
|
||||
(when (s/valid? ::entity/vendor edited-vendor)
|
||||
(if (::entity/id edited-vendor)
|
||||
(assoc fx :http {:method :put
|
||||
:token (:user db)
|
||||
:body (pr-str edited-vendor)
|
||||
:headers {"Content-Type" "application/edn"}
|
||||
:uri (str "/api/vendors/" (::entity/id edited-vendor))
|
||||
:on-success [::save-complete]})
|
||||
(assoc fx :http {:method :post
|
||||
:token (:user db)
|
||||
:body (pr-str edited-vendor)
|
||||
:headers {"Content-Type" "application/edn"}
|
||||
:uri (str "/api/vendors")
|
||||
:on-success [::save-complete]}))))))
|
||||
|
||||
(re-frame/reg-event-db
|
||||
::save-complete
|
||||
@@ -43,7 +46,7 @@
|
||||
(-> db
|
||||
|
||||
(assoc-in [:admin :vendor] nil)
|
||||
(assoc-in [:vendors (:id vendor)] vendor))))
|
||||
(assoc-in [:vendors (::entity/id vendor)] vendor))))
|
||||
|
||||
(re-frame/reg-event-db
|
||||
::change
|
||||
@@ -64,6 +67,6 @@
|
||||
(fn [db [_ vendors]]
|
||||
|
||||
(assoc db :vendors (reduce (fn [vendors vendor]
|
||||
(assoc vendors (:id vendor) vendor))
|
||||
(assoc vendors (::entity/id vendor) vendor))
|
||||
{}
|
||||
vendors))))
|
||||
|
||||
Reference in New Issue
Block a user