add send_request method

This commit is contained in:
bitfl0wer 2023-04-14 22:22:23 +02:00
parent eb67dda8b0
commit f8da39b3d2
1 changed files with 17 additions and 6 deletions

View File

@ -33,11 +33,22 @@ impl LimitedRequester {
} }
pub async fn send_request(&mut self, request: RequestBuilder, limit_type: LimitType) { pub async fn send_request(&mut self, request: RequestBuilder, limit_type: LimitType) {
if self.can_send_request(limit_type) {
let built_request = request
.build()
.unwrap_or_else(|e| panic!("Error while building the Request for sending: {}", e));
let result = self.http.execute(built_request).await;
let response = match result {
Ok(is_response) => is_response,
Err(e) => panic!("An error occured while processing the response: {}", e),
};
self.update_limits(response, limit_type);
} else {
self.requests.push_back(TypedRequest { self.requests.push_back(TypedRequest {
request: request, request: request,
limit_type: limit_type, limit_type: limit_type,
}); });
// TODO: Implement }
} }
fn update_limit_entry(entry: &mut Limit, reset: u64, remaining: u64, limit: u64) { fn update_limit_entry(entry: &mut Limit, reset: u64, remaining: u64, limit: u64) {
@ -51,7 +62,7 @@ impl LimitedRequester {
} }
} }
pub fn can_send_request(self, limit_type: LimitType) -> bool { pub fn can_send_request(&mut self, limit_type: LimitType) -> bool {
let limits = self.limits_rate.get(&limit_type); let limits = self.limits_rate.get(&limit_type);
match limits { match limits {