| 136 | } |
| 137 | |
| 138 | async fn delete( |
| 139 | &self, |
| 140 | request: Request<api::DeleteApplicationRequest>, |
| 141 | ) -> Result<Response<()>, Status> { |
| 142 | let req = request.get_ref(); |
| 143 | let app_id = Uuid::from_str(&req.id).map_err(|e| e.status())?; |
| 144 | |
| 145 | self.validator |
| 146 | .validate( |
| 147 | request.extensions(), |
| 148 | validator::ValidateApplicationAccess::new(validator::Flag::Delete, app_id), |
| 149 | ) |
| 150 | .await?; |
| 151 | |
| 152 | application::delete(&app_id).await.map_err(|e| e.status())?; |
| 153 | |
| 154 | let mut resp = Response::new(()); |
| 155 | resp.metadata_mut() |
| 156 | .insert("x-log-application_id", req.id.parse().unwrap()); |
| 157 | |
| 158 | Ok(resp) |
| 159 | } |
| 160 | |
| 161 | async fn list( |
| 162 | &self, |