subscribers.js
1 const mongoose = require("mongoose"); 2 const Schema = mongoose.Schema; 3 4 const validator = require("validator"); 5 6 const SubscriberSchema = new Schema({ 7 id: Schema.Types.ObjectId, 8 dappId: { 9 type: String, 10 required: true, 11 validate: { 12 validator: function(value) { 13 // TODO: Validate dapp code 14 return true; 15 }, 16 message: props => `${props.value} is not a valid dapp token` 17 } 18 }, 19 address: { 20 type: String, 21 required: true, 22 validate: { 23 validator: function(value) { 24 // TODO: validate address 25 return true; 26 }, 27 message: props => `${props.value} is not a valid address` 28 } 29 }, 30 email: { 31 type: String, 32 required: true, 33 validate: { 34 validator: function(value) { 35 return validator.isEmail(value); 36 }, 37 message: props => `${props.value} is not a valid email` 38 } 39 }, 40 lastSignUpAttempt: { 41 type: Date, 42 default: new Date() 43 }, 44 isVerified: { 45 type: Boolean, 46 default: false 47 } 48 }); 49 50 SubscriberSchema.statics.findVerifiedUsersByDapp = function(dappId) { 51 return this.find({ dappId, isVerified: true }); 52 }; 53 54 module.exports = mongoose.model("Subscribers", SubscriberSchema);