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);

  }

}