use serde::Deserialize;
use crate::api::response::Response;
use crate::Str;
#[derive(Clone, Debug, Deserialize, PartialEq)]
pub struct Locale {
#[serde(rename = "locale")]
pub locale: String,
#[serde(rename = "name")]
pub name: String,
}
Endpoint! {
pub Get(()),
Ok => Response<Vec<Locale>>, [
OK,
],
Err => GetError, []
fn path(_input: &Self::Input) -> Str {
"/v2/reference/locales".into()
}
}
#[cfg(test)]
#[cfg(not(target_arch = "wasm32"))]
mod tests {
use super::*;
use test_log::test;
use crate::Client;
#[test(tokio::test)]
async fn request_locales() {
let client = Client::from_env().unwrap();
let locales = client
.issue::<Get>(())
.await
.unwrap()
.into_result()
.unwrap();
let us = locales.iter().find(|locale| locale.locale == "US").unwrap();
assert!(us.name.starts_with("United States"), "{}", us.name);
}
}