aboutsummaryrefslogtreecommitdiff
path: root/src-tauri/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src-tauri/src/main.rs')
-rw-r--r--src-tauri/src/main.rs50
1 files changed, 50 insertions, 0 deletions
diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs
index 4be2da2..a0c9a33 100644
--- a/src-tauri/src/main.rs
+++ b/src-tauri/src/main.rs
@@ -1290,6 +1290,55 @@ async fn handle_log_read_response(response: Response) -> String {
}
#[tauri::command]
+async fn errlog_read(logfile: String, state: State<'_, Mutex<Session>>) -> Result<String, ()> {
+ let (client, instance) = {
+ let state = state.lock().unwrap();
+ (state.client.clone(), state.instance.clone())
+ };
+ let instance = match instance {
+ Some(instance) => instance,
+ None => {
+ return Ok(String::from(
+ "Keine Instanz ausgewählt, bitte melden Sie sich neu an!",
+ ))
+ }
+ };
+
+ let response = client
+ .get(instance.url.join("/data/read").unwrap())
+ .query(&[("path", format!("/data/{}", logfile))])
+ .basic_auth("rustkrazy", Some(&instance.password))
+ .send();
+
+ Ok(match response.await {
+ Ok(response) => handle_errlog_read_response(response).await,
+ Err(e) => format!("Abfrage fehlgeschlagen: {}", e),
+ })
+}
+
+async fn handle_errlog_read_response(response: Response) -> String {
+ let status = response.status();
+ if status.is_success() {
+ match response.text().await {
+ Ok(logs) => logs,
+ Err(e) => format!("Keinen Text vom Server erhalten. Fehler: {}", e),
+ }
+ } else if status == StatusCode::UNAUTHORIZED {
+ String::from("Ungültiges Verwaltungspasswort, bitte melden Sie sich neu an!")
+ } else if status == StatusCode::NOT_FOUND {
+ String::from(
+ "Protokolldatei existiert nicht, möglicherweise ist der Dienst noch nicht gestartet",
+ )
+ } else if status.is_client_error() {
+ format!("Clientseitiger Fehler: {}", status)
+ } else if status.is_server_error() {
+ format!("Serverseitiger Fehler: {}", status)
+ } else {
+ format!("Unerwarteter Statuscode: {}", status)
+ }
+}
+
+#[tauri::command]
async fn vpnclients(state: State<'_, Mutex<Session>>) -> Result<VpnClients, ()> {
let (client, instance) = {
let state = state.lock().unwrap();
@@ -1639,6 +1688,7 @@ fn main() {
reboot,
shutdown,
log_read,
+ errlog_read,
vpnclients,
vpndel,
vpnadd