headless_lms_server/controllers/cms/
repository_exercises.rs1use crate::prelude::*;
2use models::repository_exercises::{self, RepositoryExercise};
3
4#[instrument(skip(pool))]
5pub async fn get_for_course(
6 course_id: web::Path<Uuid>,
7 pool: web::Data<PgPool>,
8 user: Option<AuthUser>,
9) -> ControllerResult<web::Json<Vec<RepositoryExercise>>> {
10 let mut conn = pool.acquire().await?;
11 let token = authorize(
12 &mut conn,
13 Act::Teach,
14 user.map(|u| u.id),
15 Res::Course(*course_id),
16 )
17 .await?;
18
19 let exercises = repository_exercises::get_for_course(&mut conn, *course_id).await?;
20 token.authorized_ok(web::Json(exercises))
21}
22
23pub fn _add_routes(cfg: &mut ServiceConfig) {
31 cfg.route("/{course_id}", web::get().to(get_for_course));
32}