Skip to content
Clone
a34fe57
66 lines 2.8 KB Rust
use utoipa::OpenApi;
use crate::features::links::{AddLinkCmd, LinkKind, LinkPage, LinkView};
use crate::features::members::{AddMemberCmd, MemberPage, MemberRole, MemberView, UpdateMemberCmd};
use export::project::activities::{ActivityPage, ActivityView, ListActivityQuery};
use export::project::documents::{
CreateDocumentCmd, DocumentPage, DocumentView, UpdateDocumentCmd,
};
use export::project::favorites::{AddFavoriteCmd, FavoritePage, FavoriteView};
use export::project::lifecycle::{
CreateProjectCmd, ListProjectQuery, ProjectHealth, ProjectPage, ProjectState, ProjectView,
UpdateProjectCmd,
};
use export::project::views::{CreateViewCmd, UpdateViewCmd, ViewPage, ViewView};
#[derive(OpenApi)]
#[openapi(
info(
title = "Project API",
version = "1.0.0",
description = "Linear-style project management endpoints under a space."
),
tags(
(name = "project", description = "Project lifecycle, members, views, documents, links, favorites, activities.")
),
paths(
crate::handler::lifecycle::create::handler,
crate::handler::lifecycle::list::handler,
crate::handler::lifecycle::get::handler,
crate::handler::lifecycle::update::handler,
crate::handler::lifecycle::delete::handler,
crate::handler::members::add::handler,
crate::handler::members::list::handler,
crate::handler::members::get::handler,
crate::handler::members::update::handler,
crate::handler::members::remove::handler,
crate::handler::views::create::handler,
crate::handler::views::list::handler,
crate::handler::views::get::handler,
crate::handler::views::update::handler,
crate::handler::views::delete::handler,
crate::handler::documents::create::handler,
crate::handler::documents::list::handler,
crate::handler::documents::get::handler,
crate::handler::documents::update::handler,
crate::handler::documents::delete::handler,
crate::handler::links::add::handler,
crate::handler::links::list::handler,
crate::handler::links::remove::handler,
crate::handler::favorites::add::handler,
crate::handler::favorites::list::handler,
crate::handler::favorites::remove::handler,
crate::handler::activities::list::handler,
),
components(schemas(
ProjectState, ProjectHealth, CreateProjectCmd, UpdateProjectCmd, ProjectView, ProjectPage,
ListProjectQuery,
MemberRole, AddMemberCmd, UpdateMemberCmd, MemberView, MemberPage,
CreateViewCmd, UpdateViewCmd, ViewView, ViewPage,
CreateDocumentCmd, UpdateDocumentCmd, DocumentView, DocumentPage,
LinkKind, AddLinkCmd, LinkView, LinkPage,
AddFavoriteCmd, FavoriteView, FavoritePage,
ActivityView, ListActivityQuery, ActivityPage,
))
)]
pub struct ProjectApiDoc;