fix: type annotations in marketing/email.rs
Some checks failed
BotServer CI/CD / build (push) Failing after 5m41s
Some checks failed
BotServer CI/CD / build (push) Failing after 5m41s
This commit is contained in:
parent
71b39a8cdd
commit
8fcd57bc78
1 changed files with 8 additions and 6 deletions
|
|
@ -145,9 +145,10 @@ pub async fn send_campaign_email(
|
||||||
|
|
||||||
let email_service = EmailService::new(state.clone());
|
let email_service = EmailService::new(state.clone());
|
||||||
match email_service.send_email(&payload.to, &payload.subject, &body, bot_id, None) {
|
match email_service.send_email(&payload.to, &payload.subject, &body, bot_id, None) {
|
||||||
Ok(message_id) => {
|
Ok(msg_id) => {
|
||||||
|
let msg_id_str: String = msg_id;
|
||||||
diesel::update(email_tracking::table.filter(email_tracking::id.eq(tracking_id)))
|
diesel::update(email_tracking::table.filter(email_tracking::id.eq(tracking_id)))
|
||||||
.set(email_tracking::message_id.eq(Some(message_id.clone())))
|
.set(email_tracking::message_id.eq(Some(msg_id_str)))
|
||||||
.execute(&mut conn)
|
.execute(&mut conn)
|
||||||
.ok();
|
.ok();
|
||||||
|
|
||||||
|
|
@ -163,18 +164,19 @@ pub async fn send_campaign_email(
|
||||||
|
|
||||||
Ok(EmailSendResult {
|
Ok(EmailSendResult {
|
||||||
success: true,
|
success: true,
|
||||||
message_id: Some(message_id),
|
message_id: Some(msg_id),
|
||||||
tracking_id: Some(tracking_id),
|
tracking_id: Some(tracking_id),
|
||||||
error: None,
|
error: None,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
if let Some(recipient_id) = payload.recipient_id {
|
if let Some(recipient_id) = payload.recipient_id {
|
||||||
|
let err_msg: String = e.clone();
|
||||||
diesel::update(marketing_recipients::table.filter(marketing_recipients::id.eq(recipient_id)))
|
diesel::update(marketing_recipients::table.filter(marketing_recipients::id.eq(recipient_id)))
|
||||||
.set((
|
.set((
|
||||||
marketing_recipients::status.eq("failed"),
|
marketing_recipients::status.eq("failed"),
|
||||||
marketing_recipients::failed_at.eq(Some(Utc::now())),
|
marketing_recipients::failed_at.eq(Some(Utc::now())),
|
||||||
marketing_recipients::error_message.eq(Some(e.clone())),
|
marketing_recipients::error_message.eq(Some(err_msg)),
|
||||||
))
|
))
|
||||||
.execute(&mut conn)
|
.execute(&mut conn)
|
||||||
.ok();
|
.ok();
|
||||||
|
|
@ -203,8 +205,8 @@ pub async fn get_campaign_email_metrics(
|
||||||
.map_err(|e| format!("Query error: {}", e))?;
|
.map_err(|e| format!("Query error: {}", e))?;
|
||||||
|
|
||||||
let total = results.len() as i64;
|
let total = results.len() as i64;
|
||||||
let opened = results.iter().filter(|(o, _)| o.unwrap_or(false)).count() as i64;
|
let opened = results.iter().filter(|(o, _): &(Option<bool>, Option<bool>)| o.unwrap_or(false)).count() as i64;
|
||||||
let clicked = results.iter().filter(|(_, c)| c.unwrap_or(false)).count() as i64;
|
let clicked = results.iter().filter(|(_, c): &(Option<bool>, Option<bool>)| c.unwrap_or(false)).count() as i64;
|
||||||
|
|
||||||
let recipients: Vec<(String, Option<DateTime<Utc>>)> = marketing_recipients::table
|
let recipients: Vec<(String, Option<DateTime<Utc>>)> = marketing_recipients::table
|
||||||
.filter(marketing_recipients::campaign_id.eq(campaign_id))
|
.filter(marketing_recipients::campaign_id.eq(campaign_id))
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue