| 871 | } |
| 872 | |
| 873 | async fn delete_relay_gateway( |
| 874 | &self, |
| 875 | request: Request<api::DeleteRelayGatewayRequest>, |
| 876 | ) -> Result<Response<()>, Status> { |
| 877 | let req = request.get_ref(); |
| 878 | let tenant_id = Uuid::from_str(&req.tenant_id).map_err(|e| e.status())?; |
| 879 | let relay_id = RelayId::from_str(&req.relay_id).map_err(|e| e.status())?; |
| 880 | |
| 881 | // The tenant_id is part of the relay PK. |
| 882 | self.validator |
| 883 | .validate( |
| 884 | request.extensions(), |
| 885 | validator::ValidateGatewaysAccess::new(validator::Flag::List, tenant_id), |
| 886 | ) |
| 887 | .await?; |
| 888 | |
| 889 | gateway::delete_relay_gateway(tenant_id, relay_id) |
| 890 | .await |
| 891 | .map_err(|e| e.status())?; |
| 892 | |
| 893 | let mut resp = Response::new(()); |
| 894 | resp.metadata_mut() |
| 895 | .insert("x-log-tenant_id", req.tenant_id.parse().unwrap()); |
| 896 | resp.metadata_mut() |
| 897 | .insert("x-log-relay_id", req.relay_id.parse().unwrap()); |
| 898 | |
| 899 | Ok(resp) |
| 900 | } |
| 901 | |
| 902 | async fn list_relay_gateways( |
| 903 | &self, |