headless_lms_server/
openapi.rs1use utoipa::OpenApi;
2
3#[derive(OpenApi)]
4#[openapi(
5 nest((path = "/api/v0/cms", api = crate::controllers::cms::CmsRoutesApiDoc)),
6 info(
7 title = "CMS API",
8 version = "0.1.0"
9 )
10)]
11pub struct CmsApiDoc;
12
13#[derive(OpenApi)]
14#[openapi(
15 nest(
16 (
17 path = "/api/v0/main-frontend",
18 api = crate::controllers::main_frontend::MainFrontendRoutesApiDoc
19 ),
20 (path = "/api/v0/files", api = crate::controllers::files::FilesApiDoc)
21 ),
22 tags(
23 (name = "glossary", description = "Glossary endpoints used by main-frontend")
24 ),
25 info(
26 title = "Main Frontend API",
27 version = "0.1.0"
28 )
29)]
30pub struct MainFrontendApiDoc;
31
32#[derive(OpenApi)]
33#[openapi(
34 nest(
35 (
36 path = "/api/v0/course-material",
37 api = crate::controllers::course_material::CourseMaterialRoutesApiDoc
38 )
39 ),
40 components(schemas(
41 headless_lms_models::teacher_grading_decisions::TeacherDecisionType
42 )),
43 info(
44 title = "Course Material API",
45 version = "0.1.0"
46 )
47)]
48pub struct CourseMaterialApiDoc;
49
50#[derive(OpenApi)]
51#[openapi(
52 nest((path = "/api/v0/auth", api = crate::controllers::auth::AuthRoutesApiDoc)),
53 info(
54 title = "Auth API",
55 version = "0.1.0"
56 )
57)]
58pub struct AuthApiDoc;