1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-06-20 16:35:17 +00:00

Can get information about a single friendship

This commit is contained in:
2020-06-30 08:14:58 +02:00
parent 9a3b565f00
commit 31ed53aacf
3 changed files with 59 additions and 8 deletions

View File

@ -9,7 +9,7 @@ use crate::helpers::{account_helper, friends_helper, user_helper};
/// Get the list of friends of the current user
pub fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
let list = friends_helper::get_list(&r.user_id()?)?;
let list = friends_helper::GetFriendsQuery::new(&r.user_id()?).exec()?;
// Update last activity (if allowed)
if !r.post_bool_opt("incognito", false) {
@ -19,6 +19,21 @@ pub fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
r.set_response(FriendAPI::from_list(&list))
}
/// Get information about a single friendship
pub fn get_single_friendship_info(r: &mut HttpRequestHandler) -> RequestResult {
let friend_id = r.post_user_id("friendID")?;
let info = friends_helper::GetFriendsQuery::new(&r.user_id()?)
.get_single_friend(&friend_id);
let info = r.ok_or_not_found(
info,
"The friendship was not found!",
)?;
r.set_response(FriendAPI::new(&info))
}
/// Get the list of friends of another user
pub fn get_other_user_list(r: &mut HttpRequestHandler) -> RequestResult {
let user_id = r.post_user_id("userID")?;
@ -31,7 +46,7 @@ pub fn get_other_user_list(r: &mut HttpRequestHandler) -> RequestResult {
r.forbidden("The friend list of this user is not public!".to_string())?;
}
let friends = friends_helper::get_list(&user_id)?;
let friends = friends_helper::GetFriendsQuery::new(&user_id).exec()?;
r.set_response(friends.iter().map(|f| f.friend_id.id()).collect::<Vec<u64>>())
}

View File

@ -91,6 +91,8 @@ pub fn get_routes() -> Vec<Route> {
// Friends controller
Route::post("/friends/getList", Box::new(friends_controller::get_list)),
Route::post("/friends/get_single_infos", Box::new(friends_controller::get_single_friendship_info)),
Route::post("/friends/get_user_list", Box::new(friends_controller::get_other_user_list)),
// Conversations controller