diff --git a/Cargo.lock b/Cargo.lock index 98e3ca34..96da304c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2792,7 +2792,7 @@ dependencies = [ [[package]] name = "revolt-bonfire" -version = "0.5.11" +version = "0.5.12" dependencies = [ "async-std", "async-tungstenite", @@ -2808,7 +2808,7 @@ dependencies = [ [[package]] name = "revolt-delta" -version = "0.5.11" +version = "0.5.12" dependencies = [ "async-channel", "async-std", @@ -2848,7 +2848,7 @@ dependencies = [ [[package]] name = "revolt-quark" -version = "0.5.11" +version = "0.5.12" dependencies = [ "async-lock", "async-recursion", diff --git a/crates/bonfire/Cargo.toml b/crates/bonfire/Cargo.toml index 3c576c61..2a870f86 100644 --- a/crates/bonfire/Cargo.toml +++ b/crates/bonfire/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "revolt-bonfire" -version = "0.5.11" +version = "0.5.12" license = "AGPL-3.0-or-later" edition = "2021" diff --git a/crates/delta/Cargo.toml b/crates/delta/Cargo.toml index 654f2b5f..05e9a17c 100644 --- a/crates/delta/Cargo.toml +++ b/crates/delta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "revolt-delta" -version = "0.5.11" +version = "0.5.12" license = "AGPL-3.0-or-later" authors = ["Paul Makles "] edition = "2018" diff --git a/crates/delta/src/routes/safety/fetch_report.rs b/crates/delta/src/routes/safety/fetch_report.rs new file mode 100644 index 00000000..e5d84bbc --- /dev/null +++ b/crates/delta/src/routes/safety/fetch_report.rs @@ -0,0 +1,17 @@ +use revolt_quark::models::{Report, User}; +use revolt_quark::{Db, Error, Result}; +use rocket::serde::json::Json; + +/// # Fetch Report +/// +/// Fetch a report by its ID +#[openapi(tag = "User Safety")] +#[get("/report/")] +pub async fn fetch_report(db: &Db, user: User, id: String) -> Result> { + // Must be privileged for this route + if !user.privileged { + return Err(Error::NotPrivileged); + } + + db.fetch_report(&id).await.map(Json) +} diff --git a/crates/delta/src/routes/safety/mod.rs b/crates/delta/src/routes/safety/mod.rs index 1ff4b516..7aee1e8a 100644 --- a/crates/delta/src/routes/safety/mod.rs +++ b/crates/delta/src/routes/safety/mod.rs @@ -2,6 +2,7 @@ use revolt_rocket_okapi::revolt_okapi::openapi3::OpenApi; use rocket::Route; mod edit_report; +mod fetch_report; mod fetch_reports; mod report_content; @@ -10,9 +11,10 @@ mod fetch_snapshot; pub fn routes() -> (Vec, OpenApi) { openapi_get_routes_spec![ // Reports - report_content::report_content, - fetch_reports::fetch_reports, edit_report::edit_report, + fetch_report::fetch_report, + fetch_reports::fetch_reports, + report_content::report_content, // Snapshots fetch_snapshot::fetch_snapshot ] diff --git a/crates/quark/Cargo.toml b/crates/quark/Cargo.toml index b99c706e..e7279117 100644 --- a/crates/quark/Cargo.toml +++ b/crates/quark/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "revolt-quark" -version = "0.5.11" +version = "0.5.12" license = "AGPL-3.0-or-later" edition = "2021"