@@ -3,35 +3,38 @@ use std::collections::HashMap;
3
3
use async_trait:: async_trait;
4
4
use mockall:: automock;
5
5
use serde_json:: Value ;
6
-
7
6
use crate :: confidence_value:: ConfidenceValue ;
8
7
use crate :: models:: APIConfig ;
9
- use crate :: models:: APIURL ;
10
8
use crate :: models:: NetworkResolvedFlags ;
11
- use crate :: models:: ResolvedFlags ;
12
9
use crate :: models:: ResolveError ;
13
10
use crate :: models:: ResolveRequest ;
11
+ use crate :: models:: ResolvedFlags ;
12
+ use crate :: models:: APIURL ;
14
13
use crate :: models:: SDK ;
15
14
use crate :: { get_sdk_version, SDK_ID } ;
15
+ use crate :: conversion_trait:: ToSerdeValueConverter ;
16
16
17
17
#[ derive( Clone , Default ) ]
18
18
pub struct ConfidenceResolver ;
19
19
20
20
impl ConfidenceResolver {
21
+
21
22
async fn make_request (
22
23
& self ,
23
24
config : & APIConfig ,
24
25
flags : Vec < String > ,
25
26
_evaluation_context : & HashMap < String , ConfidenceValue > ,
26
27
) -> Result < NetworkResolvedFlags , ResolveError > {
27
- let mut context = HashMap :: new ( ) ;
28
- context. insert ( "targeting_key" . to_string ( ) , Value :: String ( "sample" . to_string ( ) ) ) ;
29
-
30
28
let flags: Vec < String > = flags. into_iter ( ) . map ( |flag| {
31
29
let flag_name: Vec < & str > = flag. split ( "." ) . collect ( ) ;
32
30
format ! ( "flags/{}" , flag_name. first( ) . unwrap( ) )
33
31
} ) . collect ( ) ;
34
32
33
+ let context: HashMap < String , Value > = _evaluation_context
34
+ . iter ( )
35
+ . map ( |( key, value) | ( key. clone ( ) , value. clone ( ) . convert ( ) ) )
36
+ . collect ( ) ;
37
+
35
38
let sdk = SDK :: builder ( ) . id ( SDK_ID ) . version ( get_sdk_version ( ) ) . build ( ) ;
36
39
37
40
let resolve_request = & ResolveRequest :: builder ( )
@@ -93,4 +96,4 @@ impl NetworkFlagResolver for ConfidenceResolver {
93
96
let network_response = self . make_request ( config, flags, evaluation_context) . await ?;
94
97
Ok ( network_response. into ( ) )
95
98
}
96
- }
99
+ }
0 commit comments