const Drive = use('Drive');


class FileUtils {
  static async saveBase64File(base64Str) {
    console.log(base64Str.length);
    const parsed = parseBase64(base64Str);
    const fileName =
        `${Date.now()}-${Math.random() * 1000}.${parsed.extension}`;
    const file = await Drive.put(fileName, parsed.data);
    return {fileName, file};
  }

  static async getFile(filename) {
    try {
      return await Drive.get(filename)
    } catch (e) {
      console.error(e);
      return null;
    }
  }
}



function parseBase64(dataString) {
  const matches = dataString.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/);

  if (matches.length !== 3) {
    return new Error('Invalid input string');
  }
  let extension = matches[1].split('/')[1];
  // if (extension === 'jpeg') extension = 'jpg';
  let data = matches[2];
  console.log(data[0], data[1]);
  return {
    type: matches[1], extension, data: Buffer.from(data, 'base64'),
  }
}

module.exports = FileUtils;
