You've already forked AstralRinth
forked from didirus/AstralRinth
Logs api (#103)
* not compiling; just to commit * working logs commit * prettier; clippy * delete logs functions * Reverted change * mislabeled doc tag
This commit is contained in:
61
theseus_gui/src-tauri/src/api/logs.rs
Normal file
61
theseus_gui/src-tauri/src/api/logs.rs
Normal file
@@ -0,0 +1,61 @@
|
||||
use crate::api::Result;
|
||||
use theseus::logs::{self, Logs};
|
||||
use uuid::Uuid;
|
||||
|
||||
/*
|
||||
A log is a struct containing the datetime string, stdout, and stderr, as follows:
|
||||
|
||||
pub struct Logs {
|
||||
pub datetime_string: String,
|
||||
pub stdout: String,
|
||||
pub stderr: String,
|
||||
}
|
||||
*/
|
||||
|
||||
/// Get all Logs for a profile, sorted by datetime
|
||||
#[tauri::command]
|
||||
pub async fn logs_get_logs(profile_uuid: Uuid) -> Result<Vec<Logs>> {
|
||||
Ok(logs::get_logs(profile_uuid).await?)
|
||||
}
|
||||
|
||||
/// Get a Log struct for a profile by profile id and datetime string
|
||||
#[tauri::command]
|
||||
pub async fn logs_get_logs_by_datetime(
|
||||
profile_uuid: Uuid,
|
||||
datetime_string: String,
|
||||
) -> Result<Logs> {
|
||||
Ok(logs::get_logs_by_datetime(profile_uuid, datetime_string).await?)
|
||||
}
|
||||
|
||||
/// Get the stdout for a profile by profile id and datetime string
|
||||
#[tauri::command]
|
||||
pub async fn logs_get_stdout_by_datetime(
|
||||
profile_uuid: Uuid,
|
||||
datetime_string: String,
|
||||
) -> Result<String> {
|
||||
Ok(logs::get_stdout_by_datetime(profile_uuid, &datetime_string).await?)
|
||||
}
|
||||
|
||||
/// Get the stderr for a profile by profile id and datetime string
|
||||
#[tauri::command]
|
||||
pub async fn logs_get_stderr_by_datetime(
|
||||
profile_uuid: Uuid,
|
||||
datetime_string: String,
|
||||
) -> Result<String> {
|
||||
Ok(logs::get_stderr_by_datetime(profile_uuid, &datetime_string).await?)
|
||||
}
|
||||
|
||||
/// Delete all logs for a profile by profile id
|
||||
#[tauri::command]
|
||||
pub async fn logs_delete_logs(profile_uuid: Uuid) -> Result<()> {
|
||||
Ok(logs::delete_logs(profile_uuid).await?)
|
||||
}
|
||||
|
||||
/// Delete a log for a profile by profile id and datetime string
|
||||
#[tauri::command]
|
||||
pub async fn logs_delete_logs_by_datetime(
|
||||
profile_uuid: Uuid,
|
||||
datetime_string: String,
|
||||
) -> Result<()> {
|
||||
Ok(logs::delete_logs_by_datetime(profile_uuid, &datetime_string).await?)
|
||||
}
|
||||
@@ -4,7 +4,7 @@ use thiserror::Error;
|
||||
|
||||
pub mod auth;
|
||||
pub mod jre;
|
||||
|
||||
pub mod logs;
|
||||
pub mod metadata;
|
||||
pub mod pack;
|
||||
pub mod process;
|
||||
|
||||
@@ -101,6 +101,12 @@ fn main() {
|
||||
api::metadata::metadata_get_game_versions,
|
||||
api::metadata::metadata_get_fabric_versions,
|
||||
api::metadata::metadata_get_forge_versions,
|
||||
api::logs::logs_get_logs,
|
||||
api::logs::logs_get_logs_by_datetime,
|
||||
api::logs::logs_get_stdout_by_datetime,
|
||||
api::logs::logs_get_stderr_by_datetime,
|
||||
api::logs::logs_delete_logs,
|
||||
api::logs::logs_delete_logs_by_datetime,
|
||||
])
|
||||
.run(tauri::generate_context!())
|
||||
.expect("error while running tauri application");
|
||||
|
||||
47
theseus_gui/src/helpers/logs.js
Normal file
47
theseus_gui/src/helpers/logs.js
Normal file
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* All theseus API calls return serialized values (both return values and errors);
|
||||
* So, for example, addDefaultInstance creates a blank Profile object, where the Rust struct is serialized,
|
||||
* and deserialized into a usable JS object.
|
||||
*/
|
||||
import { invoke } from '@tauri-apps/api/tauri'
|
||||
|
||||
/*
|
||||
A log is a struct containing the datetime string, stdout, and stderr, as follows:
|
||||
|
||||
pub struct Logs {
|
||||
pub datetime_string: String,
|
||||
pub stdout: String,
|
||||
pub stderr: String,
|
||||
}
|
||||
*/
|
||||
|
||||
/// Get all logs that exist for a given profile
|
||||
/// This is returned as an array of Log objects, sorted by datetime_string (the folder name, when the log was created)
|
||||
export async function get_logs(profileUuid) {
|
||||
return await invoke('logs_get_logs', { profileUuid })
|
||||
}
|
||||
|
||||
/// Get a profile's log by datetime_string (the folder name, when the log was created)
|
||||
export async function get_logs_by_datetime(profileUuid, datetimeString) {
|
||||
return await invoke('logs_get_logs_by_datetime', { profileUuid, datetimeString })
|
||||
}
|
||||
|
||||
/// Get a profile's stdout only by datetime_string (the folder name, when the log was created)
|
||||
export async function get_stdout_by_datetime(profileUuid, datetimeString) {
|
||||
return await invoke('logs_get_stdout_by_datetime', { profileUuid, datetimeString })
|
||||
}
|
||||
|
||||
/// Get a profile's stderr only by datetime_string (the folder name, when the log was created)
|
||||
export async function get_stderr_by_datetime(profileUuid, datetimeString) {
|
||||
return await invoke('logs_get_stderr_by_datetime', { profileUuid, datetimeString })
|
||||
}
|
||||
|
||||
/// Delete a profile's log by datetime_string (the folder name, when the log was created)
|
||||
export async function delete_logs_by_datetime(profileUuid, datetimeString) {
|
||||
return await invoke('logs_delete_logs_by_datetime', { profileUuid, datetimeString })
|
||||
}
|
||||
|
||||
/// Delete all logs for a given profile
|
||||
export async function delete_logs(profileUuid) {
|
||||
return await invoke('logs_delete_logs', { profileUuid })
|
||||
}
|
||||
Reference in New Issue
Block a user