mirror of
				https://gitlab.com/comunic/comunicapiv2
				synced 2025-11-03 19:14:03 +00:00 
			
		
		
		
	Can respond to membership invitation
This commit is contained in:
		@@ -175,6 +175,37 @@ export class GroupsHelper {
 | 
			
		||||
		}));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Check if a user received an invitation to join a group or not
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param groupID Target group ID
 | 
			
		||||
	 * @param userID Target user ID
 | 
			
		||||
	 */
 | 
			
		||||
	public static async ReceivedInvitation(groupID: number, userID: number) : Promise<boolean> {
 | 
			
		||||
		return await DatabaseHelper.Count({
 | 
			
		||||
			table: GROUPS_MEMBERS_TABLE,
 | 
			
		||||
			where: {
 | 
			
		||||
				groups_id: groupID,
 | 
			
		||||
				user_ID: userID,
 | 
			
		||||
				level: GroupMembershipLevels.INVITED
 | 
			
		||||
			}
 | 
			
		||||
		}) > 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Respond to a membership invitation
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param groupID Target group ID
 | 
			
		||||
	 * @param userID Target user ID
 | 
			
		||||
	 * @param accept true to accept invitation / FALSE else
 | 
			
		||||
	 */
 | 
			
		||||
	public static async RespondInvitation(groupID: number, userID: number, accept: boolean) {
 | 
			
		||||
		if(!accept)
 | 
			
		||||
			await this.DeleteMember(groupID, userID);
 | 
			
		||||
		else
 | 
			
		||||
			await this.UpdateMembershipLevel(groupID, userID, GroupMembershipLevels.MEMBER);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Insert a new group member
 | 
			
		||||
	 * 
 | 
			
		||||
@@ -189,6 +220,39 @@ export class GroupsHelper {
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Update a user membership level
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param groupID Target group ID
 | 
			
		||||
	 * @param userID Target user ID
 | 
			
		||||
	 * @param level New membership level
 | 
			
		||||
	 */
 | 
			
		||||
	public static async UpdateMembershipLevel(groupID: number, userID: number, level: GroupMembershipLevels) {
 | 
			
		||||
		await DatabaseHelper.UpdateRows({
 | 
			
		||||
			table: GROUPS_MEMBERS_TABLE,
 | 
			
		||||
			where: {
 | 
			
		||||
				user_id: userID,
 | 
			
		||||
				groups_id: groupID
 | 
			
		||||
			},
 | 
			
		||||
			set: {
 | 
			
		||||
				level: level
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Delete completely a user membership
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param groupID Target group ID
 | 
			
		||||
	 * @param userID Target user ID
 | 
			
		||||
	 */
 | 
			
		||||
	public static async DeleteMember(groupID: number, userID: number) {
 | 
			
		||||
		await DatabaseHelper.DeleteRows(GROUPS_MEMBERS_TABLE, {
 | 
			
		||||
			groups_id: groupID,
 | 
			
		||||
			user_id: userID
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get the membership level of a user for a group
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user