MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / update_http_integration

Method update_http_integration

chirpstack/src/api/application.rs:357–401  ·  view source on GitHub ↗
(
        &self,
        request: Request<api::UpdateHttpIntegrationRequest>,
    )

Source from the content-addressed store, hash-verified

355 }
356
357 async fn update_http_integration(
358 &self,
359 request: Request<api::UpdateHttpIntegrationRequest>,
360 ) -> Result<Response<()>, Status> {
361 let req_int = match &request.get_ref().integration {
362 Some(v) => v,
363 None => {
364 return Err(Status::invalid_argument("integration is missing"));
365 }
366 };
367 let app_id = Uuid::from_str(&req_int.application_id).map_err(|e| e.status())?;
368
369 self.validator
370 .validate(
371 request.extensions(),
372 validator::ValidateApplicationAccess::new(validator::Flag::Update, app_id),
373 )
374 .await?;
375
376 let _ = application::update_integration(application::Integration {
377 application_id: app_id.into(),
378 kind: application::IntegrationKind::Http,
379 configuration: application::IntegrationConfiguration::Http(
380 application::HttpConfiguration {
381 headers: req_int.headers.clone(),
382 json: match req_int.encoding() {
383 api::Encoding::Protobuf => false,
384 api::Encoding::Json => true,
385 },
386 event_endpoint_url: req_int.event_endpoint_url.clone(),
387 },
388 ),
389 ..Default::default()
390 })
391 .await
392 .map_err(|e| e.status())?;
393
394 let mut resp = Response::new(());
395 resp.metadata_mut().insert(
396 "x-log-application_id",
397 req_int.application_id.parse().unwrap(),
398 );
399
400 Ok(resp)
401 }
402
403 async fn delete_http_integration(
404 &self,

Callers 1

test_http_integrationFunction · 0.80

Calls 6

update_integrationFunction · 0.85
statusMethod · 0.80
insertMethod · 0.80
unwrapMethod · 0.80
validateMethod · 0.45
intoMethod · 0.45

Tested by 1

test_http_integrationFunction · 0.64