@@ -32,6 +32,7 @@ use mas_axum_utils::{
3232use mas_data_model:: { BrowserSession , Session , SiteConfig , User } ;
3333use mas_matrix:: HomeserverConnection ;
3434use mas_policy:: { InstantiateError , Policy , PolicyFactory } ;
35+ use mas_router:: UrlBuilder ;
3536use mas_storage:: { BoxClock , BoxRepository , BoxRng , Clock , RepositoryError , SystemClock } ;
3637use mas_storage_pg:: PgRepository ;
3738use opentelemetry_semantic_conventions:: trace:: { GRAPHQL_DOCUMENT , GRAPHQL_OPERATION_NAME } ;
@@ -70,6 +71,7 @@ struct GraphQLState {
7071 policy_factory : Arc < PolicyFactory > ,
7172 site_config : SiteConfig ,
7273 password_manager : PasswordManager ,
74+ url_builder : UrlBuilder ,
7375}
7476
7577#[ async_trait]
@@ -98,6 +100,10 @@ impl state::State for GraphQLState {
98100 self . homeserver_connection . as_ref ( )
99101 }
100102
103+ fn url_builder ( & self ) -> & UrlBuilder {
104+ & self . url_builder
105+ }
106+
101107 fn clock ( & self ) -> BoxClock {
102108 let clock = SystemClock :: default ( ) ;
103109 Box :: new ( clock)
@@ -119,13 +125,15 @@ pub fn schema(
119125 homeserver_connection : impl HomeserverConnection < Error = anyhow:: Error > + ' static ,
120126 site_config : SiteConfig ,
121127 password_manager : PasswordManager ,
128+ url_builder : UrlBuilder ,
122129) -> Schema {
123130 let state = GraphQLState {
124131 pool : pool. clone ( ) ,
125132 policy_factory : Arc :: clone ( policy_factory) ,
126133 homeserver_connection : Arc :: new ( homeserver_connection) ,
127134 site_config,
128135 password_manager,
136+ url_builder,
129137 } ;
130138 let state: BoxState = Box :: new ( state) ;
131139
0 commit comments