From e06094f23ca861ea5ae4864d11fa8ce8b7d7aa2c Mon Sep 17 00:00:00 2001 From: rtkay123 Date: Mon, 2 Feb 2026 13:05:49 +0200 Subject: feat: oauth route --- src/server/routes/auth/discord.rs | 11 ++++++++ src/server/routes/auth/mod.rs | 59 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 src/server/routes/auth/discord.rs create mode 100644 src/server/routes/auth/mod.rs (limited to 'src/server/routes/auth') diff --git a/src/server/routes/auth/discord.rs b/src/server/routes/auth/discord.rs new file mode 100644 index 0000000..036a35a --- /dev/null +++ b/src/server/routes/auth/discord.rs @@ -0,0 +1,11 @@ +use std::sync::Arc; + +use axum::{extract::State, response::IntoResponse}; + +use crate::server::{driver::SellershutDriver, error::AppError}; + +async fn auth( + State(client): State>, +) -> Result { + Ok(()) +} diff --git a/src/server/routes/auth/mod.rs b/src/server/routes/auth/mod.rs new file mode 100644 index 0000000..b80c565 --- /dev/null +++ b/src/server/routes/auth/mod.rs @@ -0,0 +1,59 @@ +use activitypub_federation::config::Data; + +use serde::Deserialize; + +#[cfg(feature = "oauth-discord")] +pub mod discord; + +#[derive(Deserialize, Debug, Clone, Copy, ToSchema)] +#[serde(rename_all = "lowercase")] +pub enum OauthProvider { + /// Discord + #[cfg(feature = "oauth-discord")] + Discord, +} + +#[derive(Deserialize, Debug, Clone, Copy, IntoParams)] +#[into_params(parameter_in = Query)] +pub struct Params { + /// Set OAuth provider name + provider: OauthProvider, +} + +use axum::{extract::Query, response::IntoResponse}; +use utoipa::{IntoParams, OpenApi, ToSchema}; + +use crate::server::{error::AppError, state::AppState}; + +pub const AUTH: &str = "AUTH"; + +#[derive(OpenApi)] +#[openapi( + tags( + (name = AUTH, description = "OAuth integration") + ), + components( + schemas(OauthProvider) + ) +)] +pub struct OAuthDoc; + +#[utoipa::path( + method(get), + path = "/auth", + params( + Params + ), + tag = AUTH, + responses( + (status = OK, description = "Routes to oauth provider for login", body = str, content_type = "text/plain") + ) +)] +#[axum::debug_handler] +pub async fn auth( + Query(params): Query, + data: Data, +) -> Result { + dbg!(¶ms); + Ok(String::default()) +} -- cgit v1.2.3