use http::Method;
use serde::{Deserialize, Serialize};
use crate::{auth::Authenticated, query::DefaultModel, Endpoint};
#[derive(Clone, Debug, Eq, Ord, Hash, PartialEq, PartialOrd)]
pub struct AllLocales;
impl Endpoint for AllLocales {
type AccessControl = Authenticated;
fn method(&self) -> Method {
Method::GET
}
fn endpoint(&self) -> std::borrow::Cow<'static, str> {
"locales".into()
}
}
impl DefaultModel for AllLocales {
type Model = Vec<Locale>;
}
impl_wrapper!(
LocaleCode,
"Type-safe wrapper for a standardized locale code (like `en_US`)."
);
#[derive(Clone, Debug, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Locale {
pub code: LocaleCode,
pub language: String,
pub region: String,
}