@@ -10,11 +10,8 @@ use aide::{NoApi, OperationIo, transform::TransformOperation};
10
10
use axum:: { Json , extract:: State , response:: IntoResponse } ;
11
11
use hyper:: StatusCode ;
12
12
use mas_axum_utils:: record_error;
13
- use mas_matrix:: HomeserverConnection ;
14
- use mas_storage:: {
15
- BoxRng ,
16
- queue:: { ProvisionUserJob , QueueJobRepositoryExt as _} ,
17
- } ;
13
+ use mas_matrix:: { HomeserverConnection , ProvisionRequest } ;
14
+ use mas_storage:: BoxRng ;
18
15
use schemars:: JsonSchema ;
19
16
use serde:: Deserialize ;
20
17
use tracing:: warn;
@@ -168,9 +165,13 @@ pub async fn handler(
168
165
169
166
let user = repo. user ( ) . add ( & mut rng, & clock, params. username ) . await ?;
170
167
171
- repo. queue_job ( )
172
- . schedule_job ( & mut rng, & clock, ProvisionUserJob :: new ( & user) )
173
- . await ?;
168
+ homeserver
169
+ . provision_user ( & ProvisionRequest :: new (
170
+ homeserver. mxid ( & user. username ) ,
171
+ & user. sub ,
172
+ ) )
173
+ . await
174
+ . map_err ( RouteError :: Homeserver ) ?;
174
175
175
176
repo. save ( ) . await ?;
176
177
@@ -183,6 +184,7 @@ pub async fn handler(
183
184
#[ cfg( test) ]
184
185
mod tests {
185
186
use hyper:: { Request , StatusCode } ;
187
+ use mas_matrix:: HomeserverConnection ;
186
188
use mas_storage:: { RepositoryAccess , user:: UserRepository } ;
187
189
use sqlx:: PgPool ;
188
190
@@ -218,6 +220,11 @@ mod tests {
218
220
. unwrap ( ) ;
219
221
220
222
assert_eq ! ( user. username, "alice" ) ;
223
+
224
+ // Check that the user was created on the homeserver
225
+ let mxid = state. homeserver_connection . mxid ( "alice" ) ;
226
+ let result = state. homeserver_connection . query_user ( & mxid) . await ;
227
+ assert ! ( result. is_ok( ) ) ;
221
228
}
222
229
223
230
#[ sqlx:: test( migrator = "mas_storage_pg::MIGRATOR" ) ]
0 commit comments