@@ -64,14 +64,10 @@ pub async fn get_expert(
6464 expert_name : & str
6565) -> Result < Expert , String > {
6666 let client = Client :: new ( ) ;
67- let ( api_key, located_fgroup_id) = {
68- let gcx_read = gcx. read ( ) . await ;
69- ( gcx_read. cmdline . api_key . clone ( ) ,
70- gcx_read. active_group_id . clone ( ) . unwrap_or_default ( ) )
71- } ;
67+ let api_key = gcx. read ( ) . await . cmdline . api_key . clone ( ) ;
7268 let query = r#"
73- query GetExpert($located_fgroup_id : String!) {
74- experts_effective_list(located_fgroup_id : $located_fgroup_id ) {
69+ query GetExpert($id : String!) {
70+ expert_get(id : $id ) {
7571 owner_fuser_id
7672 owner_shared
7773 located_fgroup_id
@@ -89,8 +85,8 @@ pub async fn get_expert(
8985 . header ( "Content-Type" , "application/json" )
9086 . json ( & json ! ( {
9187 "query" : query,
92- "variables" : {
93- "located_fgroup_id " : located_fgroup_id
88+ "variables" : {
89+ "id " : expert_name
9490 }
9591 } ) )
9692 . send ( )
@@ -110,20 +106,10 @@ pub async fn get_expert(
110106 return Err ( format ! ( "GraphQL error: {}" , error_msg) ) ;
111107 }
112108 if let Some ( data) = response_json. get ( "data" ) {
113- if let Some ( expert_list) = data. get ( "experts_effective_list" ) {
114- if let Some ( experts) = expert_list. as_array ( ) {
115- if experts. len ( ) > 1 {
116- tracing:: warn!(
117- "multiple experts found for group ID {} with expert_name {}, this might cause inconsistent behavior" ,
118- located_fgroup_id, expert_name
119- )
120- }
121- for expert_value in experts {
122- let expert: Expert = serde_json:: from_value ( expert_value. clone ( ) )
123- . map_err ( |e| format ! ( "Failed to parse expert: {}" , e) ) ?;
124- return Ok ( expert) ;
125- }
126- }
109+ if let Some ( expert_value) = data. get ( "expert_get" ) {
110+ let expert: Expert = serde_json:: from_value ( expert_value. clone ( ) )
111+ . map_err ( |e| format ! ( "Failed to parse expert: {}" , e) ) ?;
112+ return Ok ( expert) ;
127113 }
128114 }
129115 Err ( format ! (
0 commit comments