diff --git a/src/clj/auto_ap/square/core3.clj b/src/clj/auto_ap/square/core3.clj index b033dbd8..d18d525c 100644 --- a/src/clj/auto_ap/square/core3.clj +++ b/src/clj/auto_ap/square/core3.clj @@ -414,6 +414,47 @@ :body :payment)) + +(defn continue-payout-entry-list [c l poi cursor] + (capture-context->lc lc + (de/chain + (manifold-api-call + {:url (str "https://connect.squareup.com/v2/payouts/" poi "/payout-entries" "?cursor=" cursor ) + :method :get + :headers (client-base-headers c "2023-04-19") + :as :json}) + :body + (fn [result] + (mu/with-context lc + (log/info ::payout-list-found + :count (count (:payout_entries result))) + (if (not-empty (:cursor result)) + (de/chain (continue-payout-entry-list c l poi (:cursor result)) + (fn [continued-results] + (mu/with-context lc + (concat (:payout_entries result) continued-results)))) + (:payout_entries result))))))) + +(defn get-payout-entry-list [c l poi] + (capture-context->lc lc + (de/chain + (manifold-api-call + {:url (str "https://connect.squareup.com/v2/payouts/" poi "/payout-entries") + :method :get + :headers (client-base-headers c "2023-04-19") + :as :json}) + :body + (fn [result] + (mu/with-context lc + (log/info ::payout-list-found + :count (count (:payout_entries result))) + (if (not-empty (:cursor result)) + (de/chain (continue-payout-entry-list c l poi (:cursor result)) + (fn [continued-results] + (mu/with-context lc + (concat (:payout_entries result) continued-results)))) + (:payout_entries result))))))) + (defn payouts ([client location] (payouts client location (time/plus (time/now) (time/days -7)) (time/now))) ([client location start end] @@ -437,16 +478,9 @@ (mu/with-context lc (log/info ::looking-up-payout :payout-id (:id payout)) - (de/chain - (manifold-api-call - {:url (str "https://connect.squareup.com/v2/payouts/" (:id payout) "/payout-entries") - :method :get - :headers (client-base-headers client "2023-04-19") - :as :json}) - :body - :payout_entries - (fn [b] - (assoc payout :payout_entries b)))))) + (de/chain (get-payout-entry-list client location (:id payout)) + (fn [payout-entries] + (assoc payout :payout_entries payout-entries )))))) (s/buffer 10) (s/realize-each) (s/reduce conj []))