| 677 | } |
| 678 | |
| 679 | async fn update_things_board_integration( |
| 680 | &self, |
| 681 | request: Request<api::UpdateThingsBoardIntegrationRequest>, |
| 682 | ) -> Result<Response<()>, Status> { |
| 683 | let req_int = match &request.get_ref().integration { |
| 684 | Some(v) => v, |
| 685 | None => { |
| 686 | return Err(Status::invalid_argument("integration is missing")); |
| 687 | } |
| 688 | }; |
| 689 | let app_id = Uuid::from_str(&req_int.application_id).map_err(|e| e.status())?; |
| 690 | |
| 691 | self.validator |
| 692 | .validate( |
| 693 | request.extensions(), |
| 694 | validator::ValidateApplicationAccess::new(validator::Flag::Update, app_id), |
| 695 | ) |
| 696 | .await?; |
| 697 | |
| 698 | let _ = application::update_integration(application::Integration { |
| 699 | application_id: app_id.into(), |
| 700 | kind: application::IntegrationKind::ThingsBoard, |
| 701 | configuration: application::IntegrationConfiguration::ThingsBoard( |
| 702 | application::ThingsBoardConfiguration { |
| 703 | server: req_int.server.clone(), |
| 704 | }, |
| 705 | ), |
| 706 | ..Default::default() |
| 707 | }) |
| 708 | .await |
| 709 | .map_err(|e| e.status())?; |
| 710 | |
| 711 | let mut resp = Response::new(()); |
| 712 | resp.metadata_mut().insert( |
| 713 | "x-log-application_id", |
| 714 | req_int.application_id.parse().unwrap(), |
| 715 | ); |
| 716 | |
| 717 | Ok(resp) |
| 718 | } |
| 719 | |
| 720 | async fn delete_things_board_integration( |
| 721 | &self, |