Skip to main content

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 migration;
18pub mod organizations;
19pub mod pages;
20pub mod repository_exercises;
21
22use actix_web::web::{self, ServiceConfig};
23use utoipa::OpenApi;
24
25#[derive(OpenApi)]
26#[openapi(
27    nest(
28        (path = "/ai-suggestions", api = ai_suggestions::CmsAiSuggestionsApiDoc),
29        (path = "/chapters", api = chapters::CmsChaptersApiDoc),
30        (path = "/course-instances", api = course_instances::CmsCourseInstancesApiDoc),
31        (path = "/courses", api = courses::CmsCoursesApiDoc),
32        (path = "/code-giveaways", api = code_giveaways::CmsCodeGiveawaysApiDoc),
33        (path = "/email-templates", api = email_templates::CmsEmailTemplatesApiDoc),
34        (path = "/exams", api = exams::CmsExamsApiDoc),
35        (path = "/exercise-services", api = exercise_services::CmsExerciseServicesApiDoc),
36        (path = "/pages", api = pages::CmsPagesApiDoc),
37        (path = "/repository-exercises", api = repository_exercises::CmsRepositoryExercisesApiDoc)
38    )
39)]
40pub struct CmsRoutesApiDoc;
41
42/// Add controllers from all the submodules.
43pub fn _add_routes(cfg: &mut ServiceConfig) {
44    cfg.service(web::scope("/pages").configure(pages::_add_routes))
45        .service(web::scope("/chapters").configure(chapters::_add_routes))
46        .service(web::scope("/course-instances").configure(course_instances::_add_routes))
47        .service(web::scope("/email-templates").configure(email_templates::_add_routes))
48        .service(web::scope("/gutenberg").configure(gutenberg::_add_routes))
49        .service(web::scope("/organizations").configure(organizations::_add_routes))
50        .service(web::scope("/courses").configure(courses::_add_routes))
51        .service(web::scope("/exams").configure(exams::_add_routes))
52        .service(web::scope("/exercise-services").configure(exercise_services::_add_routes))
53        .service(web::scope("/code-giveaways").configure(code_giveaways::_add_routes))
54        .service(web::scope("/repository-exercises").configure(repository_exercises::_add_routes))
55        .service(web::scope("/migration").configure(migration::_add_routes))
56        .service(web::scope("/ai-suggestions").configure(ai_suggestions::_add_routes));
57}