Fixes issues with limited pagination on payouts
This commit is contained in:
@@ -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 []))
|
||||||
|
|||||||
Reference in New Issue
Block a user