vendors can be updated through datomic.

This commit is contained in:
Bryce Covert
2018-11-09 13:30:27 -08:00
parent de8563a60b
commit 8ea4ea0c73
12 changed files with 141 additions and 276 deletions

View File

@@ -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 )))))