saving clients pretty much works.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user