From 8a5ac82b1c48d2633be90325acbc1ca24622a33b Mon Sep 17 00:00:00 2001 From: Anna Date: Fri, 9 Sep 2022 06:10:15 -0400 Subject: [PATCH] include if message is hidden --- server/src/consts.rs | 1 + server/src/main.rs | 1 + server/src/message.rs | 18 ++++++++++++++++++ server/src/web/get_location.rs | 2 +- server/src/web/get_mine.rs | 13 +++++++++---- 5 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 server/src/consts.rs diff --git a/server/src/consts.rs b/server/src/consts.rs new file mode 100644 index 0000000..0846870 --- /dev/null +++ b/server/src/consts.rs @@ -0,0 +1 @@ +pub const VOTE_THRESHOLD_HIDE: i32 = -1; diff --git a/server/src/main.rs b/server/src/main.rs index 1f6dd0e..4eeb28d 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -19,6 +19,7 @@ mod message; mod web; mod util; mod config; +mod consts; static MIGRATOR: Migrator = sqlx::migrate!(); diff --git a/server/src/message.rs b/server/src/message.rs index c2f2869..061cba7 100644 --- a/server/src/message.rs +++ b/server/src/message.rs @@ -64,3 +64,21 @@ pub struct RetrievedMessageTerritory { #[serde(skip)] pub created: NaiveDateTime, } + +#[derive(Debug, Serialize)] +pub struct OwnMessage { + pub id: String, + pub territory: i64, + pub x: f64, + pub y: f64, + pub z: f64, + pub yaw: f64, + pub message: String, + pub positive_votes: i32, + pub negative_votes: i32, + pub user_vote: i64, + pub glyph: i64, + #[serde(skip)] + pub created: NaiveDateTime, + pub is_hidden: bool, +} diff --git a/server/src/web/get_location.rs b/server/src/web/get_location.rs index e2d2f82..e45eb3b 100644 --- a/server/src/web/get_location.rs +++ b/server/src/web/get_location.rs @@ -64,7 +64,7 @@ fn filter_messages(messages: &mut Vec, id: i64) { // remove messages where the user has been offline for over 35 minutes // also remove messages with low score (that aren't the from the user) - messages.drain_filter(|msg| msg.last_seen_minutes >= 35 || (msg.user != id_str && (msg.positive_votes - msg.negative_votes) < -1)); + messages.drain_filter(|msg| msg.last_seen_minutes >= 35 || (msg.user != id_str && (msg.positive_votes - msg.negative_votes) < crate::consts::VOTE_THRESHOLD_HIDE)); // shuffle messages since we'll be excluding later based on messages // that have already been included, so this will be more fair diff --git a/server/src/web/get_mine.rs b/server/src/web/get_mine.rs index 68d4dda..5665597 100644 --- a/server/src/web/get_mine.rs +++ b/server/src/web/get_mine.rs @@ -5,7 +5,7 @@ use anyhow::Context; use warp::{Filter, Rejection, Reply}; use warp::filters::BoxedFilter; -use crate::message::RetrievedMessageTerritory; +use crate::message::OwnMessage; use crate::State; use crate::web::AnyhowRejection; @@ -26,7 +26,7 @@ async fn logic(state: Arc, id: i64, extra: i64, mut query: HashMap, id: i64, extra: i64, mut query: HashMap, id: i64, extra: i64, mut query: HashMap, + messages: Vec, extra: i64, }