(function() { "use strict"; angular .module("agora.plus.services.ApiService", []) .service("ApiService", ApiService); ApiService.$inject = ["$http", "$q"]; function ApiService($http,$q) { var vm = this; vm.apiBaseUrl = PCK_GLOBAL_VARIABLES.webservice_path_API; vm.apiDashboardBaseUrl = PCK_GLOBAL_VARIABLES.webservice_path_API_DASHBOARD; vm.tokenCode = undefined; return { verifyEmail: verifyEmail, validateCode: validateCode, validateAccount: validateAccount }; /** * validateAccount Validate the data for the account that is going * to be created * @param {Object} payload Data needed to validate * @return {Object} A promise is returned */ function validateAccount(payload) { var defer = $q.defer(); if (!(payload.hasOwnProperty("login") && payload.login) || !(payload.hasOwnProperty("firstName") && payload.firstName) || !(payload.hasOwnProperty("lastName") && payload.lastName)) { defer.reject("Invalid payload provided"); return defer.promise; } var data = null; $http.get(vm.apiDashboardBaseUrl + "validateAccount/?login=" + encodeURIComponent(payload.login) + "&firstName=" + encodeURIComponent(payload.firstName) + "&lastName=" + encodeURIComponent(payload.lastName) + "&birthDate=" + payload.birthDate) .then(function(response) { defer.resolve(response); }) .catch(function(error) { defer.reject(error); }); return defer.promise; } function verifyEmail(email) { var defer = $q.defer(); if (!email) { return defer.reject("no email specified"); } var payload = { "p_mail": email }; $http.post(vm.apiDashboardBaseUrl+"Auth/", payload, {"headers": {"Content-Type": "application/json"}}) .then(function (data) { if (data.status === 200) { if (/\d/.test(data.data.id_sas)) { vm.tokenCode = data.data.id_sas; defer.resolve(data); } else { defer.reject({"hasError": true}); } } else { defer.reject(data); } }) .catch(function (error) { defer.reject(error); }); return defer.promise; } function validateCode(code) { var defer = $q.defer(); if (!code) { return defer.reject("no code specified"); } var payload = { "p_code": code, "p_numero": vm.tokenCode }; $http.post(vm.apiDashboardBaseUrl+"Auth/", payload, {"headers": {"Content-Type": "application/json"}}) .then(function (data) { if (data.status == 200) { if (data.data.success == "1") { defer.resolve(data); } else if (data.data.success == "0") { defer.reject(data); } } else { defer.reject(data); } }) .catch(function (error) { defer.reject(error); }); return defer.promise; } } }());