Changeset 495 for Dev/trunk/src/server/app.js
- Timestamp:
- 03/10/14 00:47:38 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk/src/server/app.js
r492 r495 148 148 149 149 function identity(obj) { return obj; } 150 function handleUnknownResponse(status,error) {150 function handleUnknownResponse(status,error) { 151 151 return new HTTPResult(500,{error: error.reason}); 152 152 } … … 444 444 445 445 // Categories and topics 446 function getTopicsWithCategory(category) { 447 var url = '_design/questions/_view/all'; 448 return HTTPResult.fromResponsePromise(couch.get(url,{query:{reduce:true,group:true,group_level:2,startkey:[category],endkey:[category,{}]}}).response, 449 handleUnknownError) 450 .handle({ 451 200: function(result) { 452 return _.map(result.rows, function(item) { return { name:item.key[1], count:item.value }; }); 453 }, 454 default: handleUnknownResponse 455 }); 456 } 446 457 app.get('/api/categories', 447 458 ensureAuthenticated, … … 466 477 function(req,res) { 467 478 var category = req.params.category; 468 var url = '_design/questions/_view/all'; 469 HTTPResult.fromResponsePromise(couch.get(url,{query:{reduce:true,group:true,group_level:2,startkey:[category],endkey:[category,{}]}}).response, 470 handleUnknownError) 471 .handle({ 472 200: function(result) { 473 return _.map(result.rows, function(item) { return { name:item.key[1], count:item.value }; }); 474 }, 475 default: handleUnknownResponse 476 }) 479 getTopicsWithCategory(category) 477 480 .handle(res.send.bind(res)); 478 481 }); … … 482 485 function(req,res) { 483 486 var url = '_design/questions/_view/all_topics'; 484 HTTPResult.fromResponsePromise(couch.get(url,{query:{reduce:true,group:true}}).response, 485 handleUnknownError) 486 .handle({ 487 200: function(result) { 488 return _.map(result.rows, function(item) { return {name:item.key, count:item.value}; }); 489 }, 490 default: handleUnknownResponse 491 }) 492 .handle(res.send.bind(res)); 487 var hr; 488 if ( 'category' in req.query ) { 489 hr = getTopicsWithCategory(req.query.category); 490 } else { 491 hr = HTTPResult.fromResponsePromise(couch.get(url,{query:{reduce:true,group:true}}).response, 492 handleUnknownError) 493 .handle({ 494 200: function(result) { 495 return _.map(result.rows, function(item) { return {name:item.key, count:item.value}; }); 496 }, 497 default: handleUnknownResponse 498 }); 499 } 500 hr.handle(res.send.bind(res)); 493 501 }); 494 502
Note: See TracChangeset
for help on using the changeset viewer.