mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-26 13:59:23 +00:00
Get multiple users infos
This commit is contained in:
parent
96d86ce97a
commit
a8e05437ca
@ -335,6 +335,11 @@ var ComunicWeb = {
|
|||||||
*/
|
*/
|
||||||
getUserInfos: function(userID, afterGetUserInfos){},
|
getUserInfos: function(userID, afterGetUserInfos){},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get multiple users informations
|
||||||
|
*/
|
||||||
|
getMultipleUsersInfos: function(usersID, afterGetUserInfos){},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Empty user informations cache
|
* Empty user informations cache
|
||||||
* Remove all entries from user informations cache
|
* Remove all entries from user informations cache
|
||||||
|
@ -80,30 +80,33 @@ ComunicWeb.components.searchForm = {
|
|||||||
if(response.error)
|
if(response.error)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
//Remove any remainging element in searchResultBox
|
//Preload users informations
|
||||||
emptyElem(searchBoxContainer);
|
ComunicWeb.user.userInfos.getMultipleUsersInfos(response, function(userInfos){
|
||||||
|
|
||||||
//Create menu list
|
//Remove any remainging element in searchResultBox
|
||||||
var menuList = createElem("ul", searchBoxContainer);
|
emptyElem(searchBoxContainer);
|
||||||
menuList.className = "menu";
|
|
||||||
|
|
||||||
//Process each result
|
|
||||||
for(i in response){
|
|
||||||
|
|
||||||
//Retrieve userID
|
//Create menu list
|
||||||
var userID = response[i];
|
var menuList = createElem("ul", searchBoxContainer);
|
||||||
|
menuList.className = "menu";
|
||||||
|
|
||||||
//Display user informations
|
//Process each result
|
||||||
ComunicWeb.components.searchForm.displayUser(userID, menuList);
|
for(i in response){
|
||||||
|
|
||||||
}
|
//Retrieve userID
|
||||||
|
var userID = response[i];
|
||||||
|
|
||||||
//Enable slimscroll
|
//Display user informations
|
||||||
$(menuList).slimScroll({
|
ComunicWeb.components.searchForm.displayUser(userID, menuList);
|
||||||
height: '200px',
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Enable slimscroll
|
||||||
|
$(menuList).slimScroll({
|
||||||
|
height: '200px',
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -6,73 +6,156 @@
|
|||||||
|
|
||||||
ComunicWeb.user.userInfos = {
|
ComunicWeb.user.userInfos = {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var {String} User infos cache
|
* @var {String} User infos cache
|
||||||
*/
|
*/
|
||||||
usersInfos: {},
|
usersInfos: {},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get user informations
|
* Get user informations
|
||||||
*
|
*
|
||||||
* @param {String} userID User on which to make request (current to get connected user)
|
* @param {String} userID User on which to make request (current to get connected user)
|
||||||
* @param {function} afterGetUserInfos What to do once user informations are available
|
* @param {function} afterGetUserInfos What to do once user informations are available
|
||||||
* @return {Boolean} True for a success
|
* @return {Boolean} True for a success
|
||||||
*/
|
*/
|
||||||
getUserInfos: function(userID, afterGetUserInfos){
|
getUserInfos: function(userID, afterGetUserInfos){
|
||||||
|
|
||||||
//If requested user is the current user, replace "current" with userID
|
//If requested user is the current user, replace "current" with userID
|
||||||
if(userID === "current")
|
if(userID === "current")
|
||||||
userID = ComunicWeb.user.userLogin.__userID;
|
userID = ComunicWeb.user.userLogin.__userID;
|
||||||
|
|
||||||
//First, check if informations are already available in the cache
|
//First, check if informations are already available in the cache
|
||||||
if(this.usersInfos["user-"+userID]){
|
if(this.usersInfos["user-"+userID]){
|
||||||
afterGetUserInfos(this.usersInfos["user-"+userID]); //Then return these informations now
|
afterGetUserInfos(this.usersInfos["user-"+userID]); //Then return these informations now
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Else we have to perform an API request
|
//Else we have to perform an API request
|
||||||
var apiURI = "user/getInfos";
|
var apiURI = "user/getInfos";
|
||||||
var params = {
|
var params = {
|
||||||
userID: userID
|
userID: userID
|
||||||
};
|
};
|
||||||
|
|
||||||
//Specify what to do next
|
//Specify what to do next
|
||||||
var onceGetUserInfos = function(result){
|
var onceGetUserInfos = function(result){
|
||||||
if(result.error){
|
if(result.error){
|
||||||
ComunicWeb.debug.logMessage("ERROR : couldn't get infos about user ID : "+userID+" !");
|
ComunicWeb.debug.logMessage("ERROR : couldn't get infos about user ID : "+userID+" !");
|
||||||
|
|
||||||
//Returns the error to the next function
|
//Returns the error to the next function
|
||||||
afterGetUserInfos(result);
|
afterGetUserInfos(result);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//Save result
|
//Save result
|
||||||
ComunicWeb.user.userInfos.usersInfos["user-"+userID] = result[0];
|
ComunicWeb.user.userInfos.usersInfos["user-"+userID] = result[0];
|
||||||
|
|
||||||
//Return result
|
//Return result
|
||||||
afterGetUserInfos(result[0]);
|
afterGetUserInfos(result[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Perform request
|
//Perform request
|
||||||
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, onceGetUserInfos);
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, onceGetUserInfos);
|
||||||
|
|
||||||
//Everything is OK
|
//Everything is OK
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Empty user informations cache
|
* Get multiple users informations
|
||||||
* Remove all entries from user informations cache
|
*
|
||||||
*
|
* @param {String} usersID User on which to make request (current to get connected user)
|
||||||
* @return {Boolean} True for a success
|
* @param {function} afterGetUserInfos What to do once users informations are available
|
||||||
*/
|
* @return {Boolean} True for a success
|
||||||
emptyUserInfosCache: function(){
|
*/
|
||||||
this.userInfos = undefined; //Mark user info cache as undefined
|
getMultipleUsersInfos: function(usersID, afterGetUserInfos){
|
||||||
this.userInfos = {}; //Create a new variable
|
|
||||||
|
|
||||||
return true;
|
//First, check if informations are already available in the cache for some users
|
||||||
},
|
var cachedInformations = {};
|
||||||
|
var needRequest = false; //By default the request isn't required
|
||||||
|
var usersToGetList = "";
|
||||||
|
for(i in usersID){
|
||||||
|
//Extract userID
|
||||||
|
var processUserID = usersID[i];
|
||||||
|
|
||||||
|
//Check the local cache
|
||||||
|
if(this.usersInfos["user-"+processUserID]){
|
||||||
|
//Add user information to cached informations
|
||||||
|
cachedInformations[processUserID] = this.usersInfos["user-"+processUserID];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//Else we'll have to get data
|
||||||
|
needRequest = true;
|
||||||
|
usersToGetList += usersID+",";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check if an API request is not required
|
||||||
|
if(!needRequest){
|
||||||
|
//Go immediatly to the next step
|
||||||
|
afterGetUserInfos(cachedInformations);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Perform API request
|
||||||
|
var apiURI = "user/getInfosMultiple";
|
||||||
|
var params = {
|
||||||
|
usersID: usersToGetList,
|
||||||
|
}
|
||||||
|
|
||||||
|
//Specify what to do next
|
||||||
|
var onceGetUserInfos = function(result){
|
||||||
|
if(result.error){
|
||||||
|
//Log error
|
||||||
|
ComunicWeb.debug.logMessage("ERROR : couldn't get infos about users ID !");
|
||||||
|
|
||||||
|
//Returns the error to the next function
|
||||||
|
afterGetUserInfos(result);
|
||||||
|
|
||||||
|
//Something went wrong
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//Prepare return
|
||||||
|
var returnInformations = cachedInformations;
|
||||||
|
|
||||||
|
//Save results and prepare return
|
||||||
|
for(i in result){
|
||||||
|
//Get user ID
|
||||||
|
var userID = result[i]['userID'];
|
||||||
|
|
||||||
|
//Store
|
||||||
|
ComunicWeb.user.userInfos.usersInfos["user-"+userID] = result[i];
|
||||||
|
|
||||||
|
returnInformations[userID] = result[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Return results
|
||||||
|
afterGetUserInfos(returnInformations);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Perform request
|
||||||
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, onceGetUserInfos);
|
||||||
|
|
||||||
|
//Everything is OK
|
||||||
|
return true;
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Empty user informations cache
|
||||||
|
* Remove all entries from user informations cache
|
||||||
|
*
|
||||||
|
* @return {Boolean} True for a success
|
||||||
|
*/
|
||||||
|
emptyUserInfosCache: function(){
|
||||||
|
this.userInfos = undefined; //Mark user info cache as undefined
|
||||||
|
this.userInfos = {}; //Create a new variable
|
||||||
|
|
||||||
|
return true;
|
||||||
|
},
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user