use http::Method;
use serde::{Deserialize, Serialize};
use crate::{auth::Unauthenticated, query::DefaultModel, Endpoint};
#[derive(Clone, Debug, Eq, Ord, Hash, PartialEq, PartialOrd, Serialize)]
pub struct Providers;
impl Endpoint for Providers {
type AccessControl = Unauthenticated;
fn method(&self) -> Method {
Method::GET
}
fn endpoint(&self) -> std::borrow::Cow<'static, str> {
"auth/providers".into()
}
}
impl DefaultModel for Providers {
type Model = Vec<AuthProvider>;
fn map(data: serde_json::Value) -> Result<Self::Model, serde_json::Error> {
serde_json::from_value(data)
}
}
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AuthProvider {
pub slug: String,
pub client_id: String,
pub url: url::Url,
pub redirect_url: url::Url,
}