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

Method list_integrations

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

Source from the content-addressed store, hash-verified

215 }
216
217 async fn list_integrations(
218 &self,
219 request: Request<api::ListIntegrationsRequest>,
220 ) -> Result<Response<api::ListIntegrationsResponse>, Status> {
221 let req = request.get_ref();
222 let app_id = Uuid::from_str(&req.application_id).map_err(|e| e.status())?;
223
224 self.validator
225 .validate(
226 request.extensions(),
227 validator::ValidateApplicationAccess::new(validator::Flag::Read, app_id),
228 )
229 .await?;
230
231 let result = application::get_integrations_for_application(&app_id)
232 .await
233 .map_err(|e| e.status())?;
234
235 let mut items: Vec<api::IntegrationListItem> = result
236 .iter()
237 .map(|i| api::IntegrationListItem {
238 kind: match i.kind {
239 application::IntegrationKind::Http => api::IntegrationKind::Http,
240 application::IntegrationKind::InfluxDb => api::IntegrationKind::InfluxDb,
241 application::IntegrationKind::ThingsBoard => api::IntegrationKind::ThingsBoard,
242 application::IntegrationKind::MyDevices => api::IntegrationKind::MyDevices,
243 application::IntegrationKind::GcpPubSub => api::IntegrationKind::GcpPubSub,
244 application::IntegrationKind::AwsSns => api::IntegrationKind::AwsSns,
245 application::IntegrationKind::AzureServiceBus => {
246 api::IntegrationKind::AzureServiceBus
247 }
248 application::IntegrationKind::PilotThings => api::IntegrationKind::PilotThings,
249 application::IntegrationKind::Ifttt => api::IntegrationKind::Ifttt,
250 application::IntegrationKind::Blynk => api::IntegrationKind::Blynk,
251 }
252 .into(),
253 })
254 .collect();
255 items.push(api::IntegrationListItem {
256 kind: api::IntegrationKind::MqttGlobal.into(),
257 });
258
259 let mut resp = Response::new(api::ListIntegrationsResponse {
260 total_count: (result.len() + 1) as u32,
261 result: items,
262 });
263 resp.metadata_mut()
264 .insert("x-log-application_id", req.application_id.parse().unwrap());
265
266 Ok(resp)
267 }
268
269 async fn create_http_integration(
270 &self,

Calls 8

statusMethod · 0.80
iterMethod · 0.80
pushMethod · 0.80
insertMethod · 0.80
unwrapMethod · 0.80
validateMethod · 0.45
intoMethod · 0.45