saving clients pretty much works.

This commit is contained in:
Bryce Covert
2019-01-21 11:30:16 -08:00
parent e39dda9aac
commit 9385624309
3 changed files with 31 additions and 9 deletions

View File

@@ -259,6 +259,7 @@
:check_number {:type 'Int}
:name {:type 'String}
:bank_code {:type 'String}
:routing {:type 'String}
:bank_name {:type 'String}
:yodlee_account_id {:type 'Int}}}
:edit_user

View File

@@ -8,7 +8,7 @@
":admin" :user-role/admin
":user" :user-role/user})
(defn edit-client [context {:keys [edit_client] :as args} value]
(defn edit-client [context {:keys [edit_client new_bank_accounts] :as args} value]
(assert-admin (:id context))
(println (:address edit_client))
(let [client (d-clients/get-by-id (:id edit_client))
@@ -16,6 +16,7 @@
#_#_clients-to-remove (->> (:user/clients user)
(map :db/id)
(filter #(not (new-clients %)) ))]
(println edit_client)
@(d/transact (d/connect uri)
@@ -23,15 +24,29 @@
(doto (-> [(remove-nils {:db/id (:db/id client)
:client/name (:name edit_client)
:client/email (:email edit_client)
:client/address (remove-nils
{
:client/locations (filter identity (:locations edit_client))
:client/address (remove-nils {
:address/street1 (:street1 (:address edit_client))
:address/street2 (:street2 (:address edit_client))
:address/city (:city (:address edit_client))
:address/state (:state (:address edit_client))
:address/zip (:zip (:address edit_client))
})
:address/zip (:zip (:address edit_client))})
:client/bank-accounts (map #(remove-nils
{:db/id (:id %)
:bank-account/bank-name (:bank_name %)
:bank-account/bank-code (:bank_code %)
:bank-account/routing (:routing %)
:bank-account/name (:name %)
:bank-account/number (:number %)
:bank-account/check-number (:check_number %)
:bank-account/yodlee-account-id (:yodlee_account_id %)
:bank-account/type :bank-account-type/check
}
) (:bank_accounts edit_client))
})]
#_(into (map (fn [c] [:db/retract (:db/id user) :user/clients c]) clients-to-remove)))
clojure.pprint/pprint))

View File

@@ -30,8 +30,13 @@
:query-obj {:venia/operation {:operation/type :mutation
:operation/name "EditClient"}
:venia/queries [{:query/data [:edit-client
{:edit-client edited-client}
[:id :name]
{:edit-client
;; TODO - hard code fields we want
(-> edited-client
(update :bank-accounts #(into % (map (fn [ba] (dissoc ba :is-new?)) (:new-bank-accounts edited-client))))
(dissoc :new-bank-accounts))
}
[:id :name [:address [:street1 :street2 :city :state :zip]] [:bank-accounts [:id :number :check-number :name]]]
]}]}
:on-success [::save-complete]
:on-error [::save-error]}})))
@@ -39,11 +44,12 @@
(re-frame/reg-event-fx
::save-complete
(fn [{:keys [db]} [_ client]]
(println client)
{:dispatch [::events/modal-completed :auto-ap.views.pages.admin.clients/edit]
:db (-> db
(assoc-in [:admin :client] nil)
(assoc-in [:clients (:id client)] client))}))
(assoc-in [:clients (:id (:edit-client client))] (:edit-client client)))}))
(re-frame/reg-event-db
::save-error