]>
Commit | Line | Data |
---|---|---|
e02643f3 | 1 | import * as Sequelize from 'sequelize' |
69818c93 | 2 | import * as Bluebird from 'bluebird' |
e02643f3 C |
3 | |
4 | import { UserModel } from './user-interface' | |
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 { |
69818c93 C |
18 | export type GetByRefreshTokenAndPopulateClient = (refreshToken: string) => Bluebird<OAuthTokenInfo> |
19 | export type GetByTokenAndPopulateUser = (bearerToken: string) => Bluebird<OAuthTokenInstance> | |
20 | export type GetByRefreshTokenAndPopulateUser = (refreshToken: string) => Bluebird<OAuthTokenInstance> | |
21 | ||
22 | export type RemoveByUserIdCallback = (err: Error) => void | |
e02643f3 C |
23 | export type RemoveByUserId = (userId, callback) => void |
24 | } | |
25 | ||
26 | export interface OAuthTokenClass { | |
27 | getByRefreshTokenAndPopulateClient: OAuthTokenMethods.GetByRefreshTokenAndPopulateClient | |
28 | getByTokenAndPopulateUser: OAuthTokenMethods.GetByTokenAndPopulateUser | |
29 | getByRefreshTokenAndPopulateUser: OAuthTokenMethods.GetByRefreshTokenAndPopulateUser | |
30 | removeByUserId: OAuthTokenMethods.RemoveByUserId | |
31 | } | |
32 | ||
33 | export interface OAuthTokenAttributes { | |
34 | accessToken: string | |
35 | accessTokenExpiresAt: Date | |
36 | refreshToken: string | |
37 | refreshTokenExpiresAt: Date | |
38 | ||
39 | User?: UserModel | |
40 | } | |
41 | ||
42 | export interface OAuthTokenInstance extends OAuthTokenClass, OAuthTokenAttributes, Sequelize.Instance<OAuthTokenAttributes> { | |
43 | id: number | |
44 | createdAt: Date | |
45 | updatedAt: Date | |
46 | } | |
47 | ||
48 | export interface OAuthTokenModel extends OAuthTokenClass, Sequelize.Model<OAuthTokenInstance, OAuthTokenAttributes> {} |