headless_lms_server/controllers/main_frontend/
mod.rs1pub mod agent_changesets;
9pub mod agent_preview;
10pub mod certificates;
11pub mod chapters;
12pub mod chatbot_embed;
13pub mod chatbot_models;
14pub mod chatbots;
15pub mod code_giveaways;
16pub mod course_auditing;
17pub mod course_credit_registrations;
18pub mod course_designer;
19pub mod course_instances;
20pub mod course_modules;
21pub mod courses;
22pub mod credit_registration_admin;
23pub mod credit_registrations;
24pub mod email_templates;
25pub mod email_verification;
26pub mod exams;
27pub mod exercise_repositories;
28pub mod exercise_services;
29pub mod exercise_slide_submissions;
30pub mod exercises;
31pub mod external_courses;
32pub mod feedback;
33pub mod global_stats;
34pub mod glossary;
35pub mod oauth;
36pub mod org;
37pub mod organizations;
38pub mod page_audio_files;
39pub mod pages;
40pub mod playground_examples;
41pub mod playground_views;
42pub mod proposed_edits;
43pub mod regradings;
44pub mod roles;
45pub mod shared_submissions;
46pub mod status;
47pub mod teacher_grading_decisions;
48pub mod time;
49pub mod user_details;
50pub mod users;
51
52use actix_web::web::{self, ServiceConfig};
53use utoipa::OpenApi;
54
55#[derive(OpenApi)]
56#[openapi(
57 nest(
58 (path = "/agent-changesets", api = agent_changesets::MainFrontendAgentChangesetsApiDoc),
59 (path = "/agent-preview", api = agent_preview::MainFrontendAgentPreviewApiDoc),
60 (path = "/certificates", api = certificates::MainFrontendCertificatesApiDoc),
61 (path = "/chapters", api = chapters::MainFrontendChaptersApiDoc),
62 (path = "/chatbot-models", api = chatbot_models::MainFrontendChatbotModelsApiDoc),
63 (path = "/chatbots", api = chatbots::MainFrontendChatbotsApiDoc),
64 (path = "/code-giveaways", api = code_giveaways::MainFrontendCodeGiveawaysApiDoc),
65 (path = "/course-auditing", api = course_auditing::MainFrontendCourseAuditingApiDoc),
66 (path = "/course-credit-registrations", api = course_credit_registrations::MainFrontendCourseCreditRegistrationsApiDoc),
67 (path = "/course-plans", api = course_designer::MainFrontendCourseDesignerApiDoc),
68 (path = "/course-instances", api = course_instances::MainFrontendCourseInstancesApiDoc),
69 (path = "/course-modules", api = course_modules::MainFrontendCourseModulesApiDoc),
70 (path = "/courses", api = courses::MainFrontendCoursesApiDoc),
71 (path = "/credit-registration-admin", api = credit_registration_admin::MainFrontendCreditRegistrationAdminApiDoc),
72 (path = "/credit-registrations", api = credit_registrations::MainFrontendCreditRegistrationsApiDoc),
73 (path = "/email-templates", api = email_templates::MainFrontendEmailTemplatesApiDoc),
74 (path = "/email-verification", api = email_verification::MainFrontendEmailVerificationApiDoc),
75 (path = "/exams", api = exams::MainFrontendExamsApiDoc),
76 (path = "/exercise-repositories", api = exercise_repositories::MainFrontendExerciseRepositoriesApiDoc),
77 (path = "/exercise-services", api = exercise_services::MainFrontendExerciseServicesApiDoc),
78 (path = "/exercise-slide-submissions", api = exercise_slide_submissions::MainFrontendExerciseSlideSubmissionsApiDoc),
79 (path = "/exercises", api = exercises::MainFrontendExercisesApiDoc),
80 (path = "/feedback", api = feedback::MainFrontendFeedbackApiDoc),
81 (path = "/global-stats", api = global_stats::MainFrontendGlobalStatsApiDoc),
82 (path = "/glossary", api = glossary::MainFrontendGlossaryApiDoc),
83 (path = "/oauth", api = oauth::MainFrontendOauthApiDoc),
84 (path = "/org", api = org::MainFrontendOrgApiDoc),
85 (path = "/organizations", api = organizations::MainFrontendOrganizationsApiDoc),
86 (path = "/page_audio", api = page_audio_files::MainFrontendPageAudioApiDoc),
87 (path = "/pages", api = pages::MainFrontendPagesApiDoc),
88 (path = "/playground_examples", api = playground_examples::MainFrontendPlaygroundExamplesApiDoc),
89 (path = "/playground-views", api = playground_views::MainFrontendPlaygroundViewsApiDoc),
90 (path = "/proposed-edits", api = proposed_edits::MainFrontendProposedEditsApiDoc),
91 (path = "/regradings", api = regradings::MainFrontendRegradingsApiDoc),
92 (path = "/roles", api = roles::MainFrontendRolesApiDoc),
93 (path = "/shared-submissions", api = shared_submissions::MainFrontendSharedSubmissionsApiDoc),
94 (path = "/status", api = status::MainFrontendStatusApiDoc),
95 (path = "/teacher-grading-decisions", api = teacher_grading_decisions::MainFrontendTeacherGradingDecisionsApiDoc),
96 (path = "/time", api = time::MainFrontendTimeApiDoc),
97 (path = "/user-details", api = user_details::MainFrontendUserDetailsApiDoc),
98 (path = "/users", api = users::MainFrontendUsersApiDoc),
99 (path = "/chatbot-embed", api = chatbot_embed::MainFrontendChatbotEmbedApiDoc),
100 (path = "/external-courses", api = external_courses::MainFrontendExternalCoursesApiDoc)
101 )
102)]
103pub struct MainFrontendRoutesApiDoc;
104
105pub fn _add_routes(cfg: &mut ServiceConfig) {
107 cfg.service(web::scope("/agent-changesets").configure(agent_changesets::_add_routes))
108 .service(web::scope("/agent-preview").configure(agent_preview::_add_routes))
109 .service(web::scope("/chapters").configure(chapters::_add_routes))
110 .service(web::scope("/course-auditing").configure(course_auditing::_add_routes))
111 .service(
112 web::scope("/course-credit-registrations")
113 .configure(course_credit_registrations::_add_routes),
114 )
115 .service(web::scope("/course-instances").configure(course_instances::_add_routes))
116 .service(web::scope("/course-plans").configure(course_designer::_add_routes))
117 .service(web::scope("/course-modules").configure(course_modules::_add_routes))
118 .service(web::scope("/courses").configure(courses::_add_routes))
119 .service(
120 web::scope("/credit-registration-admin")
121 .configure(credit_registration_admin::_add_routes),
122 )
123 .service(web::scope("/credit-registrations").configure(credit_registrations::_add_routes))
124 .service(web::scope("/email-templates").configure(email_templates::_add_routes))
125 .service(web::scope("/email-verification").configure(email_verification::_add_routes))
126 .service(web::scope("/exercises").configure(exercises::_add_routes))
127 .service(web::scope("/feedback").configure(feedback::_add_routes))
128 .service(web::scope("/org").configure(org::_add_routes))
129 .service(web::scope("/organizations").configure(organizations::_add_routes))
130 .service(web::scope("/pages").configure(pages::_add_routes))
131 .service(
132 web::scope("/exercise-slide-submissions")
133 .configure(exercise_slide_submissions::_add_routes),
134 )
135 .service(web::scope("/proposed-edits").configure(proposed_edits::_add_routes))
136 .service(web::scope("/exercise-services").configure(exercise_services::_add_routes))
137 .service(web::scope("/playground_examples").configure(playground_examples::_add_routes))
138 .service(web::scope("/users").configure(users::_add_routes))
139 .service(web::scope("/exams").configure(exams::_add_routes))
140 .service(web::scope("/glossary").configure(glossary::_add_routes))
141 .service(web::scope("/roles").configure(roles::_add_routes))
142 .service(web::scope("/exercise-repositories").configure(exercise_repositories::_add_routes))
143 .service(web::scope("/regradings").configure(regradings::_add_routes))
144 .service(web::scope("/playground-views").configure(playground_views::_add_routes))
145 .service(web::scope("/page_audio").configure(page_audio_files::_add_routes))
146 .service(web::scope("/user-details").configure(user_details::_add_routes))
147 .service(web::scope("/certificates").configure(certificates::_add_routes))
148 .service(web::scope("/global-stats").configure(global_stats::_add_routes))
149 .service(
150 web::scope("/teacher-grading-decisions")
151 .configure(teacher_grading_decisions::_add_routes),
152 )
153 .service(web::scope("/code-giveaways").configure(code_giveaways::_add_routes))
154 .service(web::scope("/oauth").configure(oauth::_add_routes))
155 .service(web::scope("/chatbots").configure(chatbots::_add_routes))
156 .service(web::scope("/chatbot-models").configure(chatbot_models::_add_routes))
157 .service(web::scope("/time").configure(time::_add_routes))
158 .service(web::scope("/shared-submissions").configure(shared_submissions::_add_routes))
159 .service(web::scope("/status").configure(status::_add_routes))
160 .service(web::scope("/chatbot-embed").configure(chatbot_embed::_add_routes))
161 .service(web::scope("/external-courses").configure(external_courses::_add_routes));
162}