(function () { 'use strict'; var app = angular.module('CanvasAdmin'); function datacontext($q, config, $http, OrganisationAdminService, userAuth) { var topLevelOrg; OrganisationAdminService.getTopLevelOrg().then(function (data) { topLevelOrg = data; }); var service = { getCurrentUser: getCurrentUser, getSystemTree: getSystemTree, getStoredSystemTree: getStoredSystemTree, syncAll: syncAll, syncSelected: syncSelected, syncExisting: syncExisting, disconnectCanvas: disconnectCanvas, getSyncHistory: getSyncHistory, getSyncHistoryFromAzure: getSyncHistoryFromAzure, currentUserIsAuthenticated: currentUserIsAuthenticated }; 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 getCurrentUser() { return OrganisationAdminService.getTopLevelOrg().then(function (org) { var request = $http({ method: "get", url: myusersUrl + 'api/canvas/' + org.id + '/currentuser/', }); return (request.then(handleSuccess, handleError)); }); } function currentUserIsAuthenticated(){ return OrganisationAdminService.getTopLevelOrg().then(function (org) { var request = $http({ method: "get", url: myusersUrl + 'api/canvas/' + org.id + '/currentuser/isauthenticated', }); return (request.then(handleSuccess, handleError)); }); } function disconnectCanvas(orgId) { var request = $http({ method: "Delete", url: myusersUrl + 'api/canvas/' + orgId + '/disconnect', }); return (request.then(handleSuccess, handleError)); } function getSystemTree() { var request = $http({ method: "get", url: myusersUrl + 'api/canvas/' + topLevelOrg.id + '/full', }); return (request.then(handleSuccess, handleError)); } function getStoredSystemTree() { var request = $http({ method: "get", url: myusersUrl + 'api/canvas/' + topLevelOrg.id + '/sync/tree', }); return (request.then(handleSuccess, handleError)); } function syncSelected(systemTree, sendWelcomeEmail) { var request = $http({ method: "post", url: myusersUrl + 'api/canvas/' + topLevelOrg.id + '/sync/selected/' + sendWelcomeEmail, data: systemTree }); return (request.then(handleSuccess, handleError)); } function syncAll(sendWelcomeEmail) { var request = $http({ method: "post", url: myusersUrl + 'api/canvas/' + topLevelOrg.id + '/sync/all/' + sendWelcomeEmail, data: {} }); return (request.then(handleSuccess, handleError)); } function syncExisting(sendWelcomeEmail) { var request = $http({ method: "post", url: myusersUrl + 'api/canvas/' + topLevelOrg.id + '/sync/update/' + sendWelcomeEmail, data: {} }); return (request.then(handleSuccess, handleError)); } function getSyncHistory() { var request = $http({ method: "get", url: myusersUrl + 'api/canvas/' + topLevelOrg.id + '/sync/history', }); return (request.then(handleSuccess, handleError)); } // Get the history straight from azure function getSyncHistoryFromAzure(url) { var request = $http({ method: "get", url: url }); return (request.then(handleSuccess, handleError)); } } app.factory('CanvasAdminService', ['$q', 'CanvasAdminConfig', '$http', 'OrganisationAdminService', 'userAuth', datacontext]); })();