@@ -320,6 +320,70 @@ async fn run_http_server(socket: &str, port: u16) -> Result<()> {
320320 } ) ?;
321321 serde_json:: Value :: Null
322322 } ,
323+ "service.create" => {
324+ if let Some ( name) = params. as_ref ( ) . and_then ( |p| p. get ( "name" ) ) . and_then ( |v| v. as_str ( ) ) {
325+ if let Some ( content) = params. as_ref ( ) . and_then ( |p| p. get ( "content" ) ) . and_then ( |v| v. as_object ( ) ) {
326+ let result = client. create_service ( name, content. clone ( ) ) . await . map_err ( |e| {
327+ (
328+ StatusCode :: INTERNAL_SERVER_ERROR ,
329+ format ! ( "Failed to execute create_service: {}" , e) ,
330+ )
331+ } ) ?;
332+ serde_json:: to_value ( result) . map_err ( |e| {
333+ (
334+ StatusCode :: INTERNAL_SERVER_ERROR ,
335+ format ! ( "Failed to serialize result: {}" , e) ,
336+ )
337+ } ) ?
338+ } else {
339+ return Err ( (
340+ StatusCode :: BAD_REQUEST ,
341+ "Missing or invalid 'content' parameter" . to_string ( ) ,
342+ ) ) ;
343+ }
344+ } else {
345+ return Err ( (
346+ StatusCode :: BAD_REQUEST ,
347+ "Missing or invalid 'name' parameter" . to_string ( ) ,
348+ ) ) ;
349+ }
350+ } ,
351+ "service.delete" => {
352+ if let Some ( name) = params. as_ref ( ) . and_then ( |p| p. get ( "name" ) ) . and_then ( |v| v. as_str ( ) ) {
353+ let result = client. delete_service ( name) . await . map_err ( |e| {
354+ (
355+ StatusCode :: INTERNAL_SERVER_ERROR ,
356+ format ! ( "Failed to execute delete_service: {}" , e) ,
357+ )
358+ } ) ?;
359+ serde_json:: to_value ( result) . map_err ( |e| {
360+ (
361+ StatusCode :: INTERNAL_SERVER_ERROR ,
362+ format ! ( "Failed to serialize result: {}" , e) ,
363+ )
364+ } ) ?
365+ } else {
366+ return Err ( (
367+ StatusCode :: BAD_REQUEST ,
368+ "Missing or invalid 'name' parameter" . to_string ( ) ,
369+ ) ) ;
370+ }
371+ } ,
372+ "service.get" => {
373+ if let Some ( name) = params. as_ref ( ) . and_then ( |p| p. get ( "name" ) ) . and_then ( |v| v. as_str ( ) ) {
374+ client. get_service ( name) . await . map_err ( |e| {
375+ (
376+ StatusCode :: INTERNAL_SERVER_ERROR ,
377+ format ! ( "Failed to execute get_service: {}" , e) ,
378+ )
379+ } ) ?
380+ } else {
381+ return Err ( (
382+ StatusCode :: BAD_REQUEST ,
383+ "Missing or invalid 'name' parameter" . to_string ( ) ,
384+ ) ) ;
385+ }
386+ } ,
323387 // Add other methods as needed
324388 _ => {
325389 return Err ( (
0 commit comments