(function () { 'use strict'; var serviceId = 'usersAdminDataContext'; angular.module('usersAdmin').factory(serviceId, ['$q', '$http', 'usersAdminConfig', datacontext]); function datacontext($q, $http, config, $modal) { var service = { createUser: createUser, getUserIdByEmail: getUserIdByEmail, updateUsers: updateUsers, updateUser: updateUser, deleteUser: deleteUser, deleteUsers: deleteUsers, isEmailAvailable: isEmailAvailable, isUsernameAvailable: isUsernameAvailable, addUsersToOrg: addUsersToOrg, moveUsersToOrg: moveUsersToOrg, copyUsersToOrg: copyUsersToOrg, createUsers: createUsers, getAdminUsers: getAdminUsers, getDeployments: getDeployments, sendVerificationLink: sendVerificationLink }; return service; function handleError(response) { // The API response from the server should be returned in a // nomralized format. However, if the request was not handled by the // server (or what not handles properly - ex. server error), then we // may have to normalize it on our end, as best we can. if ( !angular.isObject(response.data) || !response.data.message ) { return ($q.reject("An unknown error occurred.")); } // Otherwise, use expected error message. return ($q.reject(response.data.message)); } // I transform the successful response, unwrapping the application data // from the API response payload. function handleSuccess(response) { return (response.data); } function getUserIdByEmail(email) { var request = $http({ method: "get", url: config.myusersUrl + 'api/myusers/email?email=' + email, }); return (request.then(handleSuccess, handleError)); } function getDeployments(ids) { var request = $http({ method: "get", url: config.apigatewayUrl + '/AssignmentDeployedToUser/ids?ids=' +ids }); return (request.then(handleSuccess, handleError)); } function createUser(user) { var request = $http({ method: "post", url: config.myusersUrl + 'api/myusers', data: user }); return (request.then(handleSuccess, handleError)); } function createUsers(users, organisationId) { var request = $http({ method: "post", url: config.myusersUrl + 'api/bulkmyusers/' + organisationId, data: users }); return (request.then(handleSuccess, handleError)); } function updateUsers(userOrganisationModels) { var request = $http({ method: "put", url: config.myusersUrl + 'api/myusers', data: userOrganisationModels }); return (request.then(handleSuccess, handleError)); } function updateUser(user) { var request = $http({ method: "put", url: config.myusersUrl + 'api/myusers/' + user.id, data: user }); return (request.then(handleSuccess, handleError)); } function deleteUser(user) { var request = $http({ method: "delete", url: config.myusersUrl + 'api/myusers/' + user.id, }); return (request.then(handleSuccess, handleError)); } function deleteUsers(userIds) { var request = $http({ method: "delete", headers: { 'Content-Type': 'application/json; charset=UTF-8' }, url: config.myusersUrl + 'api/myusers/' + config.appCode, data: userIds }); return (request.then(handleSuccess, handleError)); } function sendVerificationLink(emailToVerify, userId, applicationId, appCode){ var request = $http({ method: "post", headers: { 'Content-Type': 'application/json; charset=UTF-8' }, url: config.myusersUrl + 'api/emailverifications', data: { emailToVerify: emailToVerify, userId: userId, applicationId: applicationId, appCode: appCode, isSetPassword: true } }); return (request.then(handleSuccess, handleError)); } function getAdminUsers() { var request = $http({ method: "get", url: config.myusersUrl + 'api/adminusers/' }); return (request.then(handleSuccess, handleError)); } function isEmailAvailable(email) { var request = $http({ method: "get", url: config.userProfileServiceUrl + 'emailavailable?email=' + email }); return (request.then(handleSuccess, handleError)); } function isUsernameAvailable(username) { var request = $http({ method: "get", url: config.myusersUrl + 'api/Account/usernameavailable?username=' + username }); return (request.then(handleSuccess, handleError)); } function addUsersToOrg(model) { var request = $http({ method: "put", url: config.myusersUrl + 'api/myusers/organisations/added', data: model }); return (request.then(handleSuccess, handleError)); } function moveUsersToOrg(model) { var request = $http({ method: "put", url: config.myusersUrl + 'api/myusers/organisations/moved', data: model }); return (request.then(handleSuccess, handleError)); } function copyUsersToOrg(model) { var request = $http({ method: "put", url: config.myusersUrl + 'api/myusers/organisations/copied', data: model }); return (request.then(handleSuccess, handleError)); } } })();