From aec4fdecc10be35cde5dc42308960f10bc452187 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Wed, 15 Feb 2023 00:01:44 -0500 Subject: make database calls 1 conn --- src/api/users.rs | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'src/api/users.rs') diff --git a/src/api/users.rs b/src/api/users.rs index 082926e..71305c5 100644 --- a/src/api/users.rs +++ b/src/api/users.rs @@ -1,7 +1,7 @@ use crate::{ public::docs::{EndpointDocumentation, EndpointMethod}, types::{ - extract::{AuthorizedUser, Check, CheckResult, Json, Log, Png}, + extract::{AuthorizedUser, Check, CheckResult, Database, Json, Log, Png}, http::ResponseCode, user::User, }, @@ -46,9 +46,10 @@ impl Check for UserLoadRequest { async fn load_batch( AuthorizedUser(_user): AuthorizedUser, + Database(db): Database, Json(body): Json, ) -> Response { - let users = User::from_user_ids(body.ids); + let users = User::from_user_ids(&db, body.ids); let Ok(json) = serde_json::to_string(&users) else { return ResponseCode::InternalServerError.text("Failed to fetch users") }; @@ -90,9 +91,10 @@ impl Check for UserPageReqiest { async fn load_page( AuthorizedUser(_user): AuthorizedUser, + Database(db): Database, Json(body): Json, ) -> Response { - let Ok(users) = User::from_user_page(body.page) else { + let Ok(users) = User::from_user_page(&db, body.page) else { return ResponseCode::InternalServerError.text("Failed to fetch users") }; @@ -207,17 +209,18 @@ impl Check for UserFollowRequest { async fn follow( AuthorizedUser(user): AuthorizedUser, + Database(db): Database, Json(body): Json, ) -> Response { if body.state { - if let Err(err) = User::add_following(user.user_id, body.user_id) { + if let Err(err) = User::add_following(&db, user.user_id, body.user_id) { return err; } - } else if let Err(err) = User::remove_following(user.user_id, body.user_id) { + } else if let Err(err) = User::remove_following(&db, user.user_id, body.user_id) { return err; } - match User::get_following(user.user_id, body.user_id) { + match User::get_following(&db, user.user_id, body.user_id) { Ok(status) => ResponseCode::Success.text(&format!("{status}")), Err(err) => err, } @@ -259,9 +262,10 @@ impl Check for UserFollowStatusRequest { async fn follow_status( AuthorizedUser(user): AuthorizedUser, + Database(db): Database, Json(body): Json, ) -> Response { - match User::get_following(user.user_id, body.user_id) { + match User::get_following(&db, user.user_id, body.user_id) { Ok(status) => ResponseCode::Success.text(&format!("{status}")), Err(err) => err, } @@ -297,8 +301,12 @@ impl Check for UserFriendsRequest { } } -async fn friends(AuthorizedUser(_user): AuthorizedUser, Json(body): Json) -> Response { - let Ok(users) = User::get_friends(body.user_id) else { +async fn friends( + AuthorizedUser(_user): AuthorizedUser, + Database(db): Database, + Json(body): Json, +) -> Response { + let Ok(users) = User::get_friends(&db, body.user_id) else { return ResponseCode::InternalServerError.text("Failed to fetch user") }; -- cgit v1.2.3-freya