@@ -16,7 +16,7 @@ use itertools::Itertools;
1616use serde_json:: { json, Map , Value } ;
1717#[ cfg( feature = "high-performance-mode" ) ]
1818use service_utils:: service:: types:: { AppHeader , AppState } ;
19- use service_utils:: service:: types:: { DbConnection , SchemaName , WorkspaceContext } ;
19+ use service_utils:: service:: types:: { DbConnection , WorkspaceContext } ;
2020use superposition_derives:: authorized;
2121#[ cfg( feature = "high-performance-mode" ) ]
2222use superposition_macros:: response_error;
@@ -278,7 +278,7 @@ async fn reduce_config_key(
278278 dimension_schema_map : & HashMap < String , DimensionInfo > ,
279279 default_config : Map < String , Value > ,
280280 is_approve : bool ,
281- schema_name : & SchemaName ,
281+ workspace_context : & WorkspaceContext ,
282282) -> superposition:: Result < Config > {
283283 let default_config_val =
284284 default_config
@@ -339,12 +339,22 @@ async fn reduce_config_key(
339339 ) => {
340340 if * to_be_deleted {
341341 if is_approve {
342- let _ = context:: delete ( cid. clone ( ) , user, conn, schema_name) ;
342+ let _ = context:: delete (
343+ cid. clone ( ) ,
344+ user,
345+ conn,
346+ & workspace_context. schema_name ,
347+ ) ;
343348 }
344349 og_contexts. retain ( |x| x. id != * cid) ;
345350 } else {
346351 if is_approve {
347- let _ = context:: delete ( cid. clone ( ) , user, conn, schema_name) ;
352+ let _ = context:: delete (
353+ cid. clone ( ) ,
354+ user,
355+ conn,
356+ & workspace_context. schema_name ,
357+ ) ;
348358 if let Ok ( put_req) = construct_new_payload ( request_payload) {
349359 let description = match put_req. description . clone ( ) {
350360 Some ( val) => val,
@@ -353,16 +363,17 @@ async fn reduce_config_key(
353363 put_req. context . clone ( ) . into_inner ( ) . into ( ) ,
354364 ) ,
355365 conn,
356- schema_name,
366+ & workspace_context . schema_name ,
357367 ) ?,
358368 } ;
369+
359370 let _ = context:: upsert (
360371 put_req,
361372 description,
362373 conn,
363374 false ,
364375 user,
365- schema_name ,
376+ workspace_context ,
366377 false ,
367378 ) ;
368379 }
@@ -417,10 +428,10 @@ async fn reduce_config_key(
417428#[ authorized]
418429#[ put( "/reduce" ) ]
419430async fn reduce_handler (
431+ workspace_context : WorkspaceContext ,
420432 req : HttpRequest ,
421433 user : User ,
422434 db_conn : DbConnection ,
423- schema_name : SchemaName ,
424435) -> superposition:: Result < HttpResponse > {
425436 let DbConnection ( mut conn) = db_conn;
426437 let is_approve = req
@@ -429,8 +440,9 @@ async fn reduce_handler(
429440 . and_then ( |value| value. to_str ( ) . ok ( ) . and_then ( |s| s. parse :: < bool > ( ) . ok ( ) ) )
430441 . unwrap_or ( false ) ;
431442
432- let dimensions_info_map = fetch_dimensions_info_map ( & mut conn, & schema_name) ?;
433- let mut config = generate_cac ( & mut conn, & schema_name) ?;
443+ let dimensions_info_map =
444+ fetch_dimensions_info_map ( & mut conn, & workspace_context. schema_name ) ?;
445+ let mut config = generate_cac ( & mut conn, & workspace_context. schema_name ) ?;
434446 let default_config = ( config. default_configs ) . clone ( ) ;
435447 for ( key, _) in default_config {
436448 let contexts = config. contexts ;
@@ -445,11 +457,11 @@ async fn reduce_handler(
445457 & dimensions_info_map,
446458 default_config. clone ( ) ,
447459 is_approve,
448- & schema_name ,
460+ & workspace_context ,
449461 )
450462 . await ?;
451463 if is_approve {
452- config = generate_cac ( & mut conn, & schema_name) ?;
464+ config = generate_cac ( & mut conn, & workspace_context . schema_name ) ?;
453465 }
454466 }
455467
@@ -459,10 +471,7 @@ async fn reduce_handler(
459471#[ cfg( feature = "high-performance-mode" ) ]
460472#[ authorized]
461473#[ get( "/fast" ) ]
462- async fn get_fast_handler (
463- schema_name : SchemaName ,
464- state : Data < AppState > ,
465- ) -> superposition:: Result < HttpResponse > {
474+ async fn get_fast_handler ( state : Data < AppState > ) -> superposition:: Result < HttpResponse > {
466475 use fred:: interfaces:: MetricsInterface ;
467476
468477 log:: debug!( "Started redis fetch" ) ;
@@ -573,8 +582,7 @@ async fn get_handler(
573582 }
574583
575584 let query_filters = query_filters. into_inner ( ) ;
576- let mut version =
577- get_config_version ( & query_filters. version , & workspace_context, & mut conn) ?;
585+ let mut version = get_config_version ( & query_filters. version , & workspace_context) ?;
578586
579587 let mut config = generate_config_from_version (
580588 & mut version,
@@ -629,7 +637,7 @@ async fn resolve_handler(
629637 }
630638
631639 let mut config_version =
632- get_config_version ( & query_filters. version , & workspace_context, & mut conn ) ?;
640+ get_config_version ( & query_filters. version , & workspace_context) ?;
633641 let mut config = generate_config_from_version (
634642 & mut config_version,
635643 & mut conn,
@@ -656,28 +664,28 @@ async fn resolve_handler(
656664#[ authorized]
657665#[ get( "/versions" ) ]
658666async fn list_version_handler (
667+ workspace_context : WorkspaceContext ,
659668 db_conn : DbConnection ,
660669 filters : Query < PaginationParams > ,
661- schema_name : SchemaName ,
662670) -> superposition:: Result < Json < PaginatedResponse < ConfigVersionListItem > > > {
663671 let DbConnection ( mut conn) = db_conn;
664672
665673 if let Some ( true ) = filters. all {
666674 let config_versions = config_versions:: config_versions
667- . schema_name ( & schema_name)
675+ . schema_name ( & workspace_context . schema_name )
668676 . select ( ConfigVersionListItem :: as_select ( ) )
669677 . get_results ( & mut conn) ?;
670678 return Ok ( Json ( PaginatedResponse :: all ( config_versions) ) ) ;
671679 }
672680
673681 let n_version: i64 = config_versions:: config_versions
674682 . count ( )
675- . schema_name ( & schema_name)
683+ . schema_name ( & workspace_context . schema_name )
676684 . get_result ( & mut conn) ?;
677685
678686 let limit = filters. count . unwrap_or ( 10 ) ;
679687 let mut builder = config_versions:: config_versions
680- . schema_name ( & schema_name)
688+ . schema_name ( & workspace_context . schema_name )
681689 . into_boxed ( )
682690 . order ( config_versions:: created_at. desc ( ) )
683691 . limit ( limit) ;
@@ -699,14 +707,14 @@ async fn list_version_handler(
699707#[ authorized]
700708#[ get( "/version/{version}" ) ]
701709async fn get_version_handler (
710+ workspace_context : WorkspaceContext ,
702711 db_conn : DbConnection ,
703712 version : Path < i64 > ,
704- schema_name : SchemaName ,
705713) -> superposition:: Result < Json < ConfigVersion > > {
706714 let DbConnection ( mut conn) = db_conn;
707715
708716 let config_version = config_versions:: config_versions
709- . schema_name ( & schema_name)
717+ . schema_name ( & workspace_context . schema_name )
710718 . find ( version. into_inner ( ) )
711719 . get_result :: < ConfigVersion > ( & mut conn) ?;
712720
0 commit comments