import path from 'path';
import fs from 'fs-extra';

const uploadUrl = 'http://localhost:3300/static/upload';
const filePath = path.join(__dirname, '../static/upload/');

fs.ensureDir(filePath);
export default class UserService {
  async upload(ctx, files, isMultiple) {
    let fileReader, fileResource, writeStream;

    const fileFunc = function (file) {
      fileReader = fs.createReadStream(file.path);
      fileResource = filePath + `/${file.name}`;
      console.log(fileResource);

      writeStream = fs.createWriteStream(fileResource);
      fileReader.pipe(writeStream);
    };

    const returnFunc = function (flag) {
      if (flag) {
        let url = '';
        for (let i = 0; i < files.length; i++) {
          url += uploadUrl + `/${files[i].name},`;
        }
        url = url.replace(/,$/gi, '');
        ctx.body = {
          url: url,
          code: 0,
          message: 'upload Success!',
        };
      } else {
        ctx.body = {
          url: uploadUrl + `/${files.name}`,
          code: 0,
          message: 'upload Success!',
        };
      }
    };
    console.log(isMultiple, files.length);

    if (isMultiple) {
      for (let i = 0; i < files.length; i++) {
        const f1 = files[i];
        fileFunc(f1);
      }
    } else {
      fileFunc(files);
    }
    fs.ensureDir(filePath);
    returnFunc(isMultiple);
  }
}