/**
* Login
* @method login
* @memberof Elvis.prototype
* @param params {Object} - An object contains login parameters
* @param [params.username] {String} - Either username and password or cred is required
* @param [params.password] {String} - Either username and password or cred is required
* @param [params.cred] {String} - A base64 string. Either username and password or cred is required
* @param [params.nextUrl] {String} - Url for next page
* @param [params.failUrl] {String} - Url for fail page
* @param [params.locale] {String} - language_COUNTRY
* @param [params.timezoneOffset] {Number} - Timezone offset in milliseconds
* @param [params.clientType] {string} - Client type
* @param [params.returnProfile] {Boolean} - Returns profile info if given `true`
* @param isSticky {Boolean} - Sticky session flag; set it true to use one assigned cluster node, false or omit for load balancing
* @returns {Promise}
*/
module.exports = function login(params, isSticky) {
return new Promise((resolve, reject) => {
this.__request({
url: this.__getRemoteURL('/services/login'),
params: params,
failure: reject,
success: (data, response) => {
if (data.loginSuccess) {
this.__setCookieHeader(response, isSticky)
resolve(data)
} else {
reject(data)
}
}
})
})
}