|
76 | 76 | import Data.Proxy
|
77 | 77 | import qualified Data.Text as T
|
78 | 78 | import qualified Data.Text.Encoding as T
|
79 |
| -import Network.HTTP.Client (Manager) |
| 79 | +import Network.HTTP.Client (Manager, Request (..)) |
80 | 80 | import Servant.API
|
81 | 81 | import Servant.Client
|
82 | 82 | import Stripe.Api
|
@@ -108,20 +108,36 @@ api = Proxy
|
108 | 108 | stripeBaseUrl :: BaseUrl
|
109 | 109 | stripeBaseUrl = BaseUrl Https "api.stripe.com" 443 ""
|
110 | 110 |
|
| 111 | +newClientEnv :: Manager -> BaseUrl -> ClientEnv |
| 112 | +newClientEnv man url = |
| 113 | + env |
| 114 | + { makeClientRequest = mkReq |
| 115 | + } |
| 116 | + where |
| 117 | + env = mkClientEnv man url |
| 118 | + mkReq x y = do |
| 119 | + req <- makeClientRequest env x y |
| 120 | + pure |
| 121 | + req |
| 122 | + { requestHeaders = |
| 123 | + ("Stripe-Version", "2025-02-24.acacia") |
| 124 | + : requestHeaders req |
| 125 | + } |
| 126 | + |
111 | 127 | #define EP(N, ARG, R) \
|
112 | 128 | N##' :: BasicAuthData -> ARG -> ClientM R;\
|
113 | 129 | N :: StripeClient -> ARG -> IO (Either ClientError R);\
|
114 |
| - N sc a = runRequest (scMaxRetries sc) 0 $ runClientM (N##' (scBasicAuthData sc) a) (mkClientEnv (scManager sc) stripeBaseUrl) |
| 130 | + N sc a = runRequest (scMaxRetries sc) 0 $ runClientM (N##' (scBasicAuthData sc) a) (newClientEnv (scManager sc) stripeBaseUrl) |
115 | 131 |
|
116 | 132 | #define EP2(N, ARG, ARG2, R) \
|
117 | 133 | N##' :: BasicAuthData -> ARG -> ARG2 -> ClientM R;\
|
118 | 134 | N :: StripeClient -> ARG -> ARG2 -> IO (Either ClientError R);\
|
119 |
| - N sc a b = runRequest (scMaxRetries sc) 0 $ runClientM (N##' (scBasicAuthData sc) a b) (mkClientEnv (scManager sc) stripeBaseUrl) |
| 135 | + N sc a b = runRequest (scMaxRetries sc) 0 $ runClientM (N##' (scBasicAuthData sc) a b) (newClientEnv (scManager sc) stripeBaseUrl) |
120 | 136 |
|
121 | 137 | #define EP3(N, ARG, ARG2, ARG3, R) \
|
122 | 138 | N##' :: BasicAuthData -> ARG -> ARG2 -> ARG3 -> ClientM R;\
|
123 | 139 | N :: StripeClient -> ARG -> ARG2 -> ARG3 -> IO (Either ClientError R);\
|
124 |
| - N sc a b c = runRequest (scMaxRetries sc) 0 $ runClientM (N##' (scBasicAuthData sc) a b c) (mkClientEnv (scManager sc) stripeBaseUrl) |
| 140 | + N sc a b c = runRequest (scMaxRetries sc) 0 $ runClientM (N##' (scBasicAuthData sc) a b c) (newClientEnv (scManager sc) stripeBaseUrl) |
125 | 141 |
|
126 | 142 | EP (createCustomer, CustomerCreate, Customer)
|
127 | 143 | EP (retrieveCustomer, CustomerId, Customer)
|
|
0 commit comments