Fix Error Handling

This commit is contained in:
spikecodes 2020-11-19 21:08:22 -08:00
parent 1960e8a0fb
commit 0a3f333a97
3 changed files with 78 additions and 25 deletions

95
Cargo.lock generated
View File

@ -47,7 +47,7 @@ dependencies = [
"actix-service",
"actix-threadpool",
"actix-utils",
"base64 0.13.0",
"base64",
"bitflags",
"brotli2",
"bytes",
@ -76,7 +76,7 @@ dependencies = [
"regex",
"serde",
"serde_json",
"serde_urlencoded",
"serde_urlencoded 0.6.1",
"sha-1",
"slab",
"time 0.2.23",
@ -243,7 +243,7 @@ dependencies = [
"regex",
"serde",
"serde_json",
"serde_urlencoded",
"serde_urlencoded 0.6.1",
"socket2",
"time 0.2.23",
"tinyvec",
@ -356,7 +356,7 @@ dependencies = [
"actix-http",
"actix-rt",
"actix-service",
"base64 0.13.0",
"base64",
"bytes",
"cfg-if 1.0.0",
"derive_more",
@ -367,7 +367,7 @@ dependencies = [
"rand",
"serde",
"serde_json",
"serde_urlencoded",
"serde_urlencoded 0.6.1",
]
[[package]]
@ -390,12 +390,6 @@ version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b"
[[package]]
name = "base64"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
[[package]]
name = "base64"
version = "0.13.0"
@ -504,6 +498,16 @@ dependencies = [
"bitflags",
]
[[package]]
name = "console_error_panic_hook"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211"
dependencies = [
"cfg-if 0.1.10",
"wasm-bindgen",
]
[[package]]
name = "const_fn"
version = "0.4.3"
@ -1364,6 +1368,12 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b"
[[package]]
name = "pin-project-lite"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c"
[[package]]
name = "pin-utils"
version = "0.1.0"
@ -1524,11 +1534,11 @@ dependencies = [
[[package]]
name = "reqwest"
version = "0.10.8"
version = "0.10.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9eaa17ac5d7b838b7503d118fa16ad88f440498bf9ffe5424e621f93190d61e"
checksum = "fb15d6255c792356a0f578d8a645c677904dc02e862bebe2ecc18e0c01b9a0ce"
dependencies = [
"base64 0.12.3",
"base64",
"bytes",
"encoding_rs",
"futures-core",
@ -1545,14 +1555,15 @@ dependencies = [
"mime_guess",
"native-tls",
"percent-encoding",
"pin-project-lite",
"pin-project-lite 0.2.0",
"serde",
"serde_urlencoded",
"serde_urlencoded 0.7.0",
"tokio",
"tokio-tls",
"url",
"wasm-bindgen",
"wasm-bindgen-futures",
"wasm-bindgen-test",
"web-sys",
"winreg 0.7.0",
]
@ -1598,6 +1609,12 @@ dependencies = [
"winapi 0.3.9",
]
[[package]]
name = "scoped-tls"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
[[package]]
name = "scopeguard"
version = "1.1.0"
@ -1685,6 +1702,18 @@ dependencies = [
"url",
]
[[package]]
name = "serde_urlencoded"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9"
dependencies = [
"form_urlencoded",
"itoa",
"ryu",
"serde",
]
[[package]]
name = "sha-1"
version = "0.9.2"
@ -1920,9 +1949,9 @@ dependencies = [
[[package]]
name = "tinyvec"
version = "1.0.1"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b78a366903f506d2ad52ca8dc552102ffdd3e937ba8a227f024dc1d1eae28575"
checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"
dependencies = [
"tinyvec_macros",
]
@ -1948,7 +1977,7 @@ dependencies = [
"memchr",
"mio",
"mio-uds",
"pin-project-lite",
"pin-project-lite 0.1.11",
"signal-hook-registry",
"slab",
"winapi 0.3.9",
@ -1974,7 +2003,7 @@ dependencies = [
"futures-core",
"futures-sink",
"log",
"pin-project-lite",
"pin-project-lite 0.1.11",
"tokio",
]
@ -2001,7 +2030,7 @@ checksum = "b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27"
dependencies = [
"cfg-if 0.1.10",
"log",
"pin-project-lite",
"pin-project-lite 0.1.11",
"tracing-core",
]
@ -2247,6 +2276,30 @@ version = "0.2.68"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d649a3145108d7d3fbcde896a468d1bd636791823c9921135218ad89be08307"
[[package]]
name = "wasm-bindgen-test"
version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34d1cdc8b98a557f24733d50a1199c4b0635e465eecba9c45b214544da197f64"
dependencies = [
"console_error_panic_hook",
"js-sys",
"scoped-tls",
"wasm-bindgen",
"wasm-bindgen-futures",
"wasm-bindgen-test-macro",
]
[[package]]
name = "wasm-bindgen-test-macro"
version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8fb9c67be7439ee8ab1b7db502a49c05e51e2835b66796c705134d9b8e1a585"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.7",
]
[[package]]
name = "web-sys"
version = "0.3.45"

View File

@ -114,12 +114,12 @@ pub async fn request(url: String) -> Result<serde_json::Value, &'static str> {
let json: serde_json::Value = serde_json::from_str(body.as_str()).unwrap_or(serde_json::Value::Null);
if !success {
Ok(json)
println!("! {} - {}", url, "Page not found");
Err("Page not found")
} else if json == serde_json::Value::Null {
println!("! {} - {}", url, "Failed to parse page JSON data");
Err("Failed to parse page JSON data")
} else {
println!("! {} - {}", url, "Page not found");
Err("Page not found")
Ok(json)
}
}

View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Page not found.</title>
<title>Error loading page.</title>
<meta name="description" content="View on Libreddit, an alternative private front-end to Reddit.">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="/style.css">