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

Method update_aws_sns_integration

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

Source from the content-addressed store, hash-verified

1121 }
1122
1123 async fn update_aws_sns_integration(
1124 &self,
1125 request: Request<api::UpdateAwsSnsIntegrationRequest>,
1126 ) -> Result<Response<()>, Status> {
1127 let req_int = match &request.get_ref().integration {
1128 Some(v) => v,
1129 None => {
1130 return Err(Status::invalid_argument("integration is missing"));
1131 }
1132 };
1133 let app_id = Uuid::from_str(&req_int.application_id).map_err(|e| e.status())?;
1134
1135 self.validator
1136 .validate(
1137 request.extensions(),
1138 validator::ValidateApplicationAccess::new(validator::Flag::Update, app_id),
1139 )
1140 .await?;
1141
1142 let _ = application::update_integration(application::Integration {
1143 application_id: app_id.into(),
1144 kind: application::IntegrationKind::AwsSns,
1145 configuration: application::IntegrationConfiguration::AwsSns(
1146 application::AwsSnsConfiguration {
1147 encoding: req_int.encoding,
1148 region: req_int.region.clone(),
1149 access_key_id: req_int.access_key_id.clone(),
1150 secret_access_key: req_int.secret_access_key.clone(),
1151 topic_arn: req_int.topic_arn.clone(),
1152 },
1153 ),
1154 ..Default::default()
1155 })
1156 .await
1157 .map_err(|e| e.status())?;
1158
1159 let mut resp = Response::new(());
1160 resp.metadata_mut().insert(
1161 "x-log-application_id",
1162 req_int.application_id.parse().unwrap(),
1163 );
1164
1165 Ok(resp)
1166 }
1167
1168 async fn delete_aws_sns_integration(
1169 &self,

Callers 1

test_aws_sns_integrationFunction · 0.80

Calls 7

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

Tested by 1

test_aws_sns_integrationFunction · 0.64