mirror of
https://github.com/Drop-OSS/drop-app.git
synced 2025-11-14 08:41:21 +10:00
chore(cache): Added fetch_drop_object command
Signed-off-by: quexeky <git@quexeky.dev>
This commit is contained in:
@ -42,7 +42,7 @@ use process::commands::{kill_game, launch_game};
|
|||||||
use process::process_manager::ProcessManager;
|
use process::process_manager::ProcessManager;
|
||||||
use remote::auth::{self, generate_authorization_header, recieve_handshake};
|
use remote::auth::{self, generate_authorization_header, recieve_handshake};
|
||||||
use remote::commands::{
|
use remote::commands::{
|
||||||
auth_initiate, gen_drop_url, manual_recieve_handshake, retry_connect, sign_out, use_remote,
|
auth_initiate, fetch_drop_object, gen_drop_url, manual_recieve_handshake, retry_connect, sign_out, use_remote
|
||||||
};
|
};
|
||||||
use remote::requests::make_request;
|
use remote::requests::make_request;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
@ -237,6 +237,7 @@ pub fn run() {
|
|||||||
// Remote
|
// Remote
|
||||||
use_remote,
|
use_remote,
|
||||||
gen_drop_url,
|
gen_drop_url,
|
||||||
|
fetch_drop_object,
|
||||||
// Library
|
// Library
|
||||||
fetch_library,
|
fetch_library,
|
||||||
fetch_game,
|
fetch_game,
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
use cacache::Integrity;
|
use cacache::Integrity;
|
||||||
use openssl::hash::{hash, MessageDigest};
|
use serde::{de::DeserializeOwned, Serialize};
|
||||||
use rustix::path::Arg;
|
|
||||||
use serde::{de::DeserializeOwned, Deserialize, Serialize};
|
|
||||||
use serde_binary::binary_stream::Endian;
|
|
||||||
|
|
||||||
use crate::{database::db::borrow_db_checked, error::remote_access_error::RemoteAccessError};
|
use crate::{database::db::borrow_db_checked, error::remote_access_error::RemoteAccessError};
|
||||||
|
|
||||||
|
|||||||
@ -1,17 +1,16 @@
|
|||||||
use std::sync::Mutex;
|
use std::sync::Mutex;
|
||||||
|
|
||||||
|
use log::debug;
|
||||||
|
use reqwest::blocking::Client;
|
||||||
use tauri::{AppHandle, Emitter, Manager};
|
use tauri::{AppHandle, Emitter, Manager};
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
database::db::{borrow_db_checked, borrow_db_mut_checked, save_db},
|
database::db::{borrow_db_checked, borrow_db_mut_checked, save_db}, error::remote_access_error::RemoteAccessError, remote::{auth::generate_authorization_header, requests::make_request}, AppState, AppStatus
|
||||||
error::remote_access_error::RemoteAccessError,
|
|
||||||
AppState, AppStatus,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
auth::{auth_initiate_logic, recieve_handshake, setup},
|
auth::{auth_initiate_logic, recieve_handshake, setup}, cache::{cache_object, get_cached_object}, remote::use_remote_logic
|
||||||
remote::use_remote_logic,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
@ -35,6 +34,28 @@ pub fn gen_drop_url(path: String) -> Result<String, RemoteAccessError> {
|
|||||||
Ok(url.to_string())
|
Ok(url.to_string())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tauri::command]
|
||||||
|
pub fn fetch_drop_object(path: String) -> Result<Vec<u8>, RemoteAccessError> {
|
||||||
|
let drop_url = gen_drop_url(path.clone());
|
||||||
|
let req = make_request(
|
||||||
|
&Client::new(),
|
||||||
|
&[&path],
|
||||||
|
&[],
|
||||||
|
|r| { r.header("Authorization", generate_authorization_header()) }
|
||||||
|
)?.send();
|
||||||
|
|
||||||
|
match req {
|
||||||
|
Ok(data) => {
|
||||||
|
let data = data.bytes()?.to_vec();
|
||||||
|
cache_object(&path, &data)?;
|
||||||
|
Ok(data)
|
||||||
|
},
|
||||||
|
Err(e) => {
|
||||||
|
debug!("{}", e);
|
||||||
|
get_cached_object::<&str, Vec<u8>>(&path)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub fn sign_out(app: AppHandle) {
|
pub fn sign_out(app: AppHandle) {
|
||||||
// Clear auth from database
|
// Clear auth from database
|
||||||
|
|||||||
Reference in New Issue
Block a user