diff --git a/src/api/v1/me/friends/mod.rs b/src/api/v1/me/friends/mod.rs index f946616..8de0a5d 100644 --- a/src/api/v1/me/friends/mod.rs +++ b/src/api/v1/me/friends/mod.rs @@ -1,4 +1,3 @@ -use ::uuid::Uuid; use actix_web::{HttpRequest, HttpResponse, get, post, web}; use serde::Deserialize; @@ -9,7 +8,7 @@ use crate::{ api::v1::auth::check_access_token, error::Error, objects::Me, - utils::{get_auth_header, global_checks}, + utils::{get_auth_header, global_checks, user_uuid_from_username} }; /// Returns a list of users that are your friends @@ -34,7 +33,7 @@ pub async fn get(req: HttpRequest, data: web::Data) -> Result Result { + if USERNAME_REGEX.is_match(username) { + use users::dsl; + let user_uuid = dsl::users + .filter(dsl::username.eq(username)) + .select(dsl::uuid) + .get_result(conn) + .await?; + + Ok(user_uuid) + } else { + Err(Error::BadRequest( + "Please provide a valid username".to_string(), + )) + } +} + pub async fn global_checks(data: &Data, user_uuid: Uuid) -> Result<(), Error> { if data.config.instance.require_email_verification { let mut conn = data.pool.get().await?;