From 64d2707366e585179f88b13f085d1d32af758140 Mon Sep 17 00:00:00 2001 From: Paul <paulmakles@gmail.com> Date: Fri, 19 Feb 2021 13:11:33 +0000 Subject: [PATCH] Find mutual for users; allow dots in usernames. --- src/routes/onboard/complete.rs | 2 +- src/routes/users/find_mutual.rs | 13 +++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/routes/onboard/complete.rs b/src/routes/onboard/complete.rs index 45f30d7..a35e1b1 100644 --- a/src/routes/onboard/complete.rs +++ b/src/routes/onboard/complete.rs @@ -10,7 +10,7 @@ use serde::{Deserialize, Serialize}; use validator::Validate; lazy_static! { - static ref RE_USERNAME: Regex = Regex::new(r"^[a-zA-Z0-9_]+$").unwrap(); + static ref RE_USERNAME: Regex = Regex::new(r"^[a-zA-Z0-9_.]+$").unwrap(); } #[derive(Validate, Serialize, Deserialize)] diff --git a/src/routes/users/find_mutual.rs b/src/routes/users/find_mutual.rs index 1d52e59..7b3f1f6 100644 --- a/src/routes/users/find_mutual.rs +++ b/src/routes/users/find_mutual.rs @@ -8,15 +8,12 @@ use rocket_contrib::json::JsonValue; #[get("/<target>/mutual")] pub async fn req(user: User, target: Ref) -> Result<JsonValue> { - let channels = get_collection("channels") + let users = get_collection("users") .find( doc! { - "$or": [ - { "type": "Group" }, - ], "$and": [ - { "recipients": &user.id }, - { "recipients": &target.id } + { "relations.id": &user.id }, + { "relations.id": &target.id } ] }, FindOptions::builder().projection(doc! { "_id": 1 }).build(), @@ -24,7 +21,7 @@ pub async fn req(user: User, target: Ref) -> Result<JsonValue> { .await .map_err(|_| Error::DatabaseError { operation: "find", - with: "channels", + with: "users", })? .filter_map(async move |s| s.ok()) .collect::<Vec<Document>>() @@ -33,5 +30,5 @@ pub async fn req(user: User, target: Ref) -> Result<JsonValue> { .filter_map(|x| x.get_str("_id").ok().map(|x| x.to_string())) .collect::<Vec<String>>(); - Ok(json!({ "channels": channels })) + Ok(json!({ "users": users })) } -- GitLab