1 import * as Sequelize from 'sequelize'
2 import * as Bluebird from 'bluebird'
4 import { UserModel } from '../user'
6 export type OAuthTokenInfo = {
8 refreshTokenExpiresAt: Date,
17 export namespace OAuthTokenMethods {
18 export type GetByRefreshTokenAndPopulateClient = (refreshToken: string) => Bluebird<OAuthTokenInfo>
19 export type GetByTokenAndPopulateUser = (bearerToken: string) => Bluebird<OAuthTokenInstance>
20 export type GetByRefreshTokenAndPopulateUser = (refreshToken: string) => Bluebird<OAuthTokenInstance>
22 export type RemoveByUserIdCallback = (err: Error) => void
23 export type RemoveByUserId = (userId, callback) => void
26 export interface OAuthTokenClass {
27 getByRefreshTokenAndPopulateClient: OAuthTokenMethods.GetByRefreshTokenAndPopulateClient
28 getByTokenAndPopulateUser: OAuthTokenMethods.GetByTokenAndPopulateUser
29 getByRefreshTokenAndPopulateUser: OAuthTokenMethods.GetByRefreshTokenAndPopulateUser
30 removeByUserId: OAuthTokenMethods.RemoveByUserId
33 export interface OAuthTokenAttributes {
35 accessTokenExpiresAt: Date
37 refreshTokenExpiresAt: Date
42 export interface OAuthTokenInstance extends OAuthTokenClass, OAuthTokenAttributes, Sequelize.Instance<OAuthTokenAttributes> {
48 export interface OAuthTokenModel extends OAuthTokenClass, Sequelize.Model<OAuthTokenInstance, OAuthTokenAttributes> {}