add send_request method
This commit is contained in:
parent
112f44e224
commit
ce21a8539d
15
src/limit.rs
15
src/limit.rs
|
@ -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 {
|
||||||
|
|
Loading…
Reference in New Issue