diff --git a/crates/presentation/src/openapi/goals.rs b/crates/presentation/src/openapi/goals.rs new file mode 100644 index 0000000..889e08a --- /dev/null +++ b/crates/presentation/src/openapi/goals.rs @@ -0,0 +1,27 @@ +use api_types::{ + CreateGoalRequest, GoalDto, GoalsResponse, UpdateGoalRequest, UpdateUserSettingsRequest, + UserSettingsDto, +}; +use utoipa::OpenApi; + +#[derive(OpenApi)] +#[openapi( + paths( + crate::handlers::goals::list_goals, + crate::handlers::goals::create_goal, + crate::handlers::goals::update_goal, + crate::handlers::goals::delete_goal, + crate::handlers::goals::get_user_goals, + crate::handlers::goals::get_settings, + crate::handlers::goals::update_settings, + ), + components(schemas( + GoalDto, + GoalsResponse, + CreateGoalRequest, + UpdateGoalRequest, + UserSettingsDto, + UpdateUserSettingsRequest, + )) +)] +pub struct GoalsDoc; diff --git a/crates/presentation/src/openapi/mod.rs b/crates/presentation/src/openapi/mod.rs index a340f96..08559ec 100644 --- a/crates/presentation/src/openapi/mod.rs +++ b/crates/presentation/src/openapi/mod.rs @@ -1,5 +1,6 @@ mod auth; mod diary; +mod goals; mod import; mod movies; mod search; @@ -42,6 +43,7 @@ fn build() -> utoipa::openapi::OpenApi { api.merge(import::ImportDoc::openapi()); api.merge(search::SearchDoc::openapi()); api.merge(watchlist::WatchlistDoc::openapi()); + api.merge(goals::GoalsDoc::openapi()); api.merge(webhook::WebhookDoc::openapi()); api.merge(wrapup::WrapUpDoc::openapi()); #[cfg(feature = "federation")]