| 447 | } |
| 448 | |
| 449 | async fn delete_keys( |
| 450 | &self, |
| 451 | request: Request<api::DeleteDeviceKeysRequest>, |
| 452 | ) -> Result<Response<()>, Status> { |
| 453 | let req = request.get_ref(); |
| 454 | let dev_eui = EUI64::from_str(&req.dev_eui).map_err(|e| e.status())?; |
| 455 | |
| 456 | self.validator |
| 457 | .validate( |
| 458 | request.extensions(), |
| 459 | validator::ValidateDeviceAccess::new(validator::Flag::Update, dev_eui), |
| 460 | ) |
| 461 | .await?; |
| 462 | |
| 463 | device_keys::delete(&dev_eui) |
| 464 | .await |
| 465 | .map_err(|e| e.status())?; |
| 466 | |
| 467 | let mut resp = Response::new(()); |
| 468 | resp.metadata_mut() |
| 469 | .insert("x-log-dev_eui", req.dev_eui.parse().unwrap()); |
| 470 | |
| 471 | Ok(resp) |
| 472 | } |
| 473 | |
| 474 | async fn flush_dev_nonces( |
| 475 | &self, |