| 1193 | } |
| 1194 | |
| 1195 | async fn flush_queue( |
| 1196 | &self, |
| 1197 | request: Request<api::FlushDeviceQueueRequest>, |
| 1198 | ) -> Result<Response<()>, Status> { |
| 1199 | let req = request.get_ref(); |
| 1200 | let dev_eui = EUI64::from_str(&req.dev_eui).map_err(|e| e.status())?; |
| 1201 | |
| 1202 | self.validator |
| 1203 | .validate( |
| 1204 | request.extensions(), |
| 1205 | validator::ValidateDeviceQueueAccess::new(validator::Flag::Delete, dev_eui), |
| 1206 | ) |
| 1207 | .await?; |
| 1208 | |
| 1209 | device_queue::flush_for_dev_eui(&dev_eui) |
| 1210 | .await |
| 1211 | .map_err(|e| e.status())?; |
| 1212 | |
| 1213 | let mut resp = Response::new(()); |
| 1214 | resp.metadata_mut() |
| 1215 | .insert("x-log-dev_eui", req.dev_eui.parse().unwrap()); |
| 1216 | |
| 1217 | Ok(resp) |
| 1218 | } |
| 1219 | |
| 1220 | async fn get_queue( |
| 1221 | &self, |