sender Build / Rustfmt (pull_request) Successful in 33s
sender Build / build (pull_request) Successful in 48s
sender Build / Check (pull_request) Successful in 28s
sender Build / Test Suite (pull_request) Failing after 39s
sender Build / Clippy (pull_request) Failing after 34s
43 lines
1.3 KiB
Rust
43 lines
1.3 KiB
Rust
use textsender_models::config::auxiliary::TwilioConfig;
|
|
use textsender_models::contact::Contact;
|
|
use textsender_models::message::Message;
|
|
|
|
pub async fn send_messages(
|
|
config: &TwilioConfig,
|
|
contacts: &Vec<Contact>,
|
|
message: &Message,
|
|
second_interval: u64,
|
|
) {
|
|
let long_sleep_limit: i64 = 5;
|
|
let mut count: i64 = 0;
|
|
|
|
for contact in contacts {
|
|
println!("Sending to: {:?}", contact.phone_number);
|
|
let param = swoosh::twilio::types::Parameters {
|
|
schedule: false,
|
|
schedule_at: None,
|
|
};
|
|
match swoosh::twilio::api::send_mssage(message, contact, param, config).await {
|
|
Ok(response) => {
|
|
println!("Raw response: {response:?}");
|
|
let val = swoosh::twilio::api::response_to_json(response).await;
|
|
println!("Response: {val:?}");
|
|
}
|
|
Err(err) => {
|
|
eprintln!("Error: {err:?}");
|
|
}
|
|
}
|
|
|
|
if count % long_sleep_limit == 0 {
|
|
// Sleep for X seconds
|
|
let wait_time = second_interval;
|
|
std::thread::sleep(std::time::Duration::from_secs(wait_time));
|
|
} else {
|
|
// Sleep for a second
|
|
std::thread::sleep(std::time::Duration::from_secs(1));
|
|
}
|
|
|
|
count += 1;
|
|
}
|
|
}
|