mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-29 23:36:27 +00:00
182 lines
4.4 KiB
JavaScript
182 lines
4.4 KiB
JavaScript
/**
|
|
* Account interface
|
|
*
|
|
* @author Pierre HUBERT
|
|
*/
|
|
|
|
const AccountInterface = {
|
|
|
|
/**
|
|
* Send a request on the server to create an account
|
|
*
|
|
* @param {string} firstName The first name of the user
|
|
* @param {string} lastName The last name of the user
|
|
* @param {email} emailAddress The email adress of the user
|
|
* @param {password} password The password of the user
|
|
* @param {callback} callback The callback function
|
|
*/
|
|
createAccount: function(firstName, lastName, emailAddress, password, callback){
|
|
|
|
//Make an API request
|
|
var apiURI = "account/create";
|
|
var params = {
|
|
"firstName": firstName,
|
|
"lastName": lastName,
|
|
"emailAddress": emailAddress,
|
|
"password": password
|
|
};
|
|
|
|
//Perform an API request
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, false, callback);
|
|
|
|
},
|
|
|
|
/**
|
|
* Check whether an email address is linked to an account or not
|
|
*
|
|
* @param {String} email The email address to check
|
|
* @param {function} callback
|
|
*/
|
|
existsMail: function(email, callback){
|
|
var apiURI = "account/exists_email";
|
|
var params = {
|
|
email: email
|
|
};
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
|
|
},
|
|
|
|
/**
|
|
* Get current user email address
|
|
*/
|
|
getMail: async function() {
|
|
const res = await api("account/mail", null, true);
|
|
return res.mail;
|
|
},
|
|
|
|
/**
|
|
* Check whether the security questions have been set for an account
|
|
* with an email address or not
|
|
*
|
|
* @param {String} email The email address of the account
|
|
* @param {function} callback
|
|
*/
|
|
checkSecurityQuestionsExistence: function(email, callback){
|
|
var apiURI = "account/has_security_questions";
|
|
var params = {
|
|
email: email
|
|
};
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
|
|
},
|
|
|
|
/**
|
|
* Given an email address, returns the security questions of a user
|
|
*
|
|
* @param {String} email The email address of the account
|
|
* @param {function} callback
|
|
*/
|
|
getSecurityQuestions: function(email, callback){
|
|
var apiURI = "account/get_security_questions";
|
|
var params = {
|
|
email: email
|
|
};
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
|
|
},
|
|
|
|
/**
|
|
* Get passowrd reset token using security answer
|
|
*
|
|
* @param {String} email The email address of the account
|
|
* @param {Array} answers The answers to the security questions
|
|
* @param {Function} callback
|
|
*/
|
|
resetPasswordWithSecurityAnswers: function(email, answers, callback){
|
|
|
|
//Prepare answers
|
|
answersText = "";
|
|
answers.forEach(function(answer){
|
|
|
|
if(answersText != "")
|
|
answersText += "&";
|
|
|
|
answersText += encodeURIComponent(answer);
|
|
|
|
});
|
|
|
|
//Perform the request
|
|
var apiURI = "account/check_security_answers";
|
|
var params = {
|
|
email: email,
|
|
answers: answersText
|
|
};
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
|
|
|
|
},
|
|
|
|
/**
|
|
* Check the validity of a reset password token
|
|
*
|
|
* @param {String} token The token to check
|
|
* @param {Function} callback
|
|
*/
|
|
checkPasswordResetToken: function(token, callback){
|
|
var apiURI = "account/check_password_reset_token";
|
|
var params = {
|
|
token: token
|
|
};
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, false, callback);
|
|
},
|
|
|
|
/**
|
|
* Reset user password
|
|
*
|
|
* @param {String} token The token to check
|
|
* @param {String} passwd The new password for the user
|
|
* @param {Function} callback
|
|
*/
|
|
resetUserPassword: function(token, passwd, callback){
|
|
var apiURI = "account/reset_user_passwd";
|
|
var params = {
|
|
token: token,
|
|
password: passwd
|
|
};
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, false, callback);
|
|
},
|
|
|
|
/**
|
|
* Disconnect user from all its connected devices
|
|
*/
|
|
disconnectAllDevices: async function() {
|
|
await api("/account/disconnect_all_devices", {}, true);
|
|
},
|
|
|
|
/**
|
|
* Request the export of all the data of the user
|
|
*
|
|
* @param {String} password The password of the user
|
|
* @param {function} callback
|
|
*/
|
|
exportData: function(password, callback){
|
|
var apiURI = "account/export_data";
|
|
var params = {
|
|
password: password
|
|
};
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
|
|
},
|
|
|
|
/**
|
|
* Request the deletion of the account
|
|
*
|
|
* @param {string} password The password of the account
|
|
* @param {function} callback
|
|
*/
|
|
deleteAccount: function(password, callback){
|
|
var apiURI = "account/delete";
|
|
var params = {
|
|
password: password
|
|
};
|
|
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
|
|
},
|
|
|
|
}
|
|
|
|
ComunicWeb.components.account.interface = AccountInterface; |