headless_lms_server/controllers/cms/
email_templates.rs1use models::email_templates::{EmailTemplate, EmailTemplateUpdate};
4
5use crate::prelude::*;
6
7#[instrument(skip(pool))]
11async fn get_email_template(
12 email_template_id: web::Path<Uuid>,
13 pool: web::Data<PgPool>,
14 user: AuthUser,
15) -> ControllerResult<web::Json<EmailTemplate>> {
16 let mut conn = pool.acquire().await?;
17 let token = authorize(&mut conn, Act::Teach, Some(user.id), Res::AnyCourse).await?;
18 let email_templates =
19 models::email_templates::get_email_template(&mut conn, *email_template_id).await?;
20 token.authorized_ok(web::Json(email_templates))
21}
22
23#[instrument(skip(pool))]
27async fn update_email_template(
28 email_template_id: web::Path<Uuid>,
29 payload: web::Json<EmailTemplateUpdate>,
30 pool: web::Data<PgPool>,
31 user: AuthUser,
32) -> ControllerResult<web::Json<EmailTemplate>> {
33 let mut conn = pool.acquire().await?;
34 let token = authorize(&mut conn, Act::Teach, Some(user.id), Res::AnyCourse).await?;
35 let request_update_template = payload.0;
36 let updated_template = models::email_templates::update_email_template(
37 &mut conn,
38 *email_template_id,
39 request_update_template,
40 )
41 .await?;
42 token.authorized_ok(web::Json(updated_template))
43}
44
45pub fn _add_routes(cfg: &mut ServiceConfig) {
53 cfg.route("/{email_template_id}", web::get().to(get_email_template))
54 .route("/{email_template_id}", web::put().to(update_email_template));
55}