diff options
| author | rtkay123 <dev@kanjala.com> | 2026-02-02 13:05:49 +0200 |
|---|---|---|
| committer | rtkay123 <dev@kanjala.com> | 2026-02-02 13:05:49 +0200 |
| commit | e06094f23ca861ea5ae4864d11fa8ce8b7d7aa2c (patch) | |
| tree | 27bbff5fd21711f99aaf579a76b1a0aca7869003 /src/server/routes/auth | |
| parent | 78f61ccdf66572d7432b5b627994038479103653 (diff) | |
| download | sellershut-e06094f23ca861ea5ae4864d11fa8ce8b7d7aa2c.tar.bz2 sellershut-e06094f23ca861ea5ae4864d11fa8ce8b7d7aa2c.zip | |
feat: oauth route
Diffstat (limited to 'src/server/routes/auth')
| -rw-r--r-- | src/server/routes/auth/discord.rs | 11 | ||||
| -rw-r--r-- | src/server/routes/auth/mod.rs | 59 |
2 files changed, 70 insertions, 0 deletions
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<Arc<dyn SellershutDriver>>, +) -> Result<impl IntoResponse, AppError> { + 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<Params>, + data: Data<AppState>, +) -> Result<impl IntoResponse, AppError> { + dbg!(¶ms); + Ok(String::default()) +} |
