From a50354d76abc618f654c46a5053bfeef32d8c0dd Mon Sep 17 00:00:00 2001 From: foxx Date: Thu, 30 Nov 2023 12:21:39 -0500 Subject: [PATCH] remove request from queue only after success (status 200) from destination server --- src/main.rs | 6 ++++-- src/manage_requests/request_funcs.rs | 13 +++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index dda9adb..dea9e2a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -199,8 +199,10 @@ pub async fn main() { body = out_bind.get("body"); // println!("{} - {} - {} - {}", method, host, uri, body); - send_stored_request(http_proto.clone(), http_dest.clone(), uri.clone(), body.clone(), &interval_pool).await; - delete_request_from_db(uri.clone(), body.clone(), &interval_pool).await; + let send_success = send_stored_request(http_proto.clone(), http_dest.clone(), uri.clone(), body.clone(), &interval_pool).await; + if send_success { + delete_request_from_db(uri.clone(), body.clone(), &interval_pool).await; + } } // let result: String = out.expect("cannot execute query").get("host"); diff --git a/src/manage_requests/request_funcs.rs b/src/manage_requests/request_funcs.rs index 84ec9ee..1a14901 100644 --- a/src/manage_requests/request_funcs.rs +++ b/src/manage_requests/request_funcs.rs @@ -38,14 +38,23 @@ pub async fn delete_request_from_db(uri:String, body: String, pool: &Pool } -pub async fn send_stored_request(http_proto: String, http_dest: String, uri: String, body: String, pool: &Pool) { +pub async fn send_stored_request(http_proto: String, http_dest: String, uri: String, body: String, pool: &Pool) -> bool { let built_uri = format!("{}://{}{}", http_proto, http_dest, uri); println!("Sending Request;\n{}", built_uri); println!("{}\n", body); - let _res = reqwest::Client::new() + let res = reqwest::Client::new() .post(built_uri) .body(body) .send() .await; + let mut success = false; + if res.is_ok() { + match res.unwrap().status().as_u16() { + (200) => success = true, + _ => success = false + + } + } + success }