Made it so customers can create vendors.

This commit is contained in:
BC
2018-06-21 23:27:35 -07:00
parent fc411909aa
commit e4e2525ce9
6 changed files with 243 additions and 26 deletions

View File

@@ -53,9 +53,9 @@
(fn [{:keys [db]} [_ token user]]
{:graphql {:token token
:query-obj {:venia/queries [[:company
[:id :name [:bank-accounts [:id :number :check-number :name]]]]
[:vendor
[:id :name :default-expense-account]]]}
[:id :name [:bank-accounts [:id :number :check-number :name]]]]
[:vendor
[:id :name :default-expense-account]]]}
:on-success [::received-initial]}
:db (assoc db :user (assoc user :token token))}))
@@ -184,3 +184,38 @@
::change-form-state
(fn [db [_ target value]]
(assoc-in db target value)))
(re-frame/reg-event-db
::change-nested-form-state
(fn [db [_ form more value]]
(update-in db form
(fn [x]
(assoc-in x more value)))))
(re-frame/reg-event-fx
::save-vendor
(fn [{:keys [db]} _]
(let [edited-vendor (get-in db [:user-editing-vendor])]
(if (:id edited-vendor)
{: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]}}
{: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]}}))))
(re-frame/reg-event-fx
::save-complete
(fn [{:keys [db]} [_ vendor]]
{:dispatch [::modal-completed :auto-ap.views.main/user-editing-vendor ]
:db (-> db
(dissoc :user-editing-vendor)
(assoc-in [:vendors (:id vendor)] vendor))}))