@@ -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