]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/models/oauth/oauth-token-interface.ts
Client: explain to user we don't want scheme when making friends
[github/Chocobozzz/PeerTube.git] / server / models / oauth / oauth-token-interface.ts
1 import * as Sequelize from 'sequelize'
2 import * as Promise from 'bluebird'
3
4 import { UserModel } from '../user/user-interface'
5
6 export type OAuthTokenInfo = {
7 refreshToken: string
8 refreshTokenExpiresAt: Date,
9 client: {
10 id: number
11 },
12 user: {
13 id: number
14 }
15 }
16
17 export namespace OAuthTokenMethods {
18 export type GetByRefreshTokenAndPopulateClient = (refreshToken: string) => Promise<OAuthTokenInfo>
19 export type GetByTokenAndPopulateUser = (bearerToken: string) => Promise<OAuthTokenInstance>
20 export type GetByRefreshTokenAndPopulateUser = (refreshToken: string) => Promise<OAuthTokenInstance>
21
22 export type RemoveByUserId = (userId) => Promise<number>
23 }
24
25 export interface OAuthTokenClass {
26 getByRefreshTokenAndPopulateClient: OAuthTokenMethods.GetByRefreshTokenAndPopulateClient
27 getByTokenAndPopulateUser: OAuthTokenMethods.GetByTokenAndPopulateUser
28 getByRefreshTokenAndPopulateUser: OAuthTokenMethods.GetByRefreshTokenAndPopulateUser
29 removeByUserId: OAuthTokenMethods.RemoveByUserId
30 }
31
32 export interface OAuthTokenAttributes {
33 accessToken: string
34 accessTokenExpiresAt: Date
35 refreshToken: string
36 refreshTokenExpiresAt: Date
37
38 userId?: number
39 oAuthClientId?: number
40 User?: UserModel
41 }
42
43 export interface OAuthTokenInstance extends OAuthTokenClass, OAuthTokenAttributes, Sequelize.Instance<OAuthTokenAttributes> {
44 id: number
45 createdAt: Date
46 updatedAt: Date
47 }
48
49 export interface OAuthTokenModel extends OAuthTokenClass, Sequelize.Model<OAuthTokenInstance, OAuthTokenAttributes> {}