/** * @author songxiwen * @date 2020/09/15 17:20 */ import { Injectable } from '@nestjs/common'; import { Model } from 'mongoose'; import { InjectModel } from '@nestjs/mongoose'; import { AdminRouterForResponseType } from '../type'; import { AdminRouterAuth } from '../model/admin.router.auth'; import { BaseService } from '../../../base/base.service'; import { MongoDBCollection } from '../../../constant'; @Injectable() export class AdminRouterAuthService extends BaseService { constructor( @InjectModel(MongoDBCollection.AdminRouterAuth) protected readonly model: Model ) { super(model); } async getAdminRouterAuthMap(): Promise<{ [key: string]: AdminRouterForResponseType; }> { const adminRouterAuthList = await this.model.find(); return adminRouterAuthList.reduce( ( previousValue: { [key: string]: AdminRouterForResponseType }, currentValue: AdminRouterAuth ) => ({ ...previousValue, [currentValue._id.toString()]: { id: currentValue._id.toString(), name: currentValue.name, router: currentValue.router, weight: currentValue.weight, isShow: currentValue.isShow, isMenu: currentValue.isMenu, isRouterURL: currentValue.isRouterURL, iconClass: currentValue.iconClass || '', parentId: currentValue.parentId || '', description: currentValue.description || '' } }), {} ); } }