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

Method create_influx_db_integration

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

Source from the content-addressed store, hash-verified

426 }
427
428 async fn create_influx_db_integration(
429 &self,
430 request: Request<api::CreateInfluxDbIntegrationRequest>,
431 ) -> Result<Response<()>, Status> {
432 let req_int = match &request.get_ref().integration {
433 Some(v) => v,
434 None => {
435 return Err(Status::invalid_argument("integration is missing"));
436 }
437 };
438 let app_id = Uuid::from_str(&req_int.application_id).map_err(|e| e.status())?;
439
440 self.validator
441 .validate(
442 request.extensions(),
443 validator::ValidateApplicationAccess::new(validator::Flag::Update, app_id),
444 )
445 .await?;
446
447 let i = application::Integration {
448 application_id: app_id.into(),
449 kind: application::IntegrationKind::InfluxDb,
450 configuration: application::IntegrationConfiguration::InfluxDb(
451 application::InfluxDbConfiguration {
452 endpoint: req_int.endpoint.clone(),
453 db: req_int.db.clone(),
454 username: req_int.username.clone(),
455 password: req_int.password.clone(),
456 retention_policy_name: req_int.retention_policy_name.clone(),
457 precision: req_int.precision,
458 version: req_int.version,
459 token: req_int.token.clone(),
460 organization: req_int.organization.clone(),
461 bucket: req_int.bucket.clone(),
462 },
463 ),
464 ..Default::default()
465 };
466
467 let _ = application::create_integration(i)
468 .await
469 .map_err(|e| e.status())?;
470
471 let mut resp = Response::new(());
472 resp.metadata_mut().insert(
473 "x-log-application_id",
474 req_int.application_id.parse().unwrap(),
475 );
476
477 Ok(resp)
478 }
479
480 async fn get_influx_db_integration(
481 &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