/ models / subscribers.js
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);