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

Method create_my_devices_integration

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

Source from the content-addressed store, hash-verified

743 }
744
745 async fn create_my_devices_integration(
746 &self,
747 request: Request<api::CreateMyDevicesIntegrationRequest>,
748 ) -> Result<Response<()>, Status> {
749 let req_int = match &request.get_ref().integration {
750 Some(v) => v,
751 None => {
752 return Err(Status::invalid_argument("integration is missing"));
753 }
754 };
755 let app_id = Uuid::from_str(&req_int.application_id).map_err(|e| e.status())?;
756
757 self.validator
758 .validate(
759 request.extensions(),
760 validator::ValidateApplicationAccess::new(validator::Flag::Update, app_id),
761 )
762 .await?;
763
764 let _ = application::create_integration(application::Integration {
765 application_id: app_id.into(),
766 kind: application::IntegrationKind::MyDevices,
767 configuration: application::IntegrationConfiguration::MyDevices(
768 application::MyDevicesConfiguration {
769 endpoint: req_int.endpoint.clone(),
770 },
771 ),
772 ..Default::default()
773 })
774 .await
775 .map_err(|e| e.status())?;
776
777 let mut resp = Response::new(());
778 resp.metadata_mut().insert(
779 "x-log-application_id",
780 req_int.application_id.parse().unwrap(),
781 );
782
783 Ok(resp)
784 }
785
786 async fn get_my_devices_integration(
787 &self,

Callers 1

Calls 6

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

Tested by 1