headless_lms_server/controllers/cms/
repository_exercises.rsuse crate::prelude::*;
use models::repository_exercises::{self, RepositoryExercise};
#[instrument(skip(pool))]
pub async fn get_for_course(
course_id: web::Path<Uuid>,
pool: web::Data<PgPool>,
user: Option<AuthUser>,
) -> ControllerResult<web::Json<Vec<RepositoryExercise>>> {
let mut conn = pool.acquire().await?;
let token = authorize(
&mut conn,
Act::Teach,
user.map(|u| u.id),
Res::Course(*course_id),
)
.await?;
let exercises = repository_exercises::get_for_course(&mut conn, *course_id).await?;
token.authorized_ok(web::Json(exercises))
}
pub fn _add_routes(cfg: &mut ServiceConfig) {
cfg.route("/{course_id}", web::get().to(get_for_course));
}