Fixes issues with limited pagination on payouts

This commit is contained in:
Bryce
2023-08-07 12:01:07 -07:00
parent ed66805e8c
commit d488acc7d1

View File

@@ -414,6 +414,47 @@
:body :body
:payment)) :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 (defn payouts
([client location] (payouts client location (time/plus (time/now) (time/days -7)) (time/now))) ([client location] (payouts client location (time/plus (time/now) (time/days -7)) (time/now)))
([client location start end] ([client location start end]
@@ -437,16 +478,9 @@
(mu/with-context lc (mu/with-context lc
(log/info ::looking-up-payout (log/info ::looking-up-payout
:payout-id (:id payout)) :payout-id (:id payout))
(de/chain (de/chain (get-payout-entry-list client location (:id payout))
(manifold-api-call (fn [payout-entries]
{:url (str "https://connect.squareup.com/v2/payouts/" (:id payout) "/payout-entries") (assoc payout :payout_entries payout-entries ))))))
:method :get
:headers (client-base-headers client "2023-04-19")
:as :json})
:body
:payout_entries
(fn [b]
(assoc payout :payout_entries b))))))
(s/buffer 10) (s/buffer 10)
(s/realize-each) (s/realize-each)
(s/reduce conj [])) (s/reduce conj []))