/** * Notifications interface * * @author Pierre HUBERT */ ComunicWeb.components.notifications.interface = { /** * Get the number of unread notifications * * @param {function} callback */ getNbUnreads: function(callback){ //Perform API request var apiURI = "notifications/count_unread"; var params = {}; //Perform the request ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback); }, /** * Get the number of unread news such as notifications or conversations * * @param {function} callback */ getAllUnread: function(callback){ //Perform API request var apiURI = "notifications/count_all_news"; var params = {}; //Perform the request ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback); }, // ASync version of previous request asyncGetAllUnread: async function() { return await new Promise((res, err) => { this.getAllUnread((data) => { if(data.error) err(data.error); else res(data) }) }); }, /** * Get the list of unread notifications * * @param {function} callback */ get_list_unread: function(callback){ //Perform API request var apiURI = "notifications/get_list_unread"; var params = {}; //Perform the request ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback); }, /** * Mark a notification as seen * * @param {number} id The ID of the notification to mark as seen * @param {boolean} delete_similar Specify if the similar notifications * associated to the user have to be delete too * @param {function} callback (Optionnal) */ mark_seen: function(id, delete_similar, callback){ //Perform an API request var apiURI = "notifications/mark_seen"; var params = { notifID: id, delete_similar: delete_similar }; ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback); }, /** * Delete all the notifications of the user * * @param {function} callback */ delete_all: function(callback){ //Perform an API request var apiURI = "notifications/delete_all"; var params = {}; ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback); } }