import { Context, Controller, Get, Inject } from "@midwayjs/core";
import { JwtService } from "@midwayjs/jwt";
import assert = require("assert");
import { get } from "lodash";
import { RoleService } from "../../service/system/role.service";
import { RF } from "../../response/CustomerResponse";


@Controller('/token')
export class TokenController {
  @Inject()
  ctx: Context;
  @Inject()
  jwtService: JwtService;
  @Inject()
  roleService: RoleService;
  @Get('/tokenView')
  async tokenView() {
    const token = get(this.ctx, 'request.header.token');
    assert(token, '缺少token信息');
    const result: any = this.jwtService.decode(token);
    const userMenusResult = await this.roleService.getUserMenus();
    const menus = get(userMenusResult, 'menus');
    const role_code = get(userMenusResult, 'role_code');
    result.menus = menus;
    result.role_code = role_code;
    return RF.success(result);
  }
}