mirror of
https://github.com/Lissy93/happy-app.git
synced 2021-05-12 19:52:18 +03:00
Response saving will happen in an external file now, to keep stuff cleaner
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import Promise from "bluebird";
|
||||
|
||||
const ResponseSaver = require("../../commons/response-saver");
|
||||
|
||||
const mongoose = require('mongoose');
|
||||
const Schema = mongoose.Schema;
|
||||
@@ -17,37 +18,15 @@ let teamRecordSchema = new Schema({
|
||||
]
|
||||
});
|
||||
|
||||
function checkInputIsValidJson(input) {
|
||||
return (/^[\],:{}\s]*$/.test(input.replace(/\\["\\\/bfnrtu]/g, '@').
|
||||
replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
|
||||
replace(/(?:^|:|,)(?:\s*\[)+/g, '')));
|
||||
}
|
||||
|
||||
teamRecordSchema.statics.insertUserResponse = (userResponse) => {
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
// TODO check if valid json object
|
||||
|
||||
// TODO check if userhash is part of a valid team
|
||||
|
||||
// TODO check user has not already responded today
|
||||
|
||||
// TODO update record with new response
|
||||
|
||||
// TODO return appropriate message
|
||||
|
||||
let teamUserResponse = {
|
||||
teamName: "demo",
|
||||
data: [
|
||||
{
|
||||
date: new Date(),
|
||||
userResults: [ userResponse ]
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
const _userResponse = new TeamRecordSchema(teamUserResponse);
|
||||
|
||||
_userResponse.save((err, saved) => {
|
||||
err ? reject(err)
|
||||
: resolve(saved);
|
||||
});
|
||||
});
|
||||
const rs = new ResponseSaver();
|
||||
return rs.insertUserResponse(userResponse);
|
||||
};
|
||||
|
||||
|
||||
|
||||
57
server/commons/response-saver.js
Normal file
57
server/commons/response-saver.js
Normal file
@@ -0,0 +1,57 @@
|
||||
import Promise from "bluebird";
|
||||
import TeamMembersModel from "../api/teams/team-members.model";
|
||||
import EmailAddressHasher from "./email-address-hasher";
|
||||
const TeamRecordSchema = require("../api/records/record.model");
|
||||
|
||||
class ResponseSaver {
|
||||
|
||||
insertUserResponse(userResponse){
|
||||
let errorMessage = "Can't fetch error message."; // This will be overridden with correct err message
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
// if (!checkInputIsValidJson(userResponse)){
|
||||
// errorMessage = "Malformed input. Must be valid JSON.";
|
||||
// return reject(new TypeError(errorMessage));
|
||||
// }
|
||||
// TODO check if userhash is part of a valid team
|
||||
TeamMembersModel.find({ }, function(err, teams) {
|
||||
teams.forEach((team)=>{
|
||||
let teamName = team.teamName;
|
||||
team.members.forEach((member)=>{
|
||||
console.log(EmailAddressHasher.checkEmailAgainstHash(member.email));
|
||||
if(EmailAddressHasher.checkEmailAgainstHash(member.email)){
|
||||
console.log('user found, in team '+teamName);
|
||||
}
|
||||
})
|
||||
})
|
||||
});
|
||||
|
||||
// TODO check user has not already responded today
|
||||
|
||||
// TODO update record with new response
|
||||
|
||||
// TODO return appropriate message
|
||||
|
||||
let teamUserResponse = {
|
||||
teamName: "demo",
|
||||
data: [
|
||||
{
|
||||
date: new Date(),
|
||||
userResults: [ userResponse ]
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
const _userResponse = new TeamRecordSchema(teamUserResponse);
|
||||
|
||||
_userResponse.save((err, saved) => {
|
||||
err ? reject(err)
|
||||
: resolve(saved);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = ResponseSaver;
|
||||
Reference in New Issue
Block a user