| 890 | } |
| 891 | |
| 892 | async fn list_adr_algorithms( |
| 893 | &self, |
| 894 | request: Request<()>, |
| 895 | ) -> Result<Response<api::ListDeviceProfileAdrAlgorithmsResponse>, Status> { |
| 896 | self.validator |
| 897 | .validate( |
| 898 | request.extensions(), |
| 899 | validator::ValidateActiveUserOrKey::new(), |
| 900 | ) |
| 901 | .await?; |
| 902 | |
| 903 | let items = adr::get_algorithms().await; |
| 904 | let mut result: Vec<api::AdrAlgorithmListItem> = items |
| 905 | .iter() |
| 906 | .map(|(k, v)| api::AdrAlgorithmListItem { |
| 907 | id: k.clone(), |
| 908 | name: v.clone(), |
| 909 | }) |
| 910 | .collect(); |
| 911 | result.sort_by(|a, b| a.name.cmp(&b.name)); |
| 912 | |
| 913 | Ok(Response::new(api::ListDeviceProfileAdrAlgorithmsResponse { |
| 914 | total_count: items.len() as u32, |
| 915 | result, |
| 916 | })) |
| 917 | } |
| 918 | } |
| 919 | |
| 920 | #[cfg(test)] |