diff --git a/src/service/core.rs b/src/service/core.rs index b10166c..4ecb832 100644 --- a/src/service/core.rs +++ b/src/service/core.rs @@ -39,7 +39,7 @@ impl Service { let events_req = super::event::Event { app: self.app.clone(), - token: self.token.clone() + token: self.token.clone(), }; let scheduled_message_id = queue_item.id; @@ -51,8 +51,13 @@ impl Service { } }; - // for event in &events { - while let Some(event) = &events { + let events = if events.is_some() { + events.unwrap() + } else { + Vec::new() + }; + + for event in events { println!("Event: {event:?}"); } @@ -67,12 +72,13 @@ impl Service { 1. Check the queue - Done 2. If there is an item, get the data - Done - 3. Evaluate if it is schedulable - 4. Get the events and iterate each one + 3. Evaluate if it is schedulable - Done + 4. Get the events and iterate each one - Done 5. starting with the message 6. Get the contact 7. Send the message 8. Record the message event response + 9. Add to scheduler "# ); } diff --git a/src/service/event.rs b/src/service/event.rs index 8c0f255..2c63a39 100644 --- a/src/service/event.rs +++ b/src/service/event.rs @@ -7,9 +7,11 @@ impl Event { pub async fn get( &self, scheduled_message_id: &uuid::Uuid, - ) -> Result, std::io::Error> { + ) -> Result, std::io::Error> + { let client = reqwest::Client::new(); - let endpoint = format!("api/v1/schedule/message/event?scheduled_message_id={scheduled_message_id}"); + let endpoint = + format!("api/v1/schedule/message/event?scheduled_message_id={scheduled_message_id}"); let api_url = format!("{}/{endpoint}", self.app.api_url); println!("Url: {api_url:?}"); @@ -18,15 +20,13 @@ impl Event { match client.get(api_url).header(key, header).send().await { Ok(response) => match response.status() { - reqwest::StatusCode::OK => { - match response.text().await { - Ok(val) => match parse_response(&val).await { - Ok(login_result) => Ok(login_result), - Err(err) => Err(err), - }, - Err(err) => Err(std::io::Error::other(err)), - } - } + reqwest::StatusCode::OK => match response.text().await { + Ok(val) => match parse_response(&val).await { + Ok(login_result) => Ok(login_result), + Err(err) => Err(err), + }, + Err(err) => Err(std::io::Error::other(err)), + }, _ => Err(std::io::Error::other("Error getting token")), }, Err(err) => Err(std::io::Error::other(err.to_string())), @@ -38,31 +38,31 @@ async fn parse_response( response: &str, ) -> Result, std::io::Error> { match serde_json::from_str::(response) { - Ok(j) => { - match j.get("data") { - Some(serde_json::Value::Array(lrs)) => { - if lrs.is_empty() { - Err(std::io::Error::other("Error response is empty")) - } else { - let mut events: Vec = Vec::new(); + Ok(j) => match j.get("data") { + Some(serde_json::Value::Array(lrs)) => { + if lrs.is_empty() { + Err(std::io::Error::other("Error response is empty")) + } else { + let mut events: Vec< + textsender_models::message::scheduling::ScheduledMessageEvent, + > = Vec::new(); - for event in lrs.iter() { - let ll: textsender_models::message::scheduling::ScheduledMessageEvent = - match serde_json::from_value(event.clone()) { - Ok(lr) => lr, - Err(err) => { - return Err(std::io::Error::other(err.to_string())); - } - }; - events.push(ll); - } - - Ok(events) + for event in lrs.iter() { + let ll: textsender_models::message::scheduling::ScheduledMessageEvent = + match serde_json::from_value(event.clone()) { + Ok(lr) => lr, + Err(err) => { + return Err(std::io::Error::other(err.to_string())); + } + }; + events.push(ll); } + + Ok(events) } - _ => Err(std::io::Error::other("Error parsing response")), } - } + _ => Err(std::io::Error::other("Error parsing response")), + }, Err(err) => Err(std::io::Error::other(err.to_string())), } }