ソースを参照

FB: created static method of isExpired

kaori 4 年 前
コミット
ede7bfe141
1 ファイル変更13 行追加12 行削除
  1. 13 12
      src/server/models/password-reset-order.js

+ 13 - 12
src/server/models/password-reset-order.js

@@ -6,30 +6,31 @@ const ObjectId = mongoose.Schema.Types.ObjectId;
 /*
  * define schema
  */
-const schema = new mongoose.Schema({
+const passwordResetOrderSchema = new mongoose.Schema({
   token: { type: String, required: true, unique: true },
   email: { type: String, required: true },
   relatedUser: { type: ObjectId, ref: 'User' },
-  isExpired: { type: Boolean, default: false },
 });
-schema.plugin(uniqueValidator);
+passwordResetOrderSchema.plugin(uniqueValidator);
 
 /**
  * PasswordResetOrder Class
  *
  * @class PasswordResetOrder
  */
-class PasswordResetOrder {
 
-  static generateOneTimeToken() {
+module.exports = function(crowi) {
+
+  passwordResetOrderSchema.statics.generateOneTimeToken = function() {
     // TODO: generate unique token by GW-6802
-  }
+  };
 
-}
+  passwordResetOrderSchema.methods.isExpired = function() {
+    const now = Date.now();
+    const expiredAt = this.createdAt.getTime() + 600000;
 
-module.exports = function(crowi) {
-  PasswordResetOrder.crowi = crowi;
-  schema.loadClass(PasswordResetOrder);
-  const model = mongoose.model('PasswordResetOrder', schema);
-  return model;
+    return expiredAt < now;
+  };
+
+  return mongoose.model('PasswordResetOrder', passwordResetOrderSchema);
 };