ProjectInvite.coffee 998 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. mongoose = require 'mongoose'
  2. Settings = require 'settings-sharelatex'
  3. Schema = mongoose.Schema
  4. ObjectId = Schema.ObjectId
  5. EXPIRY_IN_SECONDS = 60 * 60 * 24 * 30
  6. ExpiryDate = () ->
  7. timestamp = new Date()
  8. timestamp.setSeconds(timestamp.getSeconds() + EXPIRY_IN_SECONDS)
  9. return timestamp
  10. ProjectInviteSchema = new Schema(
  11. {
  12. email: String
  13. token: String
  14. sendingUserId: ObjectId
  15. projectId: ObjectId
  16. privileges: String
  17. createdAt: {type: Date, default: Date.now}
  18. expires: {type: Date, default: ExpiryDate, index: {expireAfterSeconds: 10}}
  19. },
  20. {
  21. collection: 'projectInvites'
  22. }
  23. )
  24. conn = mongoose.createConnection(Settings.mongo.url, server: poolSize: Settings.mongo.poolSize || 10)
  25. ProjectInvite = conn.model('ProjectInvite', ProjectInviteSchema)
  26. mongoose.model 'ProjectInvite', ProjectInviteSchema
  27. exports.ProjectInvite = ProjectInvite
  28. exports.ProjectInviteSchema = ProjectInviteSchema
  29. exports.EXPIRY_IN_SECONDS = EXPIRY_IN_SECONDS