]>
Commit | Line | Data |
---|---|---|
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> {} |