From 9ed024e86d3829e708aa10f44e7a231230a90dec Mon Sep 17 00:00:00 2001 From: Mike Fitzpatrick Date: Sun, 3 Jun 2018 16:39:10 -0400 Subject: [PATCH] - Added profile submission handling --- models/profile.js | 44 ++++++++++++++++++++++++++++++-------------- routes/profiles.js | 18 ++++++++++++++++++ urge-debug.log | 2 ++ urge-error.log | 2 ++ 4 files changed, 52 insertions(+), 14 deletions(-) create mode 100644 urge-debug.log create mode 100644 urge-error.log diff --git a/models/profile.js b/models/profile.js index df062ad..2140dfc 100644 --- a/models/profile.js +++ b/models/profile.js @@ -1,3 +1,4 @@ +const EventEmitter = require('events'); const Images = require('../modules/images'); const Logger = require('../modules/logger'); const Messages = require('../models/message'); @@ -8,26 +9,16 @@ const ProfileSchema = new Mongoose.Schema({ "details": { "about": { type: String }, "age": { type: Number, index: true, default: 0 }, - "body": { type: String, enum: ['dns','slim','toned','average','muscular','large','stocky'], default: 'dns' }, - "ethnicity": { type: String, enum: ['dns','asian','black','latino','middle eastern','mixed','native american','white','south asian','other'], default: 'dns' }, - "gender": { type: String, enum: ['man','cis man','trans man','woman','cis woman','trans woman','non-binary','non-conforming','queer','crossdresser'] }, - "height": { type: String }, - "looking": [{ type: String, enum: ['chat','friends','networking','dates','relationship','right now'] }], + "location": { type: String }, "name": { type: String, index: true }, "pic": { "detail": { type: String, default: "profile/default_detail.png" }, "thumb": { type: String, default: "profile/default_thumbnail.png" } - }, - "position": { type: String, enum: ['dns','bottom','vers bottom','versatile','vers top','top'], default: 'dns' }, - "pronouns": { type: String }, - "weight": { type: Number }, - "relationship": { type: String, enum: ['dns','committed','dating','engaged','exclusive','married','open relationship','partnered','single'], default: 'dns' }, - "status": { type: String, enum: ['dns','unknown','negative','negative, on prep','postive','positive, undetectable'], default: 'dns' }, - "tested": { type: Date }, - "tribe": [{ type: String, enum: ['twink','trans','poz','leather','geek','discreet','otter','bear','daddy','jock','clean-cut'] }] + } }, "messages": [ { type: Messages.schema } ], - "submitted": { type: Boolean, default: false } + "submitted": { type: Boolean, default: false }, + "approved": { type: Boolean, default: false } }); ProfileSchema.pre('findOneAndUpdate', function (next) { @@ -491,6 +482,31 @@ module.exports = { }); }, + processSubmission: (e, profile) => { + var ProfileEvents = new EventEmitter(); + var temp = JSON.parse(profile.profile); + var insert = { + details: temp.details, + messages: temp.messages, + submitted: true, + approved: false + }; + + insert.details.pic = { detail: profile.image }; + + ProfileEvents.once('create', (err, result) => { + if (err) { + e.emit('processSubmission', err, null); + } + + if (result) { + e.emit('processSubmission', null, result); + } + }); + + module.exports.create(ProfileEvents, insert); + }, + update: (e, profileId, profile) => { const promise = new Promise((resolve, reject) => { ProfileModel.findOneAndUpdate( diff --git a/routes/profiles.js b/routes/profiles.js index 373df56..529486e 100644 --- a/routes/profiles.js +++ b/routes/profiles.js @@ -176,6 +176,24 @@ Router.route('/list' + ParamStr) }); }); +Router.route('/submission') + .post((req, res) => { + var ProfileEvents = new EventEmitter(); + var profile = req.body; + + ProfileEvents.once('processSubmission', (err, result) => { + if (err) { + res.status(500).json({ message: 'Could not process user profile submission', err: err, profile: profile }); + } + + if (result) { + res.status(200).json(result); + } + }); + + Profiles.processSubmission(ProfileEvents, profile); + }); + Router.route('/submitted') .get( (req, res) => { Token.verifyThen(req.get('authorization'), 'view', (err, decoded) => { diff --git a/urge-debug.log b/urge-debug.log new file mode 100644 index 0000000..f20a165 --- /dev/null +++ b/urge-debug.log @@ -0,0 +1,2 @@ +{"date":"Tue May 29 2018 01:42:55 GMT-0400 (EDT)","process":{"pid":88218,"uid":501,"gid":20,"cwd":"/Users/mifi/Documents/Projects/Pfosi/code/backend","execPath":"/usr/local/bin/node","version":"v8.1.1","argv":["/usr/local/bin/node","/Users/mifi/Documents/Projects/Pfosi/code/backend/bin/www"],"memoryUsage":{"rss":59949056,"heapTotal":37752832,"heapUsed":27335984,"external":18587748}},"os":{"loadavg":[4.00830078125,2.5263671875,2.0556640625],"uptime":961975},"trace":[{"column":11,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/bin/www","function":"mongoose.connect","line":17,"method":"connect","native":false},{"column":19,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js","function":null,"line":319,"method":null,"native":false},{"column":12,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js","function":"NativeConnection.Connection.error","line":671,"method":"error","native":false},{"column":15,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js","function":null,"line":702,"method":null,"native":false},{"column":21,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js","function":null,"line":69,"method":null,"native":false},{"column":14,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/db.js","function":null,"line":236,"method":null,"native":false},{"column":9,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/server.js","function":null,"line":265,"method":null,"native":false},{"column":30,"file":"events.js","function":"Object.onceWrapper","line":316,"method":"onceWrapper","native":false},{"column":13,"file":"events.js","function":"emitOne","line":115,"method":null,"native":false},{"column":7,"file":"events.js","function":"Server.emit","line":210,"method":"emit","native":false},{"column":21,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/topologies/server.js","function":null,"line":336,"method":null,"native":false},{"column":13,"file":"events.js","function":"emitOne","line":115,"method":null,"native":false},{"column":7,"file":"events.js","function":"Pool.emit","line":210,"method":"emit","native":false},{"column":12,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/connection/pool.js","function":null,"line":280,"method":null,"native":false},{"column":30,"file":"events.js","function":"Object.onceWrapper","line":318,"method":"onceWrapper","native":false},{"column":13,"file":"events.js","function":"emitTwo","line":125,"method":null,"native":false}],"stack":["Error: MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]"," at mongoose.connect (/Users/mifi/Documents/Projects/Pfosi/code/backend/bin/www:17:11)"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js:319:19"," at NativeConnection.Connection.error (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js:671:12)"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js:702:15"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:69:21"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/db.js:236:14"," at Server. (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/server.js:265:9)"," at Object.onceWrapper (events.js:316:30)"," at emitOne (events.js:115:13)"," at Server.emit (events.js:210:7)"," at Pool. (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/topologies/server.js:336:21)"," at emitOne (events.js:115:13)"," at Pool.emit (events.js:210:7)"," at Connection. (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/connection/pool.js:280:12)"," at Object.onceWrapper (events.js:318:30)"," at emitTwo (events.js:125:13)"],"level":"error","message":"uncaughtException: MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]","timestamp":"2018-05-29T05:42:55.309Z"} +{"date":"Tue May 29 2018 01:43:55 GMT-0400 (EDT)","process":{"pid":88235,"uid":501,"gid":20,"cwd":"/Users/mifi/Documents/Projects/Pfosi/code/backend","execPath":"/usr/local/bin/node","version":"v8.1.1","argv":["/usr/local/bin/node","/Users/mifi/Documents/Projects/Pfosi/code/backend/bin/www","./app.js"],"memoryUsage":{"rss":59736064,"heapTotal":37752832,"heapUsed":27293488,"external":18587748}},"os":{"loadavg":[4.00537109375,2.853515625,2.21240234375],"uptime":962035},"trace":[{"column":11,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/bin/www","function":"mongoose.connect","line":17,"method":"connect","native":false},{"column":19,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js","function":null,"line":319,"method":null,"native":false},{"column":12,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js","function":"NativeConnection.Connection.error","line":671,"method":"error","native":false},{"column":15,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js","function":null,"line":702,"method":null,"native":false},{"column":21,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js","function":null,"line":69,"method":null,"native":false},{"column":14,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/db.js","function":null,"line":236,"method":null,"native":false},{"column":9,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/server.js","function":null,"line":265,"method":null,"native":false},{"column":30,"file":"events.js","function":"Object.onceWrapper","line":316,"method":"onceWrapper","native":false},{"column":13,"file":"events.js","function":"emitOne","line":115,"method":null,"native":false},{"column":7,"file":"events.js","function":"Server.emit","line":210,"method":"emit","native":false},{"column":21,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/topologies/server.js","function":null,"line":336,"method":null,"native":false},{"column":13,"file":"events.js","function":"emitOne","line":115,"method":null,"native":false},{"column":7,"file":"events.js","function":"Pool.emit","line":210,"method":"emit","native":false},{"column":12,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/connection/pool.js","function":null,"line":280,"method":null,"native":false},{"column":30,"file":"events.js","function":"Object.onceWrapper","line":318,"method":"onceWrapper","native":false},{"column":13,"file":"events.js","function":"emitTwo","line":125,"method":null,"native":false}],"stack":["Error: MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]"," at mongoose.connect (/Users/mifi/Documents/Projects/Pfosi/code/backend/bin/www:17:11)"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js:319:19"," at NativeConnection.Connection.error (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js:671:12)"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js:702:15"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:69:21"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/db.js:236:14"," at Server. (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/server.js:265:9)"," at Object.onceWrapper (events.js:316:30)"," at emitOne (events.js:115:13)"," at Server.emit (events.js:210:7)"," at Pool. (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/topologies/server.js:336:21)"," at emitOne (events.js:115:13)"," at Pool.emit (events.js:210:7)"," at Connection. (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/connection/pool.js:280:12)"," at Object.onceWrapper (events.js:318:30)"," at emitTwo (events.js:125:13)"],"level":"error","message":"uncaughtException: MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]","timestamp":"2018-05-29T05:43:55.379Z"} diff --git a/urge-error.log b/urge-error.log new file mode 100644 index 0000000..7e5d162 --- /dev/null +++ b/urge-error.log @@ -0,0 +1,2 @@ +{"date":"Tue May 29 2018 01:42:55 GMT-0400 (EDT)","process":{"pid":88218,"uid":501,"gid":20,"cwd":"/Users/mifi/Documents/Projects/Pfosi/code/backend","execPath":"/usr/local/bin/node","version":"v8.1.1","argv":["/usr/local/bin/node","/Users/mifi/Documents/Projects/Pfosi/code/backend/bin/www"],"memoryUsage":{"rss":59949056,"heapTotal":37752832,"heapUsed":27335984,"external":18587748}},"os":{"loadavg":[4.00830078125,2.5263671875,2.0556640625],"uptime":961975},"trace":[{"column":11,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/bin/www","function":"mongoose.connect","line":17,"method":"connect","native":false},{"column":19,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js","function":null,"line":319,"method":null,"native":false},{"column":12,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js","function":"NativeConnection.Connection.error","line":671,"method":"error","native":false},{"column":15,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js","function":null,"line":702,"method":null,"native":false},{"column":21,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js","function":null,"line":69,"method":null,"native":false},{"column":14,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/db.js","function":null,"line":236,"method":null,"native":false},{"column":9,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/server.js","function":null,"line":265,"method":null,"native":false},{"column":30,"file":"events.js","function":"Object.onceWrapper","line":316,"method":"onceWrapper","native":false},{"column":13,"file":"events.js","function":"emitOne","line":115,"method":null,"native":false},{"column":7,"file":"events.js","function":"Server.emit","line":210,"method":"emit","native":false},{"column":21,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/topologies/server.js","function":null,"line":336,"method":null,"native":false},{"column":13,"file":"events.js","function":"emitOne","line":115,"method":null,"native":false},{"column":7,"file":"events.js","function":"Pool.emit","line":210,"method":"emit","native":false},{"column":12,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/connection/pool.js","function":null,"line":280,"method":null,"native":false},{"column":30,"file":"events.js","function":"Object.onceWrapper","line":318,"method":"onceWrapper","native":false},{"column":13,"file":"events.js","function":"emitTwo","line":125,"method":null,"native":false}],"stack":["Error: MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]"," at mongoose.connect (/Users/mifi/Documents/Projects/Pfosi/code/backend/bin/www:17:11)"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js:319:19"," at NativeConnection.Connection.error (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js:671:12)"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js:702:15"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:69:21"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/db.js:236:14"," at Server. (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/server.js:265:9)"," at Object.onceWrapper (events.js:316:30)"," at emitOne (events.js:115:13)"," at Server.emit (events.js:210:7)"," at Pool. (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/topologies/server.js:336:21)"," at emitOne (events.js:115:13)"," at Pool.emit (events.js:210:7)"," at Connection. (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/connection/pool.js:280:12)"," at Object.onceWrapper (events.js:318:30)"," at emitTwo (events.js:125:13)"],"level":"error","message":"uncaughtException: MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]","timestamp":"2018-05-29T05:42:55.317Z"} +{"date":"Tue May 29 2018 01:43:55 GMT-0400 (EDT)","process":{"pid":88235,"uid":501,"gid":20,"cwd":"/Users/mifi/Documents/Projects/Pfosi/code/backend","execPath":"/usr/local/bin/node","version":"v8.1.1","argv":["/usr/local/bin/node","/Users/mifi/Documents/Projects/Pfosi/code/backend/bin/www","./app.js"],"memoryUsage":{"rss":59736064,"heapTotal":37752832,"heapUsed":27293488,"external":18587748}},"os":{"loadavg":[4.00537109375,2.853515625,2.21240234375],"uptime":962035},"trace":[{"column":11,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/bin/www","function":"mongoose.connect","line":17,"method":"connect","native":false},{"column":19,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js","function":null,"line":319,"method":null,"native":false},{"column":12,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js","function":"NativeConnection.Connection.error","line":671,"method":"error","native":false},{"column":15,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js","function":null,"line":702,"method":null,"native":false},{"column":21,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js","function":null,"line":69,"method":null,"native":false},{"column":14,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/db.js","function":null,"line":236,"method":null,"native":false},{"column":9,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/server.js","function":null,"line":265,"method":null,"native":false},{"column":30,"file":"events.js","function":"Object.onceWrapper","line":316,"method":"onceWrapper","native":false},{"column":13,"file":"events.js","function":"emitOne","line":115,"method":null,"native":false},{"column":7,"file":"events.js","function":"Server.emit","line":210,"method":"emit","native":false},{"column":21,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/topologies/server.js","function":null,"line":336,"method":null,"native":false},{"column":13,"file":"events.js","function":"emitOne","line":115,"method":null,"native":false},{"column":7,"file":"events.js","function":"Pool.emit","line":210,"method":"emit","native":false},{"column":12,"file":"/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/connection/pool.js","function":null,"line":280,"method":null,"native":false},{"column":30,"file":"events.js","function":"Object.onceWrapper","line":318,"method":"onceWrapper","native":false},{"column":13,"file":"events.js","function":"emitTwo","line":125,"method":null,"native":false}],"stack":["Error: MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]"," at mongoose.connect (/Users/mifi/Documents/Projects/Pfosi/code/backend/bin/www:17:11)"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js:319:19"," at NativeConnection.Connection.error (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js:671:12)"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/connection.js:702:15"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:69:21"," at /Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/db.js:236:14"," at Server. (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb/lib/server.js:265:9)"," at Object.onceWrapper (events.js:316:30)"," at emitOne (events.js:115:13)"," at Server.emit (events.js:210:7)"," at Pool. (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/topologies/server.js:336:21)"," at emitOne (events.js:115:13)"," at Pool.emit (events.js:210:7)"," at Connection. (/Users/mifi/Documents/Projects/Pfosi/code/backend/node_modules/mongodb-core/lib/connection/pool.js:280:12)"," at Object.onceWrapper (events.js:318:30)"," at emitTwo (events.js:125:13)"],"level":"error","message":"uncaughtException: MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]","timestamp":"2018-05-29T05:43:55.381Z"}