fix: better error managment

This commit is contained in:
Alzalia 2025-09-04 18:33:28 +02:00
parent 9cef4843f0
commit 36b1b6c223

View file

@ -14,6 +14,20 @@ use serde_json::{Value, json};
// Ok(contents)
// }
fn return_error() -> Json<Value> {
Json(json!(
{
"title": "Error",
"cards": [
{
"title": "An error occured",
"content": "Try reloading the page, or going back to the main page. Sorry !"
}
]
}
))
}
// ====================
// =====< ROUTES >=====
// ====================
@ -21,43 +35,51 @@ use serde_json::{Value, json};
pub async fn get_home(Path(lang): Path<String>) -> Json<Value> {
let raw_url = dotenv::var("RAW_URL").expect("http://localhost");
if let Ok(response) = reqwest::get(format!("{raw_url}/res/{lang}/home.json")).await {
Json(response.json().await.unwrap())
if let Ok(result) = response.json().await {
Json(result)
} else {
Json(
json!({"title": "Error", "cards": [{ "title": "An error occured", "content": "Try reloading the page, or going back to the main page. Sorry !"}]}),
)
return_error()
}
} else {
return_error()
}
}
pub async fn get_projects(Path(lang): Path<String>) -> Json<Value> {
let raw_url = dotenv::var("RAW_URL").expect("http://localhost");
if let Ok(response) = reqwest::get(format!("{raw_url}/res/{lang}/projects.json")).await {
Json(response.json().await.unwrap())
if let Ok(result) = response.json().await {
Json(result)
} else {
Json(
json!({"title": "Error", "cards": [{ "title": "An error occured", "content": "Try reloading the page, or going back to the main page. Sorry !"}]}),
)
return_error()
}
} else {
return_error()
}
}
pub async fn get_lessons(Path(lang): Path<String>) -> Json<Value> {
let raw_url = dotenv::var("RAW_URL").expect("http://localhost");
if let Ok(response) = reqwest::get(format!("{raw_url}/res/{lang}/lessons.json")).await {
Json(response.json().await.unwrap())
if let Ok(result) = response.json().await {
Json(result)
} else {
Json(
json!({"title": "Error", "cards": [{ "title": "An error occured", "content": "Try reloading the page, or going back to the main page. Sorry !"}]}),
)
return_error()
}
} else {
return_error()
}
}
pub async fn get_lessons_by_id(Path((lang, id)): Path<(String, String)>) -> Json<Value> {
let raw_url = dotenv::var("RAW_URL").expect("http://localhost");
if let Ok(response) = reqwest::get(format!("{raw_url}/res/{lang}/lessons/{id}.json")).await {
Json(response.json().await.unwrap())
if let Ok(result) = response.json().await {
Json(result)
} else {
Json(
json!({"title": "Error", "cards": [{ "title": "An error occured", "content": "Try reloading the page, or going back to the main page. Sorry !"}]}),
)
return_error()
}
} else {
return_error()
}
}