]>
Commit | Line | Data |
---|---|---|
e02643f3 | 1 | import * as Sequelize from 'sequelize' |
6fcd19ba | 2 | import * as Promise from 'bluebird' |
e02643f3 | 3 | |
fdbda9e3 | 4 | import { UserModel } from '../user/user-interface' |
e02643f3 | 5 | |
69818c93 C |
6 | export type OAuthTokenInfo = { |
7 | refreshToken: string | |
8 | refreshTokenExpiresAt: Date, | |
9 | client: { | |
10 | id: number | |
11 | }, | |
12 | user: { | |
13 | id: number | |
14 | } | |
15 | } | |
16 | ||
e02643f3 | 17 | export namespace OAuthTokenMethods { |
6fcd19ba C |
18 | export type GetByRefreshTokenAndPopulateClient = (refreshToken: string) => Promise<OAuthTokenInfo> |
19 | export type GetByTokenAndPopulateUser = (bearerToken: string) => Promise<OAuthTokenInstance> | |
20 | export type GetByRefreshTokenAndPopulateUser = (refreshToken: string) => Promise<OAuthTokenInstance> | |
69818c93 | 21 | |
6fcd19ba | 22 | export type RemoveByUserId = (userId) => Promise<number> |
e02643f3 C |
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 | ||
f981dae8 C |
38 | userId?: number |
39 | oAuthClientId?: number | |
e02643f3 C |
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> {} |