Changeset 496
- Timestamp:
- 03/10/14 01:05:22 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk/src/server/app.js
r495 r496 502 502 503 503 // Surveys 504 function areSurveyQuestionsUnique(survey) { 505 return _.chain(survey.questions) 506 .map(function(q){ return q.code; }) 507 .uniq() 508 .value().length === survey.questions.length; 509 } 504 510 app.get('/api/surveys', 505 511 ensureAuthenticated, … … 527 533 ensureAuthenticated, 528 534 ensureMIME(JSON_MIME), 529 makeDocPost('Survey')); 535 function(req,res) { 536 var doc = req.body; 537 var hr; 538 if ( !areSurveyQuestionsUnique(doc) ) { 539 hr = new HTTPResult(400,{error:"Survey contains duplicate questions."}); 540 } else { 541 hr = postDocument('Survey',doc); 542 } 543 hr.handle(res.send.bind(res)); 544 }); 530 545 app.get('/api/surveys/:id', 531 546 ensureAuthenticated, … … 535 550 ensureAuthenticated, 536 551 ensureMIME(JSON_MIME), 537 makeDocPut_id('Survey')); 552 function(req,res) { 553 var id = req.params.id; 554 var doc = req.body; 555 var rev = etags.parse(req.header('If-Match'))[0] || (doc && doc._rev); 556 var hr; 557 if ( !areSurveyQuestionsUnique(doc) ) { 558 new HTTPResult(400,{error:"Survey contains duplicate questions."}) 559 .handle(res.send.bind(res)); 560 } else { 561 putDocument(id,rev,'Survey',doc) 562 .handle({ 563 201: function(doc) { 564 res.set({ 565 'ETag': etags.format([doc._rev]) 566 }).send(201, doc); 567 }, 568 default: res.send.bind(res) 569 }); 570 } 571 }); 538 572 app.delete('/api/surveys/:id', 539 573 ensureAuthenticated,
Note: See TracChangeset
for help on using the changeset viewer.