headless_lms_server/controllers/course_material/
glossary.rs1use models::glossary::TermUpdate;
2
3use crate::prelude::*;
4
5#[instrument(skip(pool))]
6async fn update(
7    pool: web::Data<PgPool>,
8    acronym_id: web::Path<Uuid>,
9    update: web::Json<TermUpdate>,
10    user: AuthUser,
11) -> ControllerResult<HttpResponse> {
12    let mut conn = pool.acquire().await?;
13    models::glossary::update(&mut conn, *acronym_id, &update.term, &update.definition).await?;
14    let token = authorize(&mut conn, Act::View, Some(user.id), Res::AnyCourse).await?;
15    token.authorized_ok(HttpResponse::Ok().finish())
16}
17
18#[instrument(skip(pool))]
19async fn delete(
20    pool: web::Data<PgPool>,
21    acronym_id: web::Path<Uuid>,
22    user: AuthUser,
23) -> ControllerResult<HttpResponse> {
24    let mut conn = pool.acquire().await?;
25    models::glossary::delete(&mut conn, *acronym_id).await?;
26    let token = authorize(&mut conn, Act::View, Some(user.id), Res::AnyCourse).await?;
27    token.authorized_ok(HttpResponse::Ok().finish())
28}
29
30pub fn _add_routes(cfg: &mut ServiceConfig) {
38    cfg.route("/{id}/update", web::put().to(update))
39        .route("/{id}/delete", web::delete().to(delete));
40}