headless_lms_server/controllers/main_frontend/
feedback.rs1use models::feedback;
2
3use crate::prelude::*;
4
5#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)]
6#[cfg_attr(feature = "ts_rs", derive(TS))]
7pub struct MarkAsRead {
8 read: bool,
9}
10
11#[instrument(skip(pool))]
15pub async fn mark_as_read(
16 feedback_id: web::Path<Uuid>,
17 mark_as_read: web::Json<MarkAsRead>,
18 pool: web::Data<PgPool>,
19 user: AuthUser,
20) -> ControllerResult<HttpResponse> {
21 let mut conn = pool.acquire().await?;
22 feedback::mark_as_read(&mut conn, *feedback_id, mark_as_read.into_inner().read).await?;
23
24 let token = authorize(&mut conn, Act::Teach, Some(user.id), Res::AnyCourse).await?;
25 token.authorized_ok(HttpResponse::Ok().finish())
26}
27
28pub fn _add_routes(cfg: &mut ServiceConfig) {
36 cfg.route("/{feedback_id}", web::post().to(mark_as_read));
37}