progress.service.js
2.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
(function () {
'use strict';
angular.module('wikilibras.progress').service("progressService", ['$http', '$q', function ($http, $q) {
var PROJECT_CONF_URL = 'conf/app-conf.json';
var PROJECTS_PROGRESS_ENDPOINT = '/api/projects_progress';
var UPLOADED_SIGNS = '/countVideo';
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 basePyBossaApiUrl = response.data.pybossa_url;
var baseDBApiUrl = response.data.db_api_url;
var responseGoals = response.data.goals;
return $q.all([
$http.get(basePyBossaApiUrl + PROJECTS_PROGRESS_ENDPOINT),
$http.get(baseDBApiUrl + UPLOADED_SIGNS)
]).then(function(response) {
var responseProgress = response[0].data;
var uploadSignsProgress = {
'short_name': 'uploaded_signs',
'n_completed_tasks': response[1].data[0]
};
responseProgress.push(uploadSignsProgress);
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']);
});
console.log(responseProgress);
return responseProgress;
});
});
}
};
}]);
}());