Use Instance.client instead of creating a new one.

This commit is contained in:
Flori Weber 2023-06-20 22:42:08 +02:00
parent 27047ab909
commit 2233063d5f
No known key found for this signature in database
GPG Key ID: 0ACD574FCF5226CF
1 changed files with 12 additions and 11 deletions

View File

@ -1,8 +1,9 @@
use reqwest::{Client, RequestBuilder, Response}; use reqwest::{RequestBuilder, Response};
use crate::{ use crate::{
api::limits::{Limit, LimitType, Limits, LimitsMutRef}, api::limits::{Limit, LimitType, Limits, LimitsMutRef},
errors::ChorusLibError, errors::ChorusLibError,
instance::Instance,
}; };
#[derive(Debug)] #[derive(Debug)]
@ -40,10 +41,10 @@ impl LimitedRequester {
pub async fn send_request( pub async fn send_request(
request: RequestBuilder, request: RequestBuilder,
limit_type: LimitType, limit_type: LimitType,
instance_rate_limits: &mut Limits, instance: &mut Instance,
user_rate_limits: &mut Limits, user_rate_limits: &mut Limits,
) -> Result<Response, ChorusLibError> { ) -> Result<Response, ChorusLibError> {
if LimitedRequester::can_send_request(limit_type, instance_rate_limits, user_rate_limits) { if LimitedRequester::can_send_request(limit_type, &instance.limits, user_rate_limits) {
let built_request = match request.build() { let built_request = match request.build() {
Ok(request) => request, Ok(request) => request,
Err(e) => { Err(e) => {
@ -53,7 +54,7 @@ impl LimitedRequester {
}); });
} }
}; };
let result = Client::new().execute(built_request).await; let result = instance.client.execute(built_request).await;
let response = match result { let response = match result {
Ok(is_response) => is_response, Ok(is_response) => is_response,
Err(e) => { Err(e) => {
@ -65,7 +66,7 @@ impl LimitedRequester {
LimitedRequester::update_limits( LimitedRequester::update_limits(
&response, &response,
limit_type, limit_type,
instance_rate_limits, &mut instance.limits,
user_rate_limits, user_rate_limits,
); );
if !response.status().is_success() { if !response.status().is_success() {
@ -256,17 +257,17 @@ mod rate_limit {
String::from("http://localhost:3001/cdn"), String::from("http://localhost:3001/cdn"),
); );
let mut request: Option<Result<Response, ChorusLibError>> = None; let mut request: Option<Result<Response, ChorusLibError>> = None;
let mut instance_rate_limits = Limits::check_limits(urls.api.clone()).await; let mut instance = Instance::new(urls.clone()).await.unwrap();
let mut user_rate_limits = Limits::check_limits(urls.api.clone()).await; let mut user_rate_limits = Limits::check_limits(urls.api.clone()).await;
for _ in 0..=50 { for _ in 0..=50 {
let request_path = urls.api.clone() + "/some/random/nonexisting/path"; let request_path = urls.api.clone() + "/some/random/nonexisting/path";
let request_builder = Client::new().get(request_path); let request_builder = instance.client.get(request_path);
request = Some( request = Some(
LimitedRequester::send_request( LimitedRequester::send_request(
request_builder, request_builder,
LimitType::Channel, LimitType::Channel,
&mut instance_rate_limits, &mut instance,
&mut user_rate_limits, &mut user_rate_limits,
) )
.await, .await,
@ -282,15 +283,15 @@ mod rate_limit {
String::from("wss://localhost:3001/"), String::from("wss://localhost:3001/"),
String::from("http://localhost:3001/cdn"), String::from("http://localhost:3001/cdn"),
); );
let mut instance_rate_limits = Limits::check_limits(urls.api.clone()).await; let mut instance = Instance::new(urls.clone()).await.unwrap();
let mut user_rate_limits = Limits::check_limits(urls.api.clone()).await; let mut user_rate_limits = Limits::check_limits(urls.api.clone()).await;
let _requester = LimitedRequester; let _requester = LimitedRequester;
let request_path = urls.api.clone() + "/policies/instance/limits"; let request_path = urls.api.clone() + "/policies/instance/limits";
let request_builder = Client::new().get(request_path); let request_builder = instance.client.get(request_path);
let request = LimitedRequester::send_request( let request = LimitedRequester::send_request(
request_builder, request_builder,
LimitType::Channel, LimitType::Channel,
&mut instance_rate_limits, &mut instance,
&mut user_rate_limits, &mut user_rate_limits,
) )
.await; .await;