Cleanup models
[oweals/peertube.git] / server / models / oauth / oauth-client-interface.ts
1 import * as Sequelize from 'sequelize'
2 import * as Promise from 'bluebird'
3
4 export namespace OAuthClientMethods {
5   export type CountTotal = () => Promise<number>
6
7   export type LoadFirstClient = () => Promise<OAuthClientInstance>
8
9   export type GetByIdAndSecret = (clientId: string, clientSecret: string) => Promise<OAuthClientInstance>
10 }
11
12 export interface OAuthClientClass {
13   countTotal: OAuthClientMethods.CountTotal
14   loadFirstClient: OAuthClientMethods.LoadFirstClient
15   getByIdAndSecret: OAuthClientMethods.GetByIdAndSecret
16 }
17
18 export interface OAuthClientAttributes {
19   clientId: string
20   clientSecret: string
21   grants: string[]
22   redirectUris: string[]
23 }
24
25 export interface OAuthClientInstance extends OAuthClientClass, OAuthClientAttributes, Sequelize.Instance<OAuthClientAttributes> {
26   id: number
27   createdAt: Date
28   updatedAt: Date
29 }
30
31 export interface OAuthClientModel extends OAuthClientClass, Sequelize.Model<OAuthClientInstance, OAuthClientAttributes> {}