X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Foauth%2Foauth-client.ts;h=457e846137f94a79f8a8dad70ae3c6e6e7e46a10;hb=26818a73ba0d7fd53ca69eba0c8e525f3670b5a8;hp=9cc68771dad5983d959f93ea6de09094574676a5;hpb=6fcd19ba737f1f5614a56c6925adb882dea43b8d;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/oauth/oauth-client.ts b/server/models/oauth/oauth-client.ts index 9cc68771d..457e84613 100644 --- a/server/models/oauth/oauth-client.ts +++ b/server/models/oauth/oauth-client.ts @@ -1,86 +1,63 @@ -import * as Sequelize from 'sequelize' +import { AllowNull, Column, CreatedAt, DataType, HasMany, Model, Table, UpdatedAt } from 'sequelize-typescript' +import { AttributesOnly } from '@shared/typescript-utils' +import { OAuthTokenModel } from './oauth-token' -import { addMethodsToModel } from '../utils' -import { - OAuthClientInstance, - OAuthClientAttributes, - - OAuthClientMethods -} from './oauth-client-interface' - -let OAuthClient: Sequelize.Model -let countTotal: OAuthClientMethods.CountTotal -let loadFirstClient: OAuthClientMethods.LoadFirstClient -let getByIdAndSecret: OAuthClientMethods.GetByIdAndSecret - -export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.DataTypes) { - OAuthClient = sequelize.define('OAuthClient', +@Table({ + tableName: 'oAuthClient', + indexes: [ { - clientId: { - type: DataTypes.STRING, - allowNull: false - }, - clientSecret: { - type: DataTypes.STRING, - allowNull: false - }, - grants: { - type: DataTypes.ARRAY(DataTypes.STRING) - }, - redirectUris: { - type: DataTypes.ARRAY(DataTypes.STRING) - } + fields: [ 'clientId' ], + unique: true }, { - indexes: [ - { - fields: [ 'clientId' ], - unique: true - }, - { - fields: [ 'clientId', 'clientSecret' ], - unique: true - } - ] + fields: [ 'clientId', 'clientSecret' ], + unique: true } - ) + ] +}) +export class OAuthClientModel extends Model>> { - const classMethods = [ - associate, + @AllowNull(false) + @Column + clientId: string - countTotal, - getByIdAndSecret, - loadFirstClient - ] - addMethodsToModel(OAuthClient, classMethods) + @AllowNull(false) + @Column + clientSecret: string - return OAuthClient -} + @Column(DataType.ARRAY(DataType.STRING)) + grants: string[] + + @Column(DataType.ARRAY(DataType.STRING)) + redirectUris: string[] + + @CreatedAt + createdAt: Date -// --------------------------------------------------------------------------- + @UpdatedAt + updatedAt: Date -function associate (models) { - OAuthClient.hasMany(models.OAuthToken, { - foreignKey: 'oAuthClientId', + @HasMany(() => OAuthTokenModel, { onDelete: 'cascade' }) -} + OAuthTokens: OAuthTokenModel[] -countTotal = function () { - return OAuthClient.count() -} + static countTotal () { + return OAuthClientModel.count() + } -loadFirstClient = function () { - return OAuthClient.findOne() -} + static loadFirstClient () { + return OAuthClientModel.findOne() + } -getByIdAndSecret = function (clientId: string, clientSecret: string) { - const query = { - where: { - clientId: clientId, - clientSecret: clientSecret + static getByIdAndSecret (clientId: string, clientSecret: string) { + const query = { + where: { + clientId, + clientSecret + } } - } - return OAuthClient.findOne(query) + return OAuthClientModel.findOne(query) + } }