From 75cf0be90dad5179fba2e3af02a8d5a899cd4f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20Kaan=20G=C3=9CM=C3=9C=C5=9E?= <96421894+Tahinli@users.noreply.github.com> Date: Fri, 8 Mar 2024 02:43:31 +0300 Subject: [PATCH] feat: :sparkles: server status --- back/src/routing.rs | 2 +- front/Cargo.toml | 1 + front/src/main.rs | 86 +++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 86 insertions(+), 3 deletions(-) diff --git a/back/src/routing.rs b/back/src/routing.rs index 196c77b..ab60729 100644 --- a/back/src/routing.rs +++ b/back/src/routing.rs @@ -12,7 +12,7 @@ pub async fn routing(State(state): State) -> Router{ async fn alive() -> impl IntoResponse{ let alive_json = serde_json::json!({ - "status":"alive", + "status":"Alive", }); println!("Alive"); (StatusCode::OK, Json(alive_json)) diff --git a/front/Cargo.toml b/front/Cargo.toml index 5207066..2487670 100644 --- a/front/Cargo.toml +++ b/front/Cargo.toml @@ -8,3 +8,4 @@ edition = "2021" [dependencies] dioxus = { version = "0.5.0-alpha.0", features = ["web"] } reqwest = { version = "0.11.24", features = ["json"] } +serde = { version = "1.0.197", features = ["derive"] } diff --git a/front/src/main.rs b/front/src/main.rs index 2f1511f..7276e80 100644 --- a/front/src/main.rs +++ b/front/src/main.rs @@ -1,18 +1,100 @@ use dioxus::prelude::*; +use serde::Deserialize; +const SERVER_ADDRESS: &str = "http://localhost:2323"; +#[derive(Debug, Clone, PartialEq, Deserialize)] +struct ServerStatus{ + status: String, +} +#[derive(Debug, Clone, PartialEq, Deserialize)] +struct CoinStatus{ + status: String, +} fn main() { println!("Hello, world!"); launch(app); } +async fn server_status_check() ->Result { + Ok(reqwest::get(SERVER_ADDRESS).await.unwrap().json::().await.unwrap()) +} +async fn coin_status_check() -> Result { + Ok(reqwest::get(SERVER_ADDRESS).await.unwrap().json::().await.unwrap()) +} + fn app() -> Element { - rsx!{ + let server_status = use_resource(move || server_status_check()); + match &*server_status.value().read() { + Some(Ok(server_status)) => { + rsx! { + { page_base() } + h5 { + ShowServerStatus { server_status: server_status.clone() } + } + } + + } + Some(Err(_)) => { + rsx! { + { page_base() } + div { + "A" + } + } + } + None => { + rsx! { + { page_base() } + h5 { + "Server Status: Dead" + } + } + } + } +} + +fn page_base() ->Element { + rsx! { h1 { "Radioxide" } div { - audio{ autoplay:true, controls:true, muted:false, src:"https://playerservices.streamtheworld.com/api/livestream-redirect/METRO_FM128AAC.aac?/;stream.mp3" } + div { + class: "flex items-center", + span { + button { + "style":"width: 70px; height: 40px;", + "Coin Flip" + } + } + span { " " }, + span { } + } + + } + } +} + +#[component] +fn ShowServerStatus(server_status: ServerStatus) -> Element { + rsx! { + div { + div { class: "flex items-center", + span { "Server Status: " } + span { { server_status.status } } + } + } + } +} +#[component] +fn ShowCoinStatus(coin_status: CoinStatus) -> Element { + rsx! { + div { + div { class: "flex items-center", + span { "Coin Status: " } + span { { coin_status.status } } + } } } } \ No newline at end of file