| 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, |