import { Provide, Inject, Get, Post,Query, Body, ALL } from '@midwayjs/decorator';
import {
  CoolController,
  BaseController,
  ICoolCache,
  ICoolFile,
} from '@cool-midway/core';
import { Context } from 'egg';
import { DataService } from '../service/dataapi/dataapi';

/**
 * 通用数据的后台接口
 */
@Provide()
@CoolController()
export class DataController extends BaseController {
  @Inject('cool:eps:open')
  eps;

  @Inject('cool:cache')
  coolCache: ICoolCache;

  @Inject('cool:file')
  coolFile: ICoolFile;

  @Inject()
  ctx: Context;
  
  @Inject()
  dataService: DataService;

  /**
   * 实体信息与路径
   * @returns
   */
  @Get('/eps', { summary: '实体信息与路径' })
  public async getEps() {
    console.log(this.coolCache.getMode());
    return this.ok(this.eps);
  }

  /**
   * 文件上传
   */
  @Post('/upload', { summary: '文件上传' })
  async upload() {
    return this.ok(await this.coolFile.upload(this.ctx));
  }

  /**
   * 文件上传模式，本地或者云存储
   */
  @Get('/uploadMode', { summary: '文件上传模式' })
  async uploadMode() {
    return this.ok(this.coolFile.getMode());
  }

  
  /**
   * 获得数据
   */
   @Get('/getdata', { summary: '数据接口' })
   async getData(@Query(ALL) params: any) {
     console.log(params);
     return this.ok(await this.dataService.getData(params));
   }
 
   /**
    * 获得数据
    */
   @Post('/postdata', { summary: '数据接口' })
   async postData(@Query(ALL) params: any) {
     return this.ok(await this.dataService.getData(params));
   }
 
  
}
