import request from '@/utils/request'
import SparkMD5 from "spark-md5";

// get方法封装
export function requestGet(url, data) {
  return new Promise((res, rej) => {
    request.get(url, {
      params: data
    })
      .then(rests => {
        res(rests)
      })
      .catch(err => {
        rej(err)
      })
  })
}

// post方法封装
export function requestPost(url, params) {
  return new Promise((resolve, reject) => {
    request.post(url, params)
      .then(res => {
        // reject(res)
        resolve(res)
      })
      .catch(err => {
        reject(err)
        // resolve(err)
      })
  })
}

// put方法封装
export function requestPut(url, params) {
  return new Promise((resolve, reject) => {
    request
      .put(url, params)
      .then(res => {
        resolve(res)
      })
      .catch(err => {
        reject(err)
      })
  })
}

// delete方法封装
export function requestDelete(url, params) {
  return new Promise((resolve, reject) => {
    request.delete(url, {
      params: params
    })
      .then(res => {
        resolve(res)
      })
      .catch(err => {
        reject(err)
      })
  })
}

/**
 * 获取文件MD5
 */
export function getFileMD5(file) {
  var md5;
  let fileSize = file.size;
  let fileReader = new FileReader();

  // if (fileSize < 2 * 1024 * 1024) {
    fileReader.onload = (ev) => {
      md5 = SparkMD5.hashBinary(ev.target.result);
    };
    fileReader.onerror = function () {
      console.warn('oops, something went wrong.');
    };
    fileReader.readAsBinaryString(file);
    return md5;
  // } else {
  //   // 大于 2M 切片计算
  //   let spark = new SparkMD5();
  //   var chunkSize = 1 * 1024 * 1024;
  //   var maxChunks = Math.ceil(fileSize / chunkSize);
  //   var currChunk = 0;

  //   const loadFile = () => {
  //     var start = currChunk * chunkSize;
  //     const slice = file.slice(start, start + chunkSize);
  //     fileReader.readAsBinaryString(slice);
  //   };
  //   loadFile();

  //   fileReader.onload = (ev) => {
  //     spark.appendBinary(ev.target.result);

  //     if (currChunk < maxChunks) {
  //       currChunk++;
  //       loadFile();
  //       console.log("load finish", currChunk);
  //     } else {
  //       console.log("load finish");
  //       md5 = spark.end();
  //       return md5;
  //     }
  //   };

    // fileReader.onerror = function () {
    //   console.warn('oops, something went wrong.');
    // };
  // }
}
