| 472 | } |
| 473 | |
| 474 | async fn flush_dev_nonces( |
| 475 | &self, |
| 476 | request: Request<api::FlushDevNoncesRequest>, |
| 477 | ) -> Result<Response<()>, Status> { |
| 478 | let req = request.get_ref(); |
| 479 | let dev_eui = EUI64::from_str(&req.dev_eui).map_err(|e| e.status())?; |
| 480 | |
| 481 | self.validator |
| 482 | .validate( |
| 483 | request.extensions(), |
| 484 | validator::ValidateDeviceAccess::new(validator::Flag::Update, dev_eui), |
| 485 | ) |
| 486 | .await?; |
| 487 | |
| 488 | device_keys::set_dev_nonces(dev_eui, &fields::DevNonces::default()) |
| 489 | .await |
| 490 | .map_err(|e| e.status())?; |
| 491 | |
| 492 | let mut resp = Response::new(()); |
| 493 | resp.metadata_mut() |
| 494 | .insert("x-log-dev_eui", req.dev_eui.parse().unwrap()); |
| 495 | |
| 496 | Ok(resp) |
| 497 | } |
| 498 | |
| 499 | async fn activate( |
| 500 | &self, |