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

Method update_things_board_integration

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

Source from the content-addressed store, hash-verified

677 }
678
679 async fn update_things_board_integration(
680 &self,
681 request: Request<api::UpdateThingsBoardIntegrationRequest>,
682 ) -> Result<Response<()>, Status> {
683 let req_int = match &request.get_ref().integration {
684 Some(v) => v,
685 None => {
686 return Err(Status::invalid_argument("integration is missing"));
687 }
688 };
689 let app_id = Uuid::from_str(&req_int.application_id).map_err(|e| e.status())?;
690
691 self.validator
692 .validate(
693 request.extensions(),
694 validator::ValidateApplicationAccess::new(validator::Flag::Update, app_id),
695 )
696 .await?;
697
698 let _ = application::update_integration(application::Integration {
699 application_id: app_id.into(),
700 kind: application::IntegrationKind::ThingsBoard,
701 configuration: application::IntegrationConfiguration::ThingsBoard(
702 application::ThingsBoardConfiguration {
703 server: req_int.server.clone(),
704 },
705 ),
706 ..Default::default()
707 })
708 .await
709 .map_err(|e| e.status())?;
710
711 let mut resp = Response::new(());
712 resp.metadata_mut().insert(
713 "x-log-application_id",
714 req_int.application_id.parse().unwrap(),
715 );
716
717 Ok(resp)
718 }
719
720 async fn delete_things_board_integration(
721 &self,

Callers 1

Calls 6

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

Tested by 1