progress.service.js
1.59 KB
(function () {
'use strict';
angular.module('wikilibras.progress').service("progressService", ['$http', function ($http) {
var PROJECT_CONF_URL = 'conf/app-conf.json';
var PROJECTS_PROGRESS_ENDPOINT = '/api/projects_progress';
function accessGoalsData(goals, projectName, param) {
var projectGoals = goals[projectName];
if (!projectGoals || typeof projectGoals === 'undefined') return '';
var goal = projectGoals[param];
if (!goal || typeof goal === 'undefined') return '';
return goal;
}
return {
getProjectsProgressData: function() {
return $http.get(PROJECT_CONF_URL).then(function(response) {
var baseApiUrl = response.data.pybossa_url;
var responseGoals = response.data.goals;
return $http.get(baseApiUrl + PROJECTS_PROGRESS_ENDPOINT).then(function(response) {
var responseProgress = response.data;
angular.forEach(responseProgress, function(progress) {
progress['goal_n_tasks'] = accessGoalsData(responseGoals, progress.short_name,'goal_n_tasks');
progress['goal_deadline'] = moment(accessGoalsData(responseGoals, progress.short_name,'goal_deadline'), "DD/MM/YYYY");
progress['last_activity'] = moment(progress['last_activity']);
});
return responseProgress;
});
});
}
};
}]);
}());