import network from '../common/network';

export default {
  /**
   * @edata <directly>
   * @typedef {Object} RequesReq 请求参数
   * @property {string} url 请求地址
   * @property {string} method HTTP方法; 取值说明: GET GET请求; POST POST请求;
   * @property {Object} [data] 请求的Body
   * @property {Object} [header] 自定义的HTTP头，可选（值必须是字符串）
   * @property {string} [dataType] 返回的数据格式; 取值说明: json 返回JSON数据; text 返回文本数据;
   * @property {boolean} [isDirect] 仅在本地开发的时候，且在最新版本的APP和SDK能够使用，详情请参考配置本地服务
   */
  /**
   * @edata <directly>
   * @typedef {Object} RequestRsp 响应参数
   * @property {Object} data 开发者服务器返回的数据
   * @property {number} statusCode 开发者服务器返回的HTTP状态码，取值范围：
   * 1xx：标准HTTP状态码
   * 2xx：标准HTTP状态码
   * 3xx：标准HTTP状态码
   * 4xx：标准HTTP状态码
   * 5xx：标准HTTP状态码
   * 10001：发者服务器返回的数据存在敏感词语，用*进行替换
   * @property {Object} header 开发者服务器返回的Response Header
   */
  /**
   * 发送HTTP请求
   * @summary 需要用户授权使用
   * 代理服务会在请求头部(http header)加上`authorization <token>`头，小程序后台服务可以根据这个头校验当前请求是否从虎牙小程序平台发出，并且可解密获取更多信息
   * 回包大小限制：64KB
   * 发包大小限制：5KB
   * 需要把对应的HTTP服务发到公网才能使用
   * POST方法请求时，data会以`application/json`方式传递；服务器可通过获取body中的信息，做JSON反序列化，获取对应参数 
   * @since 1.3.0
   * @eapi <directly>
   * @param {RequesReq} params 请求参数
   * @returns {Promise<RequestRsp>} 请求返回
   */
  request(params) {
    return network.request(params);
  },

  /**
   * websocket 实例
   * @constructor
   */
  WebSocket: network.WebSocket
}