mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2025-06-20 16:35:17 +00:00
Start to implement post logic
This commit is contained in:
@ -8,4 +8,5 @@ pub mod friends_controller;
|
||||
pub mod conversations_controller;
|
||||
pub mod search_controller;
|
||||
pub mod groups_controller;
|
||||
pub mod posts_controller;
|
||||
pub mod virtual_directory_controller;
|
24
src/controllers/posts_controller.rs
Normal file
24
src/controllers/posts_controller.rs
Normal file
@ -0,0 +1,24 @@
|
||||
//! # Posts controller
|
||||
//!
|
||||
//! @author Pierre Hubert
|
||||
|
||||
use crate::api_data::post_api::PostAPI;
|
||||
use crate::controllers::routes::RequestResult;
|
||||
use crate::data::http_request_handler::HttpRequestHandler;
|
||||
use crate::helpers::{posts_helper, user_helper};
|
||||
|
||||
/// Get the list of posts of a user
|
||||
pub fn get_list_user(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let user_id = r.post_user_id("userID")?;
|
||||
let start_from = r.post_u64_opt("startFrom", 0)?;
|
||||
|
||||
if !user_helper::can_see_user_page(r.user_id_ref()?, &user_id)? {
|
||||
r.forbidden("You are not allowed to access this user posts !".to_string())?;
|
||||
}
|
||||
|
||||
let posts = posts_helper::PostsQuery::new(r.user_id_opt())
|
||||
.set_start_from(start_from)
|
||||
.get_user(&user_id)?;
|
||||
|
||||
r.set_response(PostAPI::for_list(&posts))
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
use std::error::Error;
|
||||
|
||||
use crate::controllers::{account_controller, conversations_controller, friends_controller, groups_controller, search_controller, server_controller, user_controller, virtual_directory_controller};
|
||||
use crate::controllers::{account_controller, conversations_controller, friends_controller, groups_controller, search_controller, server_controller, user_controller, virtual_directory_controller, posts_controller};
|
||||
use crate::controllers::routes::Method::{GET, POST};
|
||||
use crate::data::http_request_handler::HttpRequestHandler;
|
||||
|
||||
@ -196,6 +196,9 @@ pub fn get_routes() -> Vec<Route> {
|
||||
|
||||
Route::post("/groups/delete", Box::new(groups_controller::delete_group)),
|
||||
|
||||
// Posts controller
|
||||
Route::post("/posts/get_user", Box::new(posts_controller::get_list_user)),
|
||||
|
||||
|
||||
// Virtual directory controller
|
||||
Route::post("/user/findbyfolder", Box::new(virtual_directory_controller::find_user)),
|
||||
|
Reference in New Issue
Block a user