From 4a6312914d88bc0d7fcef7163898f3b254cfa883 Mon Sep 17 00:00:00 2001 From: FrancisZamora Date: Thu, 5 Jul 2018 14:41:04 -0400 Subject: [PATCH 1/3] analytics model --- server/models/analytic.js | 58 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 server/models/analytic.js diff --git a/server/models/analytic.js b/server/models/analytic.js new file mode 100644 index 0000000..b149ef9 --- /dev/null +++ b/server/models/analytic.js @@ -0,0 +1,58 @@ +'use strict'; +const Joi = require('joi'); +const Assert = require('assert'); +const MongoModels = require('hicsail-mongo-models'); + +class Analytic extends MongoModels { + + static async create(event,name,data,userId) { + + const self = this; + + Assert.ok(event, 'Missing event argument'); + Assert.ok(name, 'Missing name argument'); + Assert.ok(data, 'Missing data arugment'); + Assert.ok(userId, 'Missing userId argument'); + + const document = new this({ + event, + name, + data, + userId, + createdAt: new Date() + + }); + + const analytics = await self.insertOne(document); + + return analytics[0]; + + } +} + +Analytic.collectionName = 'analytics'; + +Analytic.schema = Joi.object({ + _id: Joi.object(), + event: Joi.string(), + name: Joi.string(), + data: Joi.object(), + userId: Joi.string(), + createdAt: new Date() + + +}); + +Analytic.payload = Joi.object({ + event: Joi.string(), + name: Joi.string(), + data: Joi.object() +}); + +Analytic.indexes = [ + { key: { userId: 1 } } +]; + +module.exports = Analytic; + + From a3e5cfcf44cb197c22eaa6696db5633371aa20b3 Mon Sep 17 00:00:00 2001 From: FrancisZamora Date: Mon, 9 Jul 2018 10:30:21 -0400 Subject: [PATCH 2/3] anchor model for user and analytics --- server/models/analytic.js | 4 ++-- server/models/user.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/server/models/analytic.js b/server/models/analytic.js index b149ef9..4d903d0 100644 --- a/server/models/analytic.js +++ b/server/models/analytic.js @@ -1,9 +1,9 @@ 'use strict'; const Joi = require('joi'); const Assert = require('assert'); -const MongoModels = require('hicsail-mongo-models'); +const AnchorModel = require('../anchor/anchor-model'); -class Analytic extends MongoModels { +class Analytic extends AnchorModel { static async create(event,name,data,userId) { diff --git a/server/models/user.js b/server/models/user.js index 87a6614..b358fc2 100755 --- a/server/models/user.js +++ b/server/models/user.js @@ -2,10 +2,10 @@ const Assert = require('assert'); const Bcrypt = require('bcrypt'); const Joi = require('joi'); -const MongoModels = require('hicsail-mongo-models'); +const AnchorModel = require('../anchor/anchor-model'); -class User extends MongoModels { +class User extends AnchorModel { static async generatePasswordHash(password) { From 2520d4b7f01976aa180dc25d092cb514b414aa91 Mon Sep 17 00:00:00 2001 From: FrancisZamora Date: Mon, 9 Jul 2018 10:32:48 -0400 Subject: [PATCH 3/3] adding two keys --- server/models/analytic.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/models/analytic.js b/server/models/analytic.js index 4d903d0..5d7602b 100644 --- a/server/models/analytic.js +++ b/server/models/analytic.js @@ -7,7 +7,6 @@ class Analytic extends AnchorModel { static async create(event,name,data,userId) { - const self = this; Assert.ok(event, 'Missing event argument'); Assert.ok(name, 'Missing name argument'); @@ -23,7 +22,7 @@ class Analytic extends AnchorModel { }); - const analytics = await self.insertOne(document); + const analytics = await this.insertOne(document); return analytics[0]; @@ -50,7 +49,8 @@ Analytic.payload = Joi.object({ }); Analytic.indexes = [ - { key: { userId: 1 } } + { key: { event: 1 } }, + { key : { email: 1 } } ]; module.exports = Analytic;