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