From 99e3aa22a28c7a95b9743933d83c2e64e50621be Mon Sep 17 00:00:00 2001 From: philipp Date: Fri, 19 Jan 2024 11:47:28 +0100 Subject: [PATCH] fix errors --- src/model/mail.rs | 142 ++++++++++++++++++++++------------------------ 1 file changed, 69 insertions(+), 73 deletions(-) diff --git a/src/model/mail.rs b/src/model/mail.rs index 9a3d518..c9da81d 100644 --- a/src/model/mail.rs +++ b/src/model/mail.rs @@ -66,91 +66,87 @@ impl Mail { pub async fn fees(db: &SqlitePool, smtp_pw: String) { let users = User::all_payer_groups(db).await; for user in users { - if user.has_role(db, "paid").await { - if user.name == "Philipp Hofer" { - let mut is_family = false; - let mut send_to = String::new(); - match Family::find_by_opt_id(db, user.family_id).await { - Some(family) => { - is_family = true; - for member in family.members(db).await { - if let Some(mail) = member.mail { - send_to.push_str(&format!("{mail},")) - } - } - } - None => { - if let Some(mail) = &user.mail { - send_to.push_str(&mail) + if !user.has_role(db, "paid").await { + let mut is_family = false; + let mut send_to = String::new(); + match Family::find_by_opt_id(db, user.family_id).await { + Some(family) => { + is_family = true; + for member in family.members(db).await { + if let Some(mail) = member.mail { + send_to.push_str(&format!("{mail},")) } } } + None => { + if let Some(mail) = &user.mail { + send_to.push_str(&mail) + } + } + } - let fees = user.fee(db).await; - if let Some(fees) = fees { - let mut content = format!( - "Liebes Vereinsmitglied, \n\ -\n + let fees = user.fee(db).await; + if let Some(fees) = fees { + let mut content = format!( + "Liebes Vereinsmitglied, \n\ dein Vereinsbeitrag für das aktuelle Jahr beträgt {}€", - fees.sum_in_cents / 100, - ); + fees.sum_in_cents / 100, + ); - if fees.parts.len() == 1 { - content.push_str(&format!(" ({}).\n", fees.parts[0].0)) - } else { - content - .push_str(". Dieser setzt sich aus folgenden Teilen zusammen: \n"); - for (desc, fee_in_cents) in fees.parts { - content.push_str(&format!("- {}: {}€\n", desc, fee_in_cents / 100)) - } + if fees.parts.len() == 1 { + content.push_str(&format!(" ({}).\n", fees.parts[0].0)) + } else { + content.push_str(". Dieser setzt sich aus folgenden Teilen zusammen: \n"); + for (desc, fee_in_cents) in fees.parts { + content.push_str(&format!("- {}: {}€\n", desc, fee_in_cents / 100)) } - if is_family { - content.push_str(&format!( - "Dieser gilt für die gesamte Familie ({}).\n", - fees.name - )) - } - content.push_str("\n Bitte überweise diesen auf folgendes Konto: IBAN: AT13 1200 0804 1300 1200. Auf https://app.rudernlinz.at/planned findest du einen QR Code, den du mit deiner Bankapp scannen kannst um alle Eingaben bereits ausgefüllt zu haben.\n\n\ -Falls die Berechnung nicht stimmt (korrekte Preise findest du unter https://rudernlinz.at/unser-verein/gebuhren/) melde dich bitte an it@rudernlinz.at. @Studenten: Bitte Bestätigung an it@rudernlinz.at schicken.\n\n\ + } + if is_family { + content.push_str(&format!( + "Dieser gilt für die gesamte Familie ({}).\n", + fees.name + )) + } + content.push_str("\nBitte überweise diesen auf folgendes Konto: IBAN: AT13 1200 0804 1300 1200. Auf https://app.rudernlinz.at/planned findest du einen QR Code, den du mit deiner Bankapp scannen kannst um alle Eingaben bereits ausgefüllt zu haben.\n\n\ +Falls die Berechnung nicht stimmt (korrekte Preise findest du unter https://rudernlinz.at/unser-verein/gebuhren/) melde dich bitte bei it@rudernlinz.at. @Studenten: Bitte die aktuelle Studienbestätigung an it@rudernlinz.at schicken.\n\n\ Beste Grüße\n\ Der Vorstand "); - let mut email = Message::builder() - .from( - "ASKÖ Ruderverein Donau Linz " - .parse() - .unwrap(), - ) - .reply_to( - "ASKÖ Ruderverein Donau Linz " - .parse() - .unwrap(), - ) - .to("ASKÖ Ruderverein Donau Linz " + let mut email = Message::builder() + .from( + "ASKÖ Ruderverein Donau Linz " .parse() - .unwrap()); - let splitted = send_to.split(','); - for single_rec in splitted { - email = email.bcc(single_rec.parse().unwrap()); - } - - let email = email - .subject("ASKÖ Ruderverein Donau Linz | Vereinsgebühren") - .header(ContentType::TEXT_PLAIN) - .body(content) - .unwrap(); - - let creds = - Credentials::new("no-reply@rudernlinz.at".to_owned(), smtp_pw.clone()); - - let mailer = SmtpTransport::relay("mail.your-server.de") - .unwrap() - .credentials(creds) - .build(); - - // Send the email - mailer.send(&email).unwrap(); + .unwrap(), + ) + .reply_to( + "ASKÖ Ruderverein Donau Linz " + .parse() + .unwrap(), + ) + .to("ASKÖ Ruderverein Donau Linz " + .parse() + .unwrap()); + let splitted = send_to.split(','); + for single_rec in splitted { + email = email.bcc(single_rec.parse().unwrap()); } + + let email = email + .subject("ASKÖ Ruderverein Donau Linz | Vereinsgebühren") + .header(ContentType::TEXT_PLAIN) + .body(content) + .unwrap(); + + let creds = + Credentials::new("no-reply@rudernlinz.at".to_owned(), smtp_pw.clone()); + + let mailer = SmtpTransport::relay("mail.your-server.de") + .unwrap() + .credentials(creds) + .build(); + + // Send the email + mailer.send(&email).unwrap(); } } }