From e64729851fbd90f3c34c3dc326e8743298d02a31 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Tue, 6 Oct 2015 18:16:47 -0700 Subject: [PATCH] got oscarhost API to work --- .../users.authentication.server.controller.js | 7 +- app/models/form.server.model.js | 15 +- app/models/form_submission.server.model.js | 99 +- app/tests/form.server.model.test.js | 137 +-- app/tests/form.server.routes.test.js | 973 +++++++++--------- app/tests/form_submission.model.test.js | 115 ++- app/tests/user.server.routes.test.js | 340 +++--- 7 files changed, 776 insertions(+), 910 deletions(-) diff --git a/app/controllers/users/users.authentication.server.controller.js b/app/controllers/users/users.authentication.server.controller.js index 45e24676..41eb0601 100755 --- a/app/controllers/users/users.authentication.server.controller.js +++ b/app/controllers/users/users.authentication.server.controller.js @@ -18,13 +18,14 @@ var _ = require('lodash'), var smtpTransport = nodemailer.createTransport(config.mailer.options); exports.validateVerificationToken = function(req, res, next){ - + console.log('validateVerificationToken'); + console.log('token: '+req.params.token+'\n\n'); nev.confirmTempUser(req.params.token, function(user) { if (user){ res.status(200).send('User successfully verified'); }else { // redirect to resend verification email - return res.status(400).send('Verification token is invalid or has expired'); + res.status(400).send( {message: 'Verification token is invalid or has expired'} ); } }); }; @@ -35,7 +36,7 @@ exports.resendVerificationEmail = function(req, res, next){ res.status(200).send('Verification email successfully Re-Sent'); }else { // user hasn't been found yet - return res.status(400).send( {message: 'Error: Verification Email could NOT be sent'} ); + res.status(400).send( {message: 'Error: Verification Email could NOT be sent'} ); } }); }; diff --git a/app/models/form.server.model.js b/app/models/form.server.model.js index 20396425..35370525 100644 --- a/app/models/form.server.model.js +++ b/app/models/form.server.model.js @@ -45,13 +45,6 @@ var ButtonSchema = new Schema({ * Form Schema */ var FormSchema = new Schema({ - // created: { - // type: Date, - // default: Date.now - // }, - // lastModified: { - // type: Date, - // }, title: { type: String, trim: true, @@ -67,10 +60,10 @@ var FormSchema = new Schema({ type: String, default: '', }, - form_fields: [Field], - //form_fields: { - // type: [FieldSchema], - //}, + // form_fields: [Field], + form_fields: { + type: [FieldSchema], + }, submissions: [{ type: Schema.Types.ObjectId, diff --git a/app/models/form_submission.server.model.js b/app/models/form_submission.server.model.js index e7071301..fb9cd8fd 100644 --- a/app/models/form_submission.server.model.js +++ b/app/models/form_submission.server.model.js @@ -17,33 +17,29 @@ var mongoose = require('mongoose'), FieldSchema = require('./form_field.server.model.js'), OscarSecurity = require('../../scripts/oscarhost/OscarSecurity'); -var newDemoTemplate = { - "activeCount": 0, - "address": "", - "alias": "", - "anonymous": "", - "chartNo": "", - "children":"", - "citizenship":"", - "city": "", - "dateJoined": null, - "dateOfBirth": "", - "email": "", - "firstName": "", - "hin": 9146509343, - "lastName": "", - "lastUpdateDate": null, - "monthOfBirth": "", - "officialLanguage": "", - "phone": "", - "phone2": "", - "providerNo": 0, - "province": "", - "sex": "", - "spokenLanguage": "", - "postal": "", - "yearOfBirth": "" - }; +var newDemoTemplate = { + address: '880-9650 Velit. St.', + city: '', + dateOfBirth: '10', + displayName: 'LITTLE, URIAH', + email: '', + firstName: 'Uriah F.', + hin: '', + lastName: 'Little', + lastUpdateDate: Date.now(), + monthOfBirth: '05', + officialLanguage: 'English', + phone: '250-', + phone2: '', + postal: "S4M 7T8", + province: 'BC', + sex: 'F', + sexDesc: 'Female', + sin: '', + spokenLanguage: 'English', + title: 'MS.', + yearOfBirth: '2015' +}; /** * Form Submission Schema @@ -107,6 +103,8 @@ FormSubmissionSchema.plugin(mUtilities.timestamp, { useVirtual: false }); + + //Oscarhost API hook FormSubmissionSchema.pre('save', function (next) { @@ -115,10 +113,10 @@ FormSubmissionSchema.pre('save', function (next) { var form_ids = _.map(_.pluck(_form.form_fields, '_id'), function(id){ return ''+id;}), submission_ids = _.pluck(self.form_fields, '_id'); - console.log('Form form_field ids\n--------'); - console.log(form_ids); - console.log('FormSubmission form_field ids\n--------'); - console.log(submission_ids); + // console.log('Form form_field ids\n--------'); + // console.log(form_ids); + // console.log('FormSubmission [form_field ids]\n--------'); + // console.log(submission_ids); if(err) next(err); // console.log(_form); @@ -137,36 +135,41 @@ FormSubmissionSchema.pre('save', function (next) { override: true } }; + console.log(self.form_fields); //Generate demographics from hashmap var generateDemo = function(formFields, conversionMap, demographicsTemplate){ - var _generatedDemo = {}; - for(var field in formFields){ - if(demographicsTemplate.hasOwnProperty(conversionMap[field._id])){ - var propertyName = conversionMap[field._id]; + console.log('generating Demo fields'); + console.log(conversionMap); + var _generatedDemo = {}, currField, propertyName; - if(propertyName === 'unparsedDOB'){ - var date = Date.parse(field.fieldValue); - _generatedDemo['dateOfBirth'] = date.getDate(); - _generatedDemo['yearOfBirth'] = date.getFullYear(); - _generatedDemo['monthOfBirth'] = date.getMonth(); - }else{ - _generatedDemo[propertyName] = field.fieldValue; - } + for(var y=0; y', - firstName: 'Uriah F.', - hcType: 'BC', + displayName: 'Test User', + email: 'polydaic@gmail.com', + firstName: 'Test User', hin: '', - hsAlertCount: 0, - lastName: 'Little', + lastName: 'AddDemographic', lastUpdateDate: Date.now(), - lastUpdateUser: '', - links: '', monthOfBirth: '05', officialLanguage: 'English', - patientStatus: 'AC', - patientStatusDate: Date.now(), - phone: '250-', + phone: '250-222-2222', phone2: '', - postal: 'S4M 7T8', - providerNo: '4', + postal: "S4M 7T8", province: 'BC', - rosterStatus: '', - sex: 'M', + sex: 'F', sexDesc: 'Female', sin: '', spokenLanguage: 'English', title: 'MS.', yearOfBirth: '2015' -}; +} + var sampleFormFields = [ {'fieldType':'textfield', 'title':'What\'s your first name', 'fieldValue': ''}, @@ -61,8 +48,8 @@ var sampleFormFields = [ var sampleSubmission = [ {'fieldType':'textfield', 'title':'What\'s your first name', 'fieldValue': 'David'}, {'fieldType':'textfield', 'title':'And your last name', 'fieldValue': 'Baldwynn'}, - {'fieldType':'radio', 'title':'And your sex', 'fieldValue': 0, 'fieldOptions': [{ 'option_id': 0, 'option_title': 'Male', 'option_value': 'M' }, { 'option_id': 1, 'option_title': 'Female', 'option_value': 'F' }]}, - {'fieldType':'date', 'title':'When were you born?', 'fieldValue': Date.now()}, + {'fieldType':'radio', 'title':'And your sex', 'fieldValue': 'M', 'fieldOptions': [{ 'option_id': 0, 'option_title': 'Male', 'option_value': 'M' }, { 'option_id': 1, 'option_title': 'Female', 'option_value': 'F' }]}, + {'fieldType':'date', 'title':'When were you born?', 'fieldValue': 'Tue Oct 06 2015 15:17:48 GMT-0700 (PDT)'}, {'fieldType':'number', 'title':'What\'s your phone #?', 'fieldValue': '6043158008'} ]; @@ -76,6 +63,7 @@ var user, myForm, mySubmission; * Unit tests */ describe('FormSubmission Model Unit Tests:', function() { + this.timeout(15000); beforeEach(function(done) { user = new User({ firstName: 'Full', @@ -122,7 +110,7 @@ describe('FormSubmission Model Unit Tests:', function() { var submissionFields = _.clone(myForm.form_fields); for(var z=0; z