Skip to content
This repository was archived by the owner on Nov 7, 2018. It is now read-only.

Commit dbafcfc

Browse files
authored
Merge pull request #23 from teresita-guerrero/issue20
Dead stores should be removed on userStory.js Fixes #20
2 parents 7ec90bf + e5358da commit dbafcfc

File tree

1 file changed

+97
-110
lines changed

1 file changed

+97
-110
lines changed

dashboard-project-api/common/models/userStory.js

Lines changed: 97 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@ module.exports = function(UserStory) {
22
var fs = require("fs");
33
var route = '../tracker';
44
var app = require('../../server/server');
5-
var http = require("http");
6-
var https = require('https');
75
var markdown = require("markdown").markdown;
86
var async = require("async");
9-
var htmlparser = require("htmlparser");
107
var cheerio = require('cheerio');
118
var xssFilters = require("xss-filters");
129
const SPEC_URL = "http://specs.openstack.org/openstack/openstack-user-stories/user-stories/proposed/";
@@ -30,7 +27,6 @@ module.exports = function(UserStory) {
3027
//filter by Id
3128
var file = userStories.filter(function(item){
3229
// VALIDATE IF A VALID ID IS COMING!
33-
console.log("my id",xssFilters.inHTMLData(id));
3430
return item.id == xssFilters.inHTMLData(id);
3531
})
3632

@@ -46,20 +42,16 @@ module.exports = function(UserStory) {
4642
total: 0
4743
}
4844

49-
userStory.tasks.forEach(function (taskName, index, array) {
45+
userStory.tasks.forEach(function (taskName) {
5046

5147
var task = userStory.tasks_status[taskName];
52-
console.log("La tarea es:", task);
5348

54-
task.projects.forEach(function (projectName, index, array) {
55-
console.log("The project name is, ", projectName);
49+
task.projects.forEach(function (projectName) {
5650
//VALIDATE projectName EXISTS
5751
var blueprints = task.projects_status[xssFilters.inHTMLData(projectName)].blueprints;
5852
var blueprintNames = Object.keys(blueprints);
5953

60-
blueprintNames.forEach(function (blueprintName, index, array) {
61-
console.log("single blueprint: ",blueprintName);
62-
console.log("el nombre del blue print es: ", blueprints[blueprintName]);
54+
blueprintNames.forEach(function (blueprintName) {
6355
// VALIDATE PROPERLY if this statement is not true
6456
if (blueprints[xssFilters.inHTMLData(blueprintName)] == 'completed')
6557
blueprintsResume.completed = blueprintsResume.completed + 1;
@@ -82,7 +74,7 @@ module.exports = function(UserStory) {
8274
var Patch = app.models.Patch;
8375
var lastUpdate = '';
8476

85-
Patch.latestUpdate(userStory.source, function (err, response, next) {
77+
Patch.latestUpdate(userStory.source, function (err, response) {
8678
response = JSON.parse(response.substring(5));
8779

8880
if(response.length > 0){
@@ -100,99 +92,7 @@ module.exports = function(UserStory) {
10092

10193
}
10294

103-
104-
// Parse data from userStory
105-
var parseUserStory = function(userStory, callback){
106-
107-
async.waterfall([function(cb){
108-
109-
getLastUpdated(userStory, cb)
110-
111-
},function(lastUpdated, cb){
112-
userStory.updatedOn = lastUpdated;
113-
userStory.showDetailedUri = SPEC_URL + userStory.source + '.html';
114-
userStory.createdOn = userStory.date;
115-
userStory.completed = getbluePrintResume(userStory);
116-
117-
cb(null, userStory);
118-
119-
},function(userStory, cb){
120-
121-
var tasksName = userStory.tasks;
122-
var tasks = userStory.tasks_status;
123-
124-
parseTasks(userStory, tasksName, tasks, cb)
125-
126-
}],function(err,userStory){
127-
callback(null, userStory);
128-
})
129-
}
130-
131-
132-
//??
133-
var parseTasks = function(userStory, tasksNames, tasks, callback) { //get tasks
134-
135-
var tmpTasks = {};
136-
async.each(tasksNames, function(taskName, callbackInner) {
137-
138-
parseTask(tasks[taskName], function(err, parsedTask){
139-
140-
tmpTasks[taskName] = parsedTask;
141-
142-
var tmpProjects = {};
143-
async.each(tmpTasks[taskName].projects, function(projectName, callbackInner2) {
144-
145-
parseProject(tmpTasks[taskName].projects_status[projectName], function(err, parsedProject){
146-
tmpProjects[projectName] = parsedProject;
147-
148-
//Bluprints
149-
var blueprintNames = Object.keys(tmpProjects[projectName].blueprints);
150-
151-
async.map(blueprintNames, function(blueprintName, callbackInner3) {
152-
153-
parseBlueprint(tmpProjects[projectName].blueprints[blueprintName], blueprintName, projectName, function(err, parsedBlueprint){
154-
// tmpProjects[projectName].blueprints[blueprintName] = parsedBlueprint
155-
callbackInner3(null, parsedBlueprint)
156-
})
157-
158-
}, function(err, blueprints) {
159-
160-
tmpProjects[projectName].blueprints = blueprints;
161-
162-
var project = {};
163-
project[projectName] = tmpProjects[projectName];
164-
165-
callbackInner2(null)
166-
167-
});
168-
//fin blueprints
169-
170-
})
171-
172-
}, function(err) {
173-
174-
tmpTasks[taskName].projects_status = tmpProjects;
175-
callbackInner(null)
176-
});
177-
178-
})
179-
180-
}, function(err) {
181-
182-
userStory.tasks = tasksNames;
183-
userStory.tasks_status = tmpTasks;
184-
185-
//userStory.percentageComplete = getPercentage(blueprintsResume)
186-
187-
callback(null, userStory);
188-
189-
});
190-
191-
}
192-
193-
194-
//?
195-
95+
//getting task description
19696
var getTaskDescription = function(task, callback){
19797

19898
var Rst = app.models.Rst;
@@ -204,8 +104,9 @@ module.exports = function(UserStory) {
204104
var $ = cheerio.load(html_content);
205105

206106
var index = null;
107+
var description;
207108
//Find the title
208-
var description = $('h1').each(function(i, elem) {
109+
$('h1').each(function(i, elem) {
209110
if(elem.children[0].data == 'Problem description'){
210111
index = i;
211112
}
@@ -223,13 +124,14 @@ module.exports = function(UserStory) {
223124
})
224125

225126
}
226-
//?
127+
227128
var getUriTask = function(spec){
228129
var base = 'https://github.com/openstack/openstack-specs/blob/master/specs/';
229130

230131
return base + spec + '.rst';
231132
}
232-
//?
133+
134+
//parsing task
233135
var parseTask = function(originalTask, callback){
234136

235137
getTaskDescription(originalTask, function(err, description){
@@ -239,8 +141,8 @@ module.exports = function(UserStory) {
239141
})
240142

241143
}
242-
//?
243144

145+
//parsing project
244146
var parseProject = function(originalProject, callback){
245147

246148
var urlArray = originalProject.spec.split('/');
@@ -250,7 +152,7 @@ module.exports = function(UserStory) {
250152
callback(null, originalProject)
251153
}
252154

253-
//?
155+
//parsing blueprints
254156
var parseBlueprint = function(originalBlueprint, blueprintName, projectName, callback){
255157
var Blueprint = app.models.Blueprint;
256158
var Patch = app.models.Patch;
@@ -292,8 +194,93 @@ module.exports = function(UserStory) {
292194

293195
}
294196

197+
//parsing tasks
198+
var parseTasks = function(userStory, tasksNames, tasks, callback) { //get tasks
199+
200+
var tmpTasks = {};
201+
async.each(tasksNames, function(taskName, callbackInner) {
295202

203+
parseTask(tasks[taskName], function(err, parsedTask){
204+
205+
tmpTasks[taskName] = parsedTask;
206+
207+
var tmpProjects = {};
208+
async.each(tmpTasks[taskName].projects, function(projectName, callbackInner2) {
209+
210+
parseProject(tmpTasks[taskName].projects_status[projectName], function(err, parsedProject){
211+
tmpProjects[projectName] = parsedProject;
212+
213+
//Bluprints
214+
var blueprintNames = Object.keys(tmpProjects[projectName].blueprints);
296215

216+
async.map(blueprintNames, function(blueprintName, callbackInner3) {
217+
218+
parseBlueprint(tmpProjects[projectName].blueprints[blueprintName], blueprintName, projectName, function(err, parsedBlueprint){
219+
// tmpProjects[projectName].blueprints[blueprintName] = parsedBlueprint
220+
callbackInner3(null, parsedBlueprint)
221+
})
222+
223+
}, function(err, blueprints) {
224+
225+
tmpProjects[projectName].blueprints = blueprints;
226+
227+
var project = {};
228+
project[projectName] = tmpProjects[projectName];
229+
230+
callbackInner2(null)
231+
232+
});
233+
//fin blueprints
234+
235+
})
236+
237+
}, function() {
238+
tmpTasks[taskName].projects_status = tmpProjects;
239+
callbackInner(null)
240+
});
241+
242+
})
243+
244+
}, function() {
245+
userStory.tasks = tasksNames;
246+
userStory.tasks_status = tmpTasks;
247+
248+
//userStory.percentageComplete = getPercentage(blueprintsResume)
249+
250+
callback(null, userStory);
251+
252+
});
253+
254+
}
255+
256+
// Parse data from userStory
257+
var parseUserStory = function(userStory, callback){
258+
259+
async.waterfall([function(cb){
260+
261+
getLastUpdated(userStory, cb)
262+
263+
},function(lastUpdated, cb){
264+
userStory.updatedOn = lastUpdated;
265+
userStory.showDetailedUri = SPEC_URL + userStory.source + '.html';
266+
userStory.createdOn = userStory.date;
267+
userStory.completed = getbluePrintResume(userStory);
268+
269+
cb(null, userStory);
270+
271+
},function(userStory, cb){
272+
273+
var tasksName = userStory.tasks;
274+
var tasks = userStory.tasks_status;
275+
276+
parseTasks(userStory, tasksName, tasks, cb)
277+
278+
}],function(err,userStory){
279+
callback(null, userStory);
280+
})
281+
}
282+
283+
//?
297284
UserStory.on('attached',function(){
298285

299286
UserStory.findById = function(id, params, cb){

0 commit comments

Comments
 (0)