(function () { "use strict"; var serviceId = "markingSchemeAdminDataContext"; angular .module("markingSchemeAdmin") .factory(serviceId, [ "$q", "$http", "markingSchemeAdminConfig", datacontext, ]); function datacontext($q, $http, config, $modal) { var service = { getAllMarkingSchemes: getAllMarkingSchemes, getAllMarkingSchemesForUser: getAllMarkingSchemesForUser, createMarkingScheme: createMarkingScheme, deleteMarkingScheme: deleteMarkingScheme, updateMarkingScheme: updateMarkingScheme, getMarkingScheme: getMarkingScheme, archiveMarkingScheme: archiveMarkingScheme, unarchiveMarkingScheme: unarchiveMarkingScheme, exportMarkingScheme: exportMarkingScheme, importMarkingScheme: importMarkingScheme, }; 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; } // Get all marking schemes function getAllMarkingSchemes() { var request = $http({ method: "get", url: config.markingSchemeUrl + "schemes" + "?cache=" + Date.now(), }); return request.then(handleSuccess, handleError); } // Get all marking schemes for user function getAllMarkingSchemesForUser() { var request = $http({ method: "get", url: config.markingSchemeUrl + "schemes/user" + "?cache=" + Date.now(), }); return request.then(handleSuccess, handleError); } function getMarkingScheme(markingSchemeId) { var request = $http({ method: "get", url: config.markingSchemeUrl + "schemes/" + markingSchemeId, }); return request.then(handleSuccess, handleError).catch(function (ex) {}); } // Creat a marking scheme function createMarkingScheme(scheme) { var request = $http({ method: "post", url: config.markingSchemeUrl + "schemes", data: scheme, }); return request.then(handleSuccess, handleError); } // Delete a marking scheme function deleteMarkingScheme(scheme) { var request = $http({ method: "delete", url: config.markingSchemeUrl + "schemes/" + scheme.id, }); return request.then(handleSuccess, handleError); } // Update a marking scheme function updateMarkingScheme(scheme) { var request = $http({ method: "put", url: config.markingSchemeUrl + "schemes", data: scheme, }); return request.then(handleSuccess, handleError); } // Archive a marking scheme function archiveMarkingScheme(scheme) { var request = $http({ method: "post", url: config.markingSchemeUrl + "schemes/" + scheme.id + "/archive", }); return request.then(handleSuccess, handleError); } // Unarchive a marking scheme function unarchiveMarkingScheme(scheme) { var request = $http({ method: "post", url: config.markingSchemeUrl + "schemes/" + scheme.id + "/unarchive", }); return request.then(handleSuccess, handleError); } // Export a marking scheme function exportMarkingScheme(scheme) { var request = $http({ method: "post", url: config.markingSchemeUrl + "schemes/export/" + scheme.id, }); return request.then(handleSuccess, handleError); } function importMarkingScheme(file) { let fd = new FormData(); fd.append("file", file); var request = $http({ method: "post", url: config.markingSchemeUrl + "schemes/import", data: fd, headers: { "Content-Type": undefined, }, }); return request.then(handleSuccess, handleError); } } })();