-import { AllowNull, BelongsTo, Column, CreatedAt, ForeignKey, Model, Table, UpdatedAt } from 'sequelize-typescript'
-import { logger } from '../../helpers'
+import { AllowNull, BelongsTo, Column, CreatedAt, ForeignKey, Model, Scopes, Table, UpdatedAt } from 'sequelize-typescript'
+import { logger } from '../../helpers/logger'
import { AccountModel } from '../account/account'
import { UserModel } from '../account/user'
import { OAuthClientModel } from './oauth-client'
}
}
+enum ScopeNames {
+ WITH_ACCOUNT = 'WITH_ACCOUNT'
+}
+
+@Scopes({
+ [ScopeNames.WITH_ACCOUNT]: {
+ include: [
+ {
+ model: () => UserModel,
+ include: [
+ {
+ model: () => AccountModel,
+ required: true
+ }
+ ]
+ }
+ ]
+ }
+})
@Table({
tableName: 'oAuthToken',
indexes: [
} as OAuthTokenInfo
})
.catch(err => {
- logger.info('getRefreshToken error.', err)
+ logger.info('getRefreshToken error.', { err })
throw err
})
}
const query = {
where: {
accessToken: bearerToken
- },
- include: [
- {
- model: UserModel,
- include: [
- {
- model: AccountModel,
- required: true
- }
- ]
- }
- ]
+ }
}
- return OAuthTokenModel.findOne(query).then(token => {
+ return OAuthTokenModel.scope(ScopeNames.WITH_ACCOUNT).findOne(query).then(token => {
if (token) token['user'] = token.User
return token
const query = {
where: {
refreshToken: refreshToken
- },
- include: [
- {
- model: UserModel,
- include: [
- {
- model: AccountModel,
- required: true
- }
- ]
- }
- ]
+ }
}
- return OAuthTokenModel.findOne(query).then(token => {
- token['user'] = token.User
+ return OAuthTokenModel.scope(ScopeNames.WITH_ACCOUNT)
+ .findOne(query)
+ .then(token => {
+ token['user'] = token.User
- return token
- })
+ return token
+ })
+ }
+
+ static deleteUserToken (userId: number) {
+ const query = {
+ where: {
+ userId
+ }
+ }
+
+ return OAuthTokenModel.destroy(query)
}
}