X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Foauth-token.ts;h=567df1c12c3df91b676cd00a9d21ec981c4198b7;hb=4d4e5cd4dca78480ec7f40e747f424cd107376a4;hp=74c9180eb9c0a824314489e4c5a1a9e5caf6a45f;hpb=65fcc3119c334b75dd13bcfdebf186afdc580a8f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/oauth-token.ts b/server/models/oauth-token.ts index 74c9180eb..567df1c12 100644 --- a/server/models/oauth-token.ts +++ b/server/models/oauth-token.ts @@ -1,9 +1,24 @@ +import * as Sequelize from 'sequelize' + import { logger } from '../helpers' -// --------------------------------------------------------------------------- +import { addMethodsToModel } from './utils' +import { + OAuthTokenClass, + OAuthTokenInstance, + OAuthTokenAttributes, + + OAuthTokenMethods +} from './oauth-token-interface' + +let OAuthToken: Sequelize.Model +let getByRefreshTokenAndPopulateClient: OAuthTokenMethods.GetByRefreshTokenAndPopulateClient +let getByTokenAndPopulateUser: OAuthTokenMethods.GetByTokenAndPopulateUser +let getByRefreshTokenAndPopulateUser: OAuthTokenMethods.GetByRefreshTokenAndPopulateUser +let removeByUserId: OAuthTokenMethods.RemoveByUserId -module.exports = function (sequelize, DataTypes) { - const OAuthToken = sequelize.define('OAuthToken', +export default function (sequelize, DataTypes) { + OAuthToken = sequelize.define('OAuthToken', { accessToken: { type: DataTypes.STRING, @@ -38,25 +53,27 @@ module.exports = function (sequelize, DataTypes) { { fields: [ 'oAuthClientId' ] } - ], - classMethods: { - associate, - - getByRefreshTokenAndPopulateClient, - getByTokenAndPopulateUser, - getByRefreshTokenAndPopulateUser, - removeByUserId - } + ] } ) + const classMethods = [ + associate, + + getByRefreshTokenAndPopulateClient, + getByTokenAndPopulateUser, + getByRefreshTokenAndPopulateUser, + removeByUserId + ] + addMethodsToModel(OAuthToken, classMethods) + return OAuthToken } // --------------------------------------------------------------------------- function associate (models) { - this.belongsTo(models.User, { + OAuthToken.belongsTo(models.User, { foreignKey: { name: 'userId', allowNull: false @@ -64,7 +81,7 @@ function associate (models) { onDelete: 'cascade' }) - this.belongsTo(models.OAuthClient, { + OAuthToken.belongsTo(models.OAuthClient, { foreignKey: { name: 'oAuthClientId', allowNull: false @@ -73,25 +90,25 @@ function associate (models) { }) } -function getByRefreshTokenAndPopulateClient (refreshToken) { +getByRefreshTokenAndPopulateClient = function (refreshToken) { const query = { where: { refreshToken: refreshToken }, - include: [ this.associations.OAuthClient ] + include: [ OAuthToken['sequelize'].models.OAuthClient ] } - return this.findOne(query).then(function (token) { + return OAuthToken.findOne(query).then(function (token) { if (!token) return token const tokenInfos = { refreshToken: token.refreshToken, refreshTokenExpiresAt: token.refreshTokenExpiresAt, client: { - id: token.client.id + id: token['client'].id }, user: { - id: token.user + id: token['user'] } } @@ -101,42 +118,42 @@ function getByRefreshTokenAndPopulateClient (refreshToken) { }) } -function getByTokenAndPopulateUser (bearerToken) { +getByTokenAndPopulateUser = function (bearerToken) { const query = { where: { accessToken: bearerToken }, - include: [ this.sequelize.models.User ] + include: [ OAuthToken['sequelize'].models.User ] } - return this.findOne(query).then(function (token) { - if (token) token.user = token.User + return OAuthToken.findOne(query).then(function (token) { + if (token) token['user'] = token.User return token }) } -function getByRefreshTokenAndPopulateUser (refreshToken) { +getByRefreshTokenAndPopulateUser = function (refreshToken) { const query = { where: { refreshToken: refreshToken }, - include: [ this.sequelize.models.User ] + include: [ OAuthToken['sequelize'].models.User ] } - return this.findOne(query).then(function (token) { - token.user = token.User + return OAuthToken.findOne(query).then(function (token) { + token['user'] = token.User return token }) } -function removeByUserId (userId, callback) { +removeByUserId = function (userId, callback) { const query = { where: { userId: userId } } - return this.destroy(query).asCallback(callback) + return OAuthToken.destroy(query).asCallback(callback) }