mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2025-07-14 19:28:04 +00:00
Can send an invitation
This commit is contained in:
src
@ -13,6 +13,7 @@ use crate::constants::{DEFAULT_GROUP_LOGO, PATH_GROUPS_LOGOS};
|
||||
use crate::controllers::routes::RequestResult;
|
||||
use crate::data::group::{Group, GroupAccessLevel, GroupPostsCreationLevel, GroupRegistrationLevel, GroupVisibilityLevel};
|
||||
use crate::data::group_id::GroupID;
|
||||
use crate::data::group_member::GroupMembershipLevel;
|
||||
use crate::data::http_request_handler::HttpRequestHandler;
|
||||
use crate::data::new_group::NewGroup;
|
||||
use crate::helpers::{groups_helper, virtual_directory_helper};
|
||||
@ -159,5 +160,16 @@ pub fn get_members(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
|
||||
/// Invite a user to join a group
|
||||
pub fn invite_user(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
r.success("Ready to implement")
|
||||
let group_id = r.post_group_id_with_access("group_id", GroupAccessLevel::MODERATOR_ACCESS)?;
|
||||
let user_id = r.post_user_id("userID")?;
|
||||
|
||||
if groups_helper::get_membership_level(&group_id, Some(user_id.clone()))? != GroupMembershipLevel::VISITOR {
|
||||
r.bad_request("The user is not a visitor of the group!".to_string())?;
|
||||
}
|
||||
|
||||
groups_helper::send_invitation(&group_id, &user_id)?;
|
||||
|
||||
// TODO : send a notification
|
||||
|
||||
r.success("The user has been successfully invited to join the group!")
|
||||
}
|
Reference in New Issue
Block a user