mirror of
https://github.com/Drop-OSS/drop-app.git
synced 2025-11-14 08:41:21 +10:00
refactor(remote): Created separate function to generate requests
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
pub mod auth;
|
||||
pub mod commands;
|
||||
pub mod remote;
|
||||
pub mod requests;
|
||||
26
src-tauri/src/remote/requests.rs
Normal file
26
src-tauri/src/remote/requests.rs
Normal file
@ -0,0 +1,26 @@
|
||||
use std::ops::Deref;
|
||||
|
||||
use reqwest::blocking::{Client, RequestBuilder, Response};
|
||||
use url::{ParseError, Url};
|
||||
|
||||
use crate::{database::db::DatabaseImpls, error::remote_access_error::RemoteAccessError, DB};
|
||||
|
||||
pub fn make_request<'a, T: AsRef<str>, F: FnOnce(RequestBuilder) -> RequestBuilder>(
|
||||
client: &Client,
|
||||
endpoints: &[T],
|
||||
params: &[(T, T)],
|
||||
f: F,
|
||||
) -> Result<RequestBuilder, RemoteAccessError> {
|
||||
let mut base_url = DB.fetch_base_url();
|
||||
for endpoint in endpoints {
|
||||
base_url = base_url.join(endpoint.as_ref())?;
|
||||
}
|
||||
{
|
||||
let mut queries = base_url.query_pairs_mut();
|
||||
for (param, val) in params {
|
||||
queries.append_pair(param.as_ref(), val.as_ref());
|
||||
}
|
||||
}
|
||||
let response = client.get(base_url);
|
||||
Ok(f(response))
|
||||
}
|
||||
Reference in New Issue
Block a user