/**
 * Notifications utilities
 * 
 * @author Pierre HUBERT
 */

ComunicWeb.components.notifications.utils = {

	/**
	 * Get the users ID that might be required to display the notifications
	 * 
	 * @param {array} list The list of notifications to process
	 * @return {array} The list of users id
	 */
	get_users_id: function(list){

		var users = [];

		for (var index = 0; index < list.length; index++) {
			const notif = list[index];
			
			if(!users.includes(notif.from_user_id))
				users.push(notif.from_user_id);

			if(!users.includes(notif.from_container_id) && notif.from_container_type == "user_page")
				users.push(notif.from_container_id);
		}

		return users;

	},

	/**
	 * Get the ID of the groups related to the notifications
	 * 
	 * @param {Array} list The list to process
	 * @return {Array} The list of target groups IDs
	 */
	get_groups_id: function(list){

		var groups = [];

		list.forEach(function(notif){

			if(!groups.includes(notif.from_container_id) && notif.from_container_type == "group_page")
				groups.push(notif.from_container_id);
			
			if(!groups.includes(notif.on_elem_id) && notif.on_elem_type == "group_membership")
				groups.push(notif.on_elem_id);

		});

		return groups;

	},

}