const multer = require('multer')
const path = require('path')
const CustomError = require('../errors')
const fs = require('fs')
const dirExist = require('./dirExist')
const createDir = require('./createDir')

//Destination to store the file
const fileStorage = multer.diskStorage({
    destination: function (req, file, cb) { 

        const dir = path.join(process.cwd(), 'public', 'jsonfiles')

        if (!dirExist(dir)) {
            createDir(dir)
        }

        cb(null, dir)
    },
    filename: function (req, file, cb) {
        cb(null, Date.now() + String(Math.floor(Math.random() * 1000)) + path.extname(file.originalname))
    }
})

const fileUpload = multer({
    storage: fileStorage,
    fileFilter(req, file, cb) {

        if (!file.originalname.match(/\.(json)$/i)) {
            return cb(new CustomError.BadRequestError(`'Invalid file type. Send only .json file!`))

        }
        cb(undefined, true)


    }

})

module.exports = fileUpload