@@ -23,10 +23,10 @@ module Network.Matrix.Client
23
23
LoginResponse (.. ),
24
24
getTokenFromEnv ,
25
25
createSession ,
26
- createWithSession ,
27
- createWithSessionIO ,
26
+ createSessionWithManager ,
28
27
login ,
29
28
loginToken ,
29
+ loginTokenWithManager ,
30
30
logout ,
31
31
32
32
-- * API
@@ -214,8 +214,13 @@ login = fmap (fmap fst) . loginToken
214
214
-- | 'loginToken' allows you to generate a session token and recover the Matrix auth token.
215
215
loginToken :: LoginCredentials -> IO (Either MatrixError (ClientSession , MatrixToken ))
216
216
loginToken cred = do
217
- req <- mkLoginRequest cred
218
217
manager <- mkManager
218
+ loginTokenWithManager manager cred
219
+
220
+ -- | 'loginTokenWithManager' allows you to generate a session token with a custom http manager and recover the Matrix auth token.
221
+ loginTokenWithManager :: HTTP. Manager -> LoginCredentials -> IO (Either MatrixError (ClientSession , MatrixToken ))
222
+ loginTokenWithManager manager cred = do
223
+ req <- mkLoginRequest cred
219
224
resp <- doRequest' manager req
220
225
pure $ case resp of
221
226
Left e -> Left e
@@ -242,28 +247,16 @@ createSession ::
242
247
IO ClientSession
243
248
createSession baseUrl' token' = ClientSession baseUrl' token' <$> mkManager
244
249
245
- createWithSession ::
246
- MonadIO m =>
247
- -- | The matrix client-server base url, e.g. "https://matrix.org"
248
- T. Text ->
249
- -- | The user token
250
- MatrixToken ->
251
- -- | The matrix action to perform
252
- MatrixM m a ->
253
- m (Either MatrixError a )
254
- createWithSession baseUrl' token' action = do
255
- session <- liftIO $ createSession baseUrl' token'
256
- runMatrixM session action
257
-
258
- createWithSessionIO ::
250
+ -- | 'createSession' creates the session record.
251
+ createSessionWithManager ::
259
252
-- | The matrix client-server base url, e.g. "https://matrix.org"
260
253
T. Text ->
261
254
-- | The user token
262
255
MatrixToken ->
263
- -- | The matrix action to perform
264
- MatrixIO a ->
265
- IO ( Either MatrixError a )
266
- createWithSessionIO = createWithSession
256
+ -- | A 'http-client' Manager
257
+ HTTP. Manager ->
258
+ ClientSession
259
+ createSessionWithManager = ClientSession
267
260
268
261
mkRequest :: MonadIO m => Bool -> T. Text -> MatrixM m HTTP. Request
269
262
mkRequest auth path = do
0 commit comments