oauth2
This commit is contained in:
@@ -29,7 +29,12 @@ pub use middleware::{require_admin, require_family_access};
|
||||
paths(
|
||||
routes::auth::login,
|
||||
routes::auth::logout,
|
||||
routes::auth::me,
|
||||
routes::auth::family_login,
|
||||
routes::oauth::google_auth,
|
||||
routes::oauth::google_callback,
|
||||
routes::family::create_family,
|
||||
routes::family::create_my_family,
|
||||
routes::family::get_family,
|
||||
routes::family::get_all_families,
|
||||
routes::family::update_family,
|
||||
@@ -53,6 +58,11 @@ pub use middleware::{require_admin, require_family_access};
|
||||
routes::shopping_item::mark_as_purchased,
|
||||
routes::shopping_item::mark_all_as_purchased,
|
||||
routes::shopping_item::clear_all,
|
||||
routes::invite_link::create_invite_link,
|
||||
routes::invite_link::get_my_invite_links,
|
||||
routes::invite_link::delete_invite_link,
|
||||
routes::invite_link::validate_invite_link,
|
||||
routes::invite_link::join_family_via_invite,
|
||||
),
|
||||
components(
|
||||
schemas(
|
||||
@@ -62,7 +72,13 @@ pub use middleware::{require_admin, require_family_access};
|
||||
models::shopping_item::Model,
|
||||
routes::auth::LoginRequest,
|
||||
routes::auth::LoginResponse,
|
||||
routes::auth::MeResponse,
|
||||
routes::auth::FamilyLoginRequest,
|
||||
routes::auth::FamilyLoginResponse,
|
||||
routes::oauth::OAuthUrlResponse,
|
||||
routes::family::CreateFamilyRequest,
|
||||
routes::family::CreateMyFamilyRequest,
|
||||
routes::family::CreateMyFamilyResponse,
|
||||
routes::family::UpdateFamilyRequest,
|
||||
routes::category::CreateCategoryRequest,
|
||||
routes::category::UpdateCategoryRequest,
|
||||
@@ -73,6 +89,11 @@ pub use middleware::{require_admin, require_family_access};
|
||||
routes::shopping_item::UpdateShoppingItemRequest,
|
||||
routes::shopping_item::MarkAsPurchasedRequest,
|
||||
routes::shopping_item::BulkOperationResponse,
|
||||
models::invite_link::Model,
|
||||
routes::invite_link::CreateInviteLinkRequest,
|
||||
routes::invite_link::InviteLinkResponse,
|
||||
routes::invite_link::ValidateInviteResponse,
|
||||
routes::invite_link::JoinFamilyResponse,
|
||||
)
|
||||
),
|
||||
tags(
|
||||
@@ -80,7 +101,8 @@ pub use middleware::{require_admin, require_family_access};
|
||||
(name = "families", description = "Family management endpoints"),
|
||||
(name = "categories", description = "Category management endpoints"),
|
||||
(name = "expenses", description = "Expense management endpoints"),
|
||||
(name = "shopping-items", description = "Shopping list management endpoints")
|
||||
(name = "shopping-items", description = "Shopping list management endpoints"),
|
||||
(name = "invite-links", description = "Family invite link management endpoints")
|
||||
),
|
||||
info(
|
||||
title = "Family Budget API",
|
||||
@@ -130,6 +152,23 @@ pub async fn create_app(db: DatabaseConnection) -> Result<Router, DbErr> {
|
||||
let auth_routes = Router::new()
|
||||
.route("/login", post(routes::auth::login))
|
||||
.route("/logout", post(routes::auth::logout))
|
||||
.route("/me", get(routes::auth::me))
|
||||
.route("/my-family", post(routes::family::create_my_family))
|
||||
.route("/auth/family-login", post(routes::auth::family_login))
|
||||
.layer(auth_layer.clone())
|
||||
.with_state(db.clone());
|
||||
|
||||
let oauth_routes = Router::new()
|
||||
.route("/auth/google", get(routes::oauth::google_auth))
|
||||
.route("/auth/google/callback", get(routes::oauth::google_callback))
|
||||
.layer(auth_layer.clone())
|
||||
.with_state(db.clone());
|
||||
|
||||
let invite_link_routes = Router::new()
|
||||
.route("/my-family/invite-links", post(routes::invite_link::create_invite_link))
|
||||
.route("/my-family/invite-links", get(routes::invite_link::get_my_invite_links))
|
||||
.route("/my-family/invite-links/:token", delete(routes::invite_link::delete_invite_link))
|
||||
.route("/invite/:token/join", post(routes::invite_link::join_family_via_invite))
|
||||
.layer(auth_layer)
|
||||
.with_state(db.clone());
|
||||
|
||||
@@ -162,12 +201,15 @@ pub async fn create_app(db: DatabaseConnection) -> Result<Router, DbErr> {
|
||||
.route("/families/:id", get(routes::family::get_family))
|
||||
.route("/families/:id", put(routes::family::update_family))
|
||||
.route("/families/:id/verify", post(routes::family::verify_family_password))
|
||||
.route("/invite/:token", get(routes::invite_link::validate_invite_link))
|
||||
.layer(session_layer)
|
||||
.with_state(db);
|
||||
|
||||
let api_routes = Router::new()
|
||||
.merge(admin_family_routes)
|
||||
.merge(auth_routes)
|
||||
.merge(oauth_routes)
|
||||
.merge(invite_link_routes)
|
||||
.merge(family_protected_routes)
|
||||
.merge(public_routes);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user