(function () { 'use strict'; var serviceId = 'taskAdminDataContext'; angular.module('taskAdmin').factory(serviceId, ['$q', '$http', 'taskAdminConfig', datacontext]); function datacontext($q, $http, config, $modal) { var service = { getAllTaskClasses: getAllTaskClasses, createTaskClass: createTaskClass, deleteTaskClass: deleteTaskClass, updateTaskClass: updateTaskClass, getAllTasks: getAllTasks, createTask: createTask, deleteTask: deleteTask, updateTask: updateTask, getTemplatesByOrgs: getTemplatesByOrgs, getPublishedTemplatesByOrgs: getPublishedTemplatesByOrgs, getTemplate: getTemplate, getResponseTypes: getResponseTypes, assignTaskToGroup: assignTaskToGroup, getAssignedTasks: getAssignedTasks, getAssignedTasksSimple: getAssignedTasksSimple, recallAssignedTask: recallAssignedTask, closeAssignedTask: closeAssignedTask, isMarkingSchemeAssociatedToTask: isMarkingSchemeAssociatedToTask, getAssignedUsers: getAssignedUsers, createResponseReview: createResponseReview, getShowcase: getShowcase, getAssignedTask: getAssignedTask, saveResponseReview: saveResponseReview, assignIndividualTask: assignIndividualTask, getDefaultTaskClass: getDefaultTaskClass, getTaskRecord: getTaskRecord, getTaskRecordsByFormTemplate: getTaskRecordsByFormTemplate, getTaskBadges: getTaskBadges, getStuffItem: getStuffItem }; 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 getDefaultTaskClass() { var request = $http({ method: "get", url: config.taskUrl + 'taskclasses/default', }); return (request.then(handleSuccess, handleError)); } // Get all the task classes function getAllTaskClasses() { var request = $http({ method: "get", url: config.taskUrl + 'taskclasses' + '?cache=' + Date.now(), }); return (request.then(handleSuccess, handleError)); } // Create a task class function createTaskClass(TaskClass) { var request = $http({ method: "post", url: config.taskUrl + 'taskclasses', data: TaskClass }); return (request.then(handleSuccess, handleError)); } // Delete a task class function deleteTaskClass(TaskClass) { var request = $http({ method: "delete", url: config.taskUrl + 'taskclasses/' + TaskClass.id, }); return (request.then(handleSuccess, handleError)); } // Update a task class function updateTaskClass(taskClass) { var request = $http({ method: "put", url: config.taskUrl + 'taskclasses', data: taskClass }); return (request.then(handleSuccess, handleError)); } // Get response types function getResponseTypes() { var request = $http({ method: "get", url: config.taskUrl + 'availabletaskresponsetypes' + '?cache=' + Date.now(), }); return (request.then(handleSuccess, handleError)); } // Get all the tasks function getAllTasks() { var request = $http({ method: "get", url: config.taskUrl + 'taskrecords' + '?cache=' + Date.now(), }); return (request.then(handleSuccess, handleError)); } // Create a task function createTask(task) { var request = $http({ method: "post", url: config.taskUrl + 'taskrecords', data: task }); return (request.then(handleSuccess, handleError)); } // Delete a task class function deleteTask(task) { var request = $http({ method: "delete", url: config.taskUrl + 'taskrecords/' + task.id, }); return (request.then(handleSuccess, handleError)); } // Update a task class function updateTask(task) { var request = $http({ method: "put", url: config.taskUrl + 'taskrecords', data: task }); return (request.then(handleSuccess, handleError)); } // Get a TaskRecord function getTaskRecord(task) { var request = $http({ method: "get", url: config.taskUrl + 'taskrecords/' + task.id + '?cache=' + Date.now(), data: task }); return (request.then(handleSuccess, handleError)); } // Get badge templates for a list of org ids function getTemplatesByOrgs(orgIds) { var request = $http({ method: "post", url: config.mybadgesUrl + 'organisation/badgetemplates', data: orgIds }); return (request.then(handleSuccess, handleError)); } // Get badge templates for a list of org ids function getPublishedTemplatesByOrgs(orgIds) { var request = $http({ method: "post", url: config.mybadgesUrl + 'organisation/publishedbadgetemplates', data: orgIds }); return (request.then(handleSuccess, handleError)); } // Get existing badge template function getTemplate(templateId) { var request = $http({ method: "get", url: config.mybadgesUrl + 'badgetemplates/' + templateId }); return (request.then(handleSuccess, handleError)); } // Get existing badge template function assignTaskToGroup(assignment) { var request = $http({ method: "post", url: config.taskUrl + 'taskassignments', data: assignment }); return (request.then(handleSuccess, handleError)); } function getAssignedTasks() { var request = $http({ method: "get", url: config.taskUrl + 'taskassignments' + '?cache=' + Date.now(), }); return (request.then(handleSuccess, handleError)); } function getAssignedTasksSimple() { var request = $http({ method: "get", url: config.taskUrl + 'taskassignmentssimple' + '?cache=' + Date.now(), }); return (request.then(handleSuccess, handleError)); } function getAssignedTask(taskId) { var request = $http({ method: "get", url: config.taskUrl + 'taskassignments/' + taskId + '?cache=' + Date.now(), }); return (request.then(handleSuccess, handleError)); } function recallAssignedTask(assignment) { var request = $http({ method: "put", url: config.taskUrl + 'taskassignments/' + assignment.id + '/recall', data: { status: 1 } }); return (request.then(handleSuccess, handleError)); } function closeAssignedTask(assignment) { var request = $http({ method: "put", url: config.taskUrl + 'taskassignments/' + assignment.id + '/close', data: { status: 2 } }); return (request.then(handleSuccess, handleError)); } function getAssignedUsers(assignment) { var request = $http({ method: "get", url: config.taskUrl + 'taskassignments/' + assignment.id + '/users' + '?cache=' + Date.now(), }); return (request.then(handleSuccess, handleError)); } function isMarkingSchemeAssociatedToTask(scheme) { var request = $http({ method: "get", url: config.taskUrl + 'taskrecords/markingschemes/' + scheme.id, }); return (request.then(handleSuccess, handleError)); } function createResponseReview(responseId) { var request = $http({ method: "post", url: config.taskUrl + 'taskassignmentresponsereviews', data: { taskAssignmentResponseId: responseId, status: 0 } }); return (request.then(handleSuccess, handleError)); } function saveResponseReview(review) { var request = $http({ method: "put", url: config.taskUrl + 'taskassignmentresponsereviews', data: review }); return (request.then(handleSuccess, handleError)); } function assignIndividualTask(model) { var request = $http({ method: "post", url: config.taskUrl + 'taskindividualassignments', data: model }); return (request.then(handleSuccess, handleError)); } //get a specific showcase using its unique ID function getShowcase(showcaseId) { var request = $http({ method: "get", url: myShowcaseSiteUrl + 'api/showcase/' + showcaseId }); return (request.then(handleSuccess, function(response){return null})); } //get the task records that are using a formtemplate function getTaskRecordsByFormTemplate(formTemplateId) { var request = $http({ method: "get", url: config.taskUrl + 'taskrecords/formtemplate/' + formTemplateId }); return (request.then(handleSuccess, function(response){ return null })); //return [{ id: '123' }] } function getTaskBadges(badgeId){ //return [{"isInUse": true, "taskBadges": [{"name": "red task"}, {"name": "blue task"}] }] ; var request = $http({ method: "get", url: config.taskUrl + 'taskbadges/' + badgeId }); return (request.then(handleSuccess, function(response){ return null })); } function getStuffItem(source) { //return [{"isInUse": true, "taskBadges": [{"name": "red task"}, {"name": "blue task"}] }] ; var request = $http({ method: "get", url: source }); return (request.then(handleSuccess, function (response) { return null })); } myShowcaseItemApiUrl } })();