mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-30 15:56:27 +00:00
197 lines
4.2 KiB
JavaScript
197 lines
4.2 KiB
JavaScript
/**
|
|
* Friends list caching system
|
|
*
|
|
* @author Pierre HUBERT
|
|
*/
|
|
|
|
ComunicWeb.components.friends.list = {
|
|
/**
|
|
* Last list cached
|
|
*/
|
|
__list: {},
|
|
|
|
/**
|
|
* Refresh the list
|
|
*
|
|
* @param {Function} afterRefreshList What to do next
|
|
* @return {Boolean} True for a success
|
|
*/
|
|
refresh: function(afterRefreshList){
|
|
|
|
//First, perform an API request
|
|
var apiURI = "friends/getList";
|
|
var params = {};
|
|
|
|
//Perform request
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, function(result){
|
|
|
|
//Check for error
|
|
if(result.error){
|
|
ComunicWeb.debug.logMessage("Couldn't get a new version of friends list !");
|
|
|
|
//Perform next action...
|
|
afterRefreshList(false);
|
|
|
|
//Error
|
|
return false;
|
|
}
|
|
|
|
//Log information
|
|
ComunicWeb.debug.logMessage("Got a new version of friends list !");
|
|
|
|
//Cache the new list
|
|
ComunicWeb.components.friends.list.__list = result;
|
|
|
|
//Perform next action
|
|
afterRefreshList(result);
|
|
|
|
//Success
|
|
return true;
|
|
});
|
|
|
|
//It is a success
|
|
return true;
|
|
},
|
|
|
|
/**
|
|
* Get the list
|
|
*
|
|
* @return {Object} The list
|
|
*/
|
|
get: function(){
|
|
//Return the list
|
|
return this.__list;
|
|
},
|
|
|
|
/**
|
|
* Update the follow status of a user
|
|
*
|
|
* @param {Integer} friendID The friend ID to respond
|
|
* @param {Boolean} follow Specify whether the user has to be followed or not
|
|
* @param {Function} callback Specify an action to do next
|
|
* @return {Boolean} True for a success
|
|
*/
|
|
setFollowing: function(friendID, follow, callback){
|
|
//Prepare the API request
|
|
var apiURI = "friends/setFollowing"
|
|
var params = {
|
|
"friendID": friendID,
|
|
};
|
|
|
|
if(follow == true)
|
|
params.follow = "true";
|
|
else
|
|
params.follow = "false";
|
|
|
|
//Process request
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
|
|
|
|
//Success
|
|
return true;
|
|
},
|
|
|
|
/**
|
|
* Respond a friendship request
|
|
*
|
|
* @param {Integer} friendID The friend ID to respond
|
|
* @param {Boolean} accept Specify if the request was accepted or not
|
|
* @param {Function} afterResponse Specify an action to do next
|
|
* @return {Boolean} True for a success
|
|
*/
|
|
respondRequest: function(friendID, accept, afterResponse){
|
|
//Prepare the API request
|
|
var apiURI = "friends/respondRequest"
|
|
var params = {
|
|
"friendID": friendID,
|
|
};
|
|
|
|
if(accept == true)
|
|
params.accept = "true";
|
|
else
|
|
params.accept = "false";
|
|
|
|
//Process request
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, afterResponse);
|
|
|
|
//Success
|
|
return true;
|
|
},
|
|
|
|
/**
|
|
* Send (create) a friendship request
|
|
*
|
|
* @param {Integer} friendID The friend ID to respond
|
|
* @param {Function} afterResponse Specify an action to do next
|
|
* @return {Boolean} True for a success
|
|
*/
|
|
sendRequest: function(friendID, afterResponse){
|
|
//Prepare the API request
|
|
var apiURI = "friends/sendRequest"
|
|
var params = {
|
|
"friendID": friendID,
|
|
};
|
|
|
|
//Process request
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, afterResponse);
|
|
|
|
//Success
|
|
return true;
|
|
},
|
|
|
|
/**
|
|
* Remove (ancel) a friendship request
|
|
*
|
|
* @param {Integer} friendID The target friendID
|
|
* @param {Function} afterResponse Specify an action to do next
|
|
* @return {Boolean} True for a success
|
|
*/
|
|
removeRequest: function(friendID, afterResponse){
|
|
//Prepare the API request
|
|
var apiURI = "friends/removeRequest"
|
|
var params = {
|
|
"friendID": friendID,
|
|
};
|
|
|
|
//Process request
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, afterResponse);
|
|
|
|
//Success
|
|
return true;
|
|
},
|
|
|
|
/**
|
|
* Get the current status of a friendship relation
|
|
*
|
|
* @param {Integer} friendID The ID of the target friend
|
|
* @param {Function} callback What to do once we get the response
|
|
*/
|
|
getStatus: function(friendID, callback){
|
|
|
|
//Prepare the API request
|
|
var apiURI = "friends/getStatus";
|
|
var params = {
|
|
"friendID": friendID
|
|
};
|
|
|
|
//Process request
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
|
|
|
|
},
|
|
|
|
/**
|
|
* Empty friends cache list
|
|
*
|
|
* @return {Boolean} True for a success
|
|
*/
|
|
emptyCache: function(){
|
|
|
|
//Empty cache
|
|
this.__list = {};
|
|
|
|
//Success
|
|
return true;
|
|
}
|
|
};
|
|
|
|
//Register cache cleaner
|
|
ComunicWeb.common.cacheManager.registerCacheCleaner("ComunicWeb.components.friends.list.emptyCache"); |