/* * @author gs * @date 2020/07/30 15:00 */ import { Inject, Injectable } from '@nestjs/common'; import { InjectModel } from '@nestjs/mongoose'; import { Model } from 'mongoose'; import { BaseService } from '../../../base/base.service'; import { TokenModel } from '../model/token'; import { RoleService } from './role.service'; import { UserRoleService } from './user.role.service'; import { UserRoleModel } from '../model/user.role'; import { RoleModel } from '../model/role'; import { MongoDBCollection } from '../../../constant'; @Injectable() export class AuthService extends BaseService { constructor( @InjectModel(MongoDBCollection.Token) protected readonly model: Model, @Inject('RoleService') private readonly roleService: RoleService, @Inject('UserRoleService') private readonly userRoleService: UserRoleService ) { super(model); } async getValidApiList(userId: string): Promise { let apiList: any[] = []; const userRole: UserRoleModel = await this.userRoleService.findOne({ user_id: userId }); if (userRole) { const role: RoleModel = await this.roleService.findOne({ role_id: userRole._id.role_id }); if (role) { apiList = role.get('_doc').get('api_list') as string[]; } } return apiList; } }