@@ -15,7 +15,8 @@ use crate::FPServerError;
1515use feature_probe_event:: collector:: { post_events, EventHandler } ;
1616use feature_probe_server_sdk:: SdkAuthorization ;
1717#[ cfg( feature = "unstable" ) ]
18- use feature_probe_server_sdk:: { Segment , Toggle } ;
18+ use feature_probe_server_sdk:: Segment ;
19+ use feature_probe_server_sdk:: Toggle ;
1920pub use handler:: { FpHttpHandler , HttpHandler , LocalFileHttpHandlerForTest } ;
2021use serde:: Deserialize ;
2122use serde_json:: json;
@@ -35,14 +36,14 @@ where
3536 . route ( "/api/server-sdk/toggles" , get ( server_sdk_toggles :: < T > ) )
3637 . route ( "/api/events" , post ( post_events :: < T > ) . options ( client_cors) )
3738 . route ( "/internal/all_secrets" , get ( all_secrets :: < T > ) ) // not for public network
39+ . route ( "/internal/update_toggles" , post ( update_toggles :: < T > ) )
3840 . layer ( Extension ( handler) )
3941 . fallback ( handler_404. into_service ( ) ) ;
4042
4143 #[ cfg( feature = "unstable" ) ]
4244 let app = app
43- . route ( "/api/server/toggles" , post ( update_toggles :: < T > ) )
44- . route ( "/api/server/segments" , post ( update_segments :: < T > ) )
45- . route ( "/api/server/check_secrets" , post ( check_secrets :: < T > ) ) ;
45+ . route ( "/internal/server/segments" , post ( update_segments :: < T > ) )
46+ . route ( "/intelnal/server/check_secrets" , post ( check_secrets :: < T > ) ) ;
4647
4748 let addr = SocketAddr :: from ( ( [ 0 , 0 , 0 , 0 ] , port) ) ;
4849 axum:: Server :: bind ( & addr)
7677 handler. server_sdk_toggles ( sdk_key) . await
7778}
7879
79- #[ cfg( feature = "unstable" ) ]
8080async fn update_toggles < T > (
8181 params : Json < ToggleUpdateParams > ,
8282 Extension ( handler) : Extension < T > ,
@@ -131,11 +131,14 @@ pub struct ClientParams {
131131 user : String ,
132132}
133133
134- #[ cfg ( feature = "unstable" ) ]
134+ #[ allow ( unused ) ]
135135#[ derive( Debug , Deserialize ) ]
136136pub struct ToggleUpdateParams {
137137 sdk_key : String ,
138+ #[ serde( default ) ]
138139 toggles : HashMap < String , Toggle > ,
140+ #[ serde( default ) ]
141+ version : Option < String > ,
139142}
140143
141144#[ cfg( feature = "unstable" ) ]
@@ -190,6 +193,13 @@ mod tests {
190193 use serde_json:: Value ;
191194 use std:: { fs, path:: PathBuf , sync:: Arc , time:: Duration } ;
192195
196+ #[ test]
197+ fn deserialize_toggle_udpate_param ( ) {
198+ let toggle_update_param = r#"{"sdk_key": "key1"}"# ;
199+ let p: ToggleUpdateParams = serde_json:: from_str ( toggle_update_param) . unwrap ( ) ;
200+ assert_eq ! ( p. sdk_key, "key1" ) ;
201+ }
202+
193203 #[ tokio:: test]
194204 async fn test_fp_server_connect_fp_api ( ) {
195205 let server_sdk_key = "server-sdk-key1" . to_owned ( ) ;
0 commit comments