vendors can be updated through datomic.
This commit is contained in:
@@ -6,9 +6,17 @@
|
||||
[auto-ap.effects :as effects]
|
||||
[auto-ap.entities.vendors :as entity]
|
||||
[auto-ap.events :as events]
|
||||
[auto-ap.utils :refer [by]]
|
||||
|
||||
[bidi.bidi :as bidi]))
|
||||
|
||||
(def vendor-query
|
||||
[:id :name :default-expense-account
|
||||
[:primary-contact [:name :phone :email :id]]
|
||||
[:secondary-contact [:id :name :phone :email]]
|
||||
:print-as :invoice-reminder-schedule :code
|
||||
[:address [:street1 :street2 :city :state :zip]]])
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::edit
|
||||
(fn [{:keys [db]} [_ vendor-id]]
|
||||
@@ -16,11 +24,12 @@
|
||||
(get (:vendors db) vendor-id))
|
||||
:dispatch [::events/modal-status :auto-ap.views.pages.admin.vendors/admin-vendor {:visible? true}]}))
|
||||
|
||||
(re-frame/reg-event-db
|
||||
(re-frame/reg-event-fx
|
||||
::new
|
||||
(fn [db _]
|
||||
(assoc-in db [:admin :vendor]
|
||||
{})))
|
||||
(fn [{:keys [db]} _]
|
||||
{:db (assoc-in db [:admin :vendor]
|
||||
{})
|
||||
:dispatch [::events/modal-status :auto-ap.views.pages.admin.vendors/admin-vendor {:visible? true}]}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::save
|
||||
@@ -28,21 +37,16 @@
|
||||
(let [edited-vendor (get-in db [:admin :vendor])
|
||||
fx {:db (assoc-in db [:admin :vendor :saving?] true)}]
|
||||
(when (s/valid? ::entity/vendor edited-vendor)
|
||||
(if (: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/" (:id edited-vendor))
|
||||
:on-success [::save-complete]
|
||||
:on-error [::save-error]})
|
||||
(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]
|
||||
:on-error [::save-error]}))))))
|
||||
(assoc fx :graphql
|
||||
{:token (-> db :user)
|
||||
:query-obj {:venia/operation {:operation/type :mutation
|
||||
:operation/name "UpsertVendor"}
|
||||
|
||||
:venia/queries [{:query/data [:upsert-vendor
|
||||
{:vendor edited-vendor}
|
||||
vendor-query]}]}
|
||||
:on-success [::save-complete]
|
||||
:on-error [::save-error]})))))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::remind
|
||||
@@ -69,7 +73,7 @@
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::save-complete
|
||||
(fn [{:keys [db]} [_ vendor]]
|
||||
(fn [{:keys [db]} [_ {vendor :upsert-vendor} ]]
|
||||
{:dispatch [::events/modal-completed :auto-ap.views.pages.admin.vendors/admin-vendor ]
|
||||
:db (-> db
|
||||
|
||||
@@ -107,15 +111,11 @@
|
||||
(re-frame/reg-event-fx
|
||||
::mounted
|
||||
(fn [{:keys [db]} _]
|
||||
{:http {:method :get
|
||||
:token (:user db)
|
||||
:uri "/api/vendors"
|
||||
:on-success [::received-vendors]}}))
|
||||
{:graphql {:token (:user db)
|
||||
:query-obj {:venia/queries [[:vendor vendor-query]]}
|
||||
:on-success [::received-vendors]}}))
|
||||
|
||||
(re-frame/reg-event-db
|
||||
::received-vendors
|
||||
(fn [db [_ vendors]]
|
||||
(assoc db :vendors (reduce (fn [vendors vendor]
|
||||
(assoc vendors (:id vendor) vendor))
|
||||
{}
|
||||
vendors))))
|
||||
(assoc db :vendors (by :id (:vendor vendors )))))
|
||||
|
||||
Reference in New Issue
Block a user