headless_lms_server/controllers/helpers/email_content.rs
1use headless_lms_utils::email_processor::EmailGutenbergBlock;
2
3use crate::prelude::*;
4
5/// Parses an email body the way the sender will, so a body it cannot send is rejected on save.
6pub fn parse_email_content(
7 content: &serde_json::Value,
8) -> Result<Vec<EmailGutenbergBlock>, ControllerError> {
9 serde_json::from_value(content.clone()).map_err(|err| {
10 ControllerError::new(
11 ControllerErrorType::BadRequest,
12 format!("The email content cannot be sent: {err}"),
13 None,
14 )
15 })
16}