mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2025-06-20 16:35:17 +00:00
Can get the list of friends of another user
This commit is contained in:
@ -5,7 +5,7 @@
|
||||
use crate::api_data::friend_api::FriendAPI;
|
||||
use crate::controllers::routes::RequestResult;
|
||||
use crate::data::http_request_handler::HttpRequestHandler;
|
||||
use crate::helpers::{account_helper, friends_helper};
|
||||
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 {
|
||||
@ -17,4 +17,21 @@ pub fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
r.set_response(FriendAPI::from_list(&list))
|
||||
}
|
||||
|
||||
/// 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")?;
|
||||
|
||||
if !user_helper::can_see_user_page(&r.user_id_or_invalid(), &user_id)? {
|
||||
r.forbidden("You can not access this user information!".to_string())?;
|
||||
}
|
||||
|
||||
if !user_helper::is_user_friends_list_public(&user_id)? {
|
||||
r.forbidden("The friend list of this user is not public!".to_string())?;
|
||||
}
|
||||
|
||||
let friends = friends_helper::get_list(&user_id)?;
|
||||
|
||||
r.set_response(friends.iter().map(|f| f.friend_id.id()).collect::<Vec<u64>>())
|
||||
}
|
@ -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_user_list", Box::new(friends_controller::get_other_user_list)),
|
||||
|
||||
// Conversations controller
|
||||
Route::post("/conversations/create", Box::new(conversations_controller::create)),
|
||||
|
||||
|
Reference in New Issue
Block a user