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

Method update_my_devices_integration

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

Source from the content-addressed store, hash-verified

820 }
821
822 async fn update_my_devices_integration(
823 &self,
824 request: Request<api::UpdateMyDevicesIntegrationRequest>,
825 ) -> Result<Response<()>, Status> {
826 let req_int = match &request.get_ref().integration {
827 Some(v) => v,
828 None => {
829 return Err(Status::invalid_argument("integration is missing"));
830 }
831 };
832 let app_id = Uuid::from_str(&req_int.application_id).map_err(|e| e.status())?;
833
834 self.validator
835 .validate(
836 request.extensions(),
837 validator::ValidateApplicationAccess::new(validator::Flag::Update, app_id),
838 )
839 .await?;
840
841 let _ = application::update_integration(application::Integration {
842 application_id: app_id.into(),
843 kind: application::IntegrationKind::MyDevices,
844 configuration: application::IntegrationConfiguration::MyDevices(
845 application::MyDevicesConfiguration {
846 endpoint: req_int.endpoint.clone(),
847 },
848 ),
849 ..Default::default()
850 })
851 .await
852 .map_err(|e| e.status())?;
853
854 let mut resp = Response::new(());
855 resp.metadata_mut().insert(
856 "x-log-application_id",
857 req_int.application_id.parse().unwrap(),
858 );
859
860 Ok(resp)
861 }
862
863 async fn delete_my_devices_integration(
864 &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