MCPcopy Create free account
hub / github.com/ceramicnetwork/rust-ceramic / config_network_options

Method config_network_options

api-server/src/client/mod.rs:482–551  ·  view source on GitHub ↗
(
        &self,
        context: &C,
    )

Source from the content-addressed store, hash-verified

480 }
481
482 async fn config_network_options(
483 &self,
484 context: &C,
485 ) -> Result<ConfigNetworkOptionsResponse, ApiError> {
486 let mut client_service = self.client_service.clone();
487 let mut uri = format!("{}/ceramic/config/network", self.base_path);
488
489 // Query parameters
490 let query_string = {
491 let mut query_string = form_urlencoded::Serializer::new("".to_owned());
492 query_string.finish()
493 };
494 if !query_string.is_empty() {
495 uri += "?";
496 uri += &query_string;
497 }
498
499 let uri = match Uri::from_str(&uri) {
500 Ok(uri) => uri,
501 Err(err) => return Err(ApiError(format!("Unable to build URI: {}", err))),
502 };
503
504 let mut request = match Request::builder()
505 .method("OPTIONS")
506 .uri(uri)
507 .body(Body::empty())
508 {
509 Ok(req) => req,
510 Err(e) => return Err(ApiError(format!("Unable to create request: {}", e))),
511 };
512
513 let header = HeaderValue::from_str(Has::<XSpanIdString>::get(context).0.as_str());
514 request.headers_mut().insert(
515 HeaderName::from_static("x-span-id"),
516 match header {
517 Ok(h) => h,
518 Err(e) => {
519 return Err(ApiError(format!(
520 "Unable to create X-Span ID header value: {}",
521 e
522 )))
523 }
524 },
525 );
526
527 let response = client_service
528 .call((request, context.clone()))
529 .map_err(|e| ApiError(format!("No response received: {}", e)))
530 .await?;
531
532 match response.status().as_u16() {
533 200 => Ok(ConfigNetworkOptionsResponse::Cors),
534 code => {
535 let headers = response.headers().clone();
536 let body = response.into_body().take(100).into_raw().await;
537 Err(ApiError(format!(
538 "Unexpected response code {}:\n{:?}\n\n{}",
539 code,

Callers 1

runMethod · 0.45

Calls 9

newFunction · 0.85
as_strMethod · 0.80
statusMethod · 0.80
getFunction · 0.50
cloneMethod · 0.45
finishMethod · 0.45
is_emptyMethod · 0.45
insertMethod · 0.45
callMethod · 0.45

Tested by

no test coverage detected