headless_lms_server/controllers/cms/
mod.rs

1/*!
2Handlers for HTTP requests to `/api/v0/cms`.
3
4This documents all endpoints. Select a module below for a category.
5
6*/
7
8pub mod ai_suggestions;
9pub mod chapters;
10pub mod code_giveaways;
11pub mod course_instances;
12pub mod courses;
13pub mod email_templates;
14pub mod exams;
15pub mod exercise_services;
16pub mod gutenberg;
17pub mod organizations;
18pub mod pages;
19pub mod repository_exercises;
20
21use actix_web::web::{self, ServiceConfig};
22use utoipa::OpenApi;
23
24#[derive(OpenApi)]
25#[openapi(
26    nest(
27        (path = "/ai-suggestions", api = ai_suggestions::CmsAiSuggestionsApiDoc),
28        (path = "/chapters", api = chapters::CmsChaptersApiDoc),
29        (path = "/course-instances", api = course_instances::CmsCourseInstancesApiDoc),
30        (path = "/courses", api = courses::CmsCoursesApiDoc),
31        (path = "/code-giveaways", api = code_giveaways::CmsCodeGiveawaysApiDoc),
32        (path = "/email-templates", api = email_templates::CmsEmailTemplatesApiDoc),
33        (path = "/exams", api = exams::CmsExamsApiDoc),
34        (path = "/exercise-services", api = exercise_services::CmsExerciseServicesApiDoc),
35        (path = "/pages", api = pages::CmsPagesApiDoc),
36        (path = "/repository-exercises", api = repository_exercises::CmsRepositoryExercisesApiDoc)
37    )
38)]
39pub struct CmsRoutesApiDoc;
40
41/// Add controllers from all the submodules.
42pub fn _add_routes(cfg: &mut ServiceConfig) {
43    cfg.service(web::scope("/pages").configure(pages::_add_routes))
44        .service(web::scope("/chapters").configure(chapters::_add_routes))
45        .service(web::scope("/course-instances").configure(course_instances::_add_routes))
46        .service(web::scope("/email-templates").configure(email_templates::_add_routes))
47        .service(web::scope("/gutenberg").configure(gutenberg::_add_routes))
48        .service(web::scope("/organizations").configure(organizations::_add_routes))
49        .service(web::scope("/courses").configure(courses::_add_routes))
50        .service(web::scope("/exams").configure(exams::_add_routes))
51        .service(web::scope("/exercise-services").configure(exercise_services::_add_routes))
52        .service(web::scope("/code-giveaways").configure(code_giveaways::_add_routes))
53        .service(web::scope("/repository-exercises").configure(repository_exercises::_add_routes))
54        .service(web::scope("/ai-suggestions").configure(ai_suggestions::_add_routes));
55}