(function () { 'use strict'; var serviceId = 'myFormsAdminDataContext'; angular.module('myformsAdmin').factory(serviceId, ['$q', '$http', 'myFormsAdminConfig', datacontext]); function datacontext($q, $http, config) { var service = { getFormTemplate: getFormTemplate, getTemplatesCreatedByMe: getTemplatesCreatedByMe, editFormTemplate: editFormTemplate, deleteFormTemplate: deleteFormTemplate, cloneFormTemplate: cloneFormTemplate, createFormTemplate: createFormTemplate, publishFormTemplate: publishFormTemplate, changeAvailabilityFormTemplate: changeAvailabilityFormTemplate, retireFormTemplate: retireFormTemplate, isDataIdentifierUnique: isDataIdentifierUnique, getTemplatesICanManage: getTemplatesICanManage, getActivityEntries: getActivityEntries, allocateIndividuals: allocateIndividuals, getDefaultActivities: getDefaultActivities, saveActivityLibrary: saveActivityLibrary, getActivityLibraryIdsForOrg: getActivityLibraryIdsForOrg }; 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); } //check if a dataidentifier is unique function isDataIdentifierUnique(value) { var request = $http({ method: "get", url: config.formDataIdentifierRemoteServiceUrl + 'unique/' + value }); return (request.then(handleSuccess, handleError)); } //get a specific form template function getFormTemplate(formTemplateId) { var request = $http({ method: "get", url: config.formTemplateRemoteServiceUrl + formTemplateId }); return (request.then(handleSuccess, handleError)); } //get all form templates i created function getTemplatesCreatedByMe() { var request = $http({ method: "get", url: config.formTemplateManagementRemoteServiceUrl }); return (request.then(handleSuccess, handleError)); } //get available templates I can manage (I created or i am an admin in the org they are available for) function getTemplatesICanManage() { var request = $http({ method: "get", url: config.formTemplateManagementRemoteServiceUrl + 'allavailable', }); return (request.then(handleSuccess, handleError)); } //Get the system default activity templates function getDefaultActivities() { var request = $http({ method: "get", url: config.formTemplateManagementRemoteServiceUrl + 'activities/systemdefaults', }); return (request.then(handleSuccess, handleError)); } //edit an existing form template function editFormTemplate(formTemplateId,model) { var request = $http({ method: "put", url: config.formTemplateManagementRemoteServiceUrl + formTemplateId, data:model }); return (request.then(handleSuccess, handleError)); } //delete a form template function deleteFormTemplate(formTemplateId) { var request = $http({ method: "delete", url: config.formTemplateManagementRemoteServiceUrl + formTemplateId }); return (request.then(handleSuccess, handleError)); } //clone a form template function cloneFormTemplate(formTemplateId) { var request = $http({ method: "get", url: config.formTemplateManagementRemoteServiceUrl + formTemplateId+'/clone' }); return (request.then(handleSuccess, handleError)); } //create a new form template function createFormTemplate(model) { var request = $http({ method: "post", url: config.formTemplateManagementRemoteServiceUrl, data: model }); return (request.then(handleSuccess, handleError)); } //publish a form template function publishFormTemplate(formTemplateId,data) { var request = $http({ method: "post", url: config.formTemplateManagementRemoteServiceUrl + formTemplateId + '/publish', data:data }); return (request.then(handleSuccess, handleError)); } //change the availability dates for a form template function changeAvailabilityFormTemplate(formTemplateId, data) { var request = $http({ method: "post", url: config.formTemplateManagementRemoteServiceUrl + formTemplateId + '/changeavailability', data: data }); return (request.then(handleSuccess, handleError)); } //retire / withdraw a form template function retireFormTemplate(formTemplateId) { var request = $http({ method: "get", url: config.formTemplateManagementRemoteServiceUrl + formTemplateId + '/retire' }); return (request.then(handleSuccess, handleError)); } function getActivityEntries(activityFormId, userId) { var request = $http({ method: "get", url: config.formRemoteServiceUrl + 'activities/' + activityFormId + '/entries/user/' + userId }); return (request.then(handleSuccess, handleError)); } function allocateIndividuals(formTemplateId, userIds, availableFrom, availableTo) { var request = $http({ method: "post", data: { userIds: userIds, formTemplateId: formTemplateId, availableFrom: availableFrom, availableTo: availableTo }, url: config.formTemplateManagementRemoteServiceUrl + formTemplateId + '/individualAllocations' }); return (request.then(handleSuccess, handleError)); } function saveActivityLibrary(activityIds) { var request = $http({ method: "post", data: activityIds, url: config.formTemplateManagementRemoteServiceUrl + 'activitylibrary' }); return (request.then(handleSuccess, handleError)); } function getActivityLibraryIdsForOrg() { var request = $http({ method: "get", url: config.formTemplateManagementRemoteServiceUrl + 'activitylibrary' }); return (request.then(handleSuccess, handleError)); } } })();