Fix requests ordering between pods
[oweals/peertube.git] / server / models / oauth-token.js
1 const mongoose = require('mongoose')
2
3 // ---------------------------------------------------------------------------
4
5 const OAuthTokenSchema = mongoose.Schema({
6   accessToken: String,
7   accessTokenExpiresOn: Date,
8   client: { type: mongoose.Schema.Types.ObjectId, ref: 'OAuthClient' },
9   refreshToken: String,
10   refreshTokenExpiresOn: Date,
11   user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }
12 })
13
14 OAuthTokenSchema.path('accessToken').required(true)
15 OAuthTokenSchema.path('client').required(true)
16 OAuthTokenSchema.path('user').required(true)
17
18 OAuthTokenSchema.statics = {
19   loadByRefreshToken: loadByRefreshToken,
20   loadByTokenAndPopulateUser: loadByTokenAndPopulateUser
21 }
22
23 mongoose.model('OAuthToken', OAuthTokenSchema)
24
25 // ---------------------------------------------------------------------------
26
27 function loadByRefreshToken (refreshToken, callback) {
28   return this.findOne({ refreshToken: refreshToken }, callback)
29 }
30
31 function loadByTokenAndPopulateUser (bearerToken, callback) {
32   // FIXME: allow to use callback
33   return this.findOne({ accessToken: bearerToken }).populate('user')
34 }