ProjectInvite.coffee 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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, {
  25. server: {poolSize: Settings.mongo.poolSize || 10},
  26. config: {autoIndex: false}
  27. })
  28. ProjectInvite = conn.model('ProjectInvite', ProjectInviteSchema)
  29. mongoose.model 'ProjectInvite', ProjectInviteSchema
  30. exports.ProjectInvite = ProjectInvite
  31. exports.ProjectInviteSchema = ProjectInviteSchema
  32. exports.EXPIRY_IN_SECONDS = EXPIRY_IN_SECONDS