headless_lms_server/controllers/
mod.rs#![allow(clippy::suspicious_else_formatting)]
pub mod auth;
pub mod cms;
pub mod course_material;
pub mod exercise_services;
pub mod files;
pub mod healthz;
pub mod helpers;
pub mod langs;
pub mod main_frontend;
pub mod other_domain_redirects;
pub mod study_registry;
pub mod tmc_server;
use crate::domain::error::{ControllerError, ControllerErrorType};
use actix_web::{
web::{self, ServiceConfig},
HttpRequest, HttpResponse, ResponseError,
};
use headless_lms_utils::prelude::*;
use serde::{Deserialize, Serialize};
#[cfg(feature = "ts_rs")]
use ts_rs::TS;
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
#[cfg_attr(feature = "ts_rs", derive(TS))]
pub struct UploadResult {
pub url: String,
}
pub fn configure_controllers(cfg: &mut ServiceConfig) {
cfg.service(web::scope("/course-material").configure(course_material::_add_routes))
.service(web::scope("/cms").configure(cms::_add_routes))
.service(web::scope("/files").configure(files::_add_routes))
.service(web::scope("/main-frontend").configure(main_frontend::_add_routes))
.service(web::scope("/auth").configure(auth::_add_routes))
.service(web::scope("/study-registry").configure(study_registry::_add_routes))
.service(web::scope("/exercise-services").configure(exercise_services::_add_routes))
.service(
web::scope("/other-domain-redirects").configure(other_domain_redirects::_add_routes),
)
.service(web::scope("/healthz").configure(healthz::_add_routes))
.service(web::scope("/langs").configure(langs::_add_routes))
.service(web::scope("/tmc-server").configure(tmc_server::_add_routes))
.default_service(web::to(not_found));
}
async fn not_found(req: HttpRequest) -> HttpResponse {
ControllerError::new(
ControllerErrorType::NotFound,
format!("No handler found for route '{}'", req.path()),
None,
)
.error_response()
}