import AWS from 'aws-sdk'

const bucketRegion = 'us-east-1'
const Bucket = process.env.NEXT_PUBLIC_AWS_UPLOAD_BUCKET

AWS.config.update({
  region: bucketRegion
})

export function createPresignedPost ({ key, type, size }) {
  const s3 = new AWS.S3({ apiVersion: '2006-03-01' })
  return new Promise((resolve, reject) => {
    s3.createPresignedPost({
      Bucket,
      Fields: { key },
      Expires: 300,
      Conditions: [
        { 'Content-Type': type },
        { 'Cache-Control': 'max-age=31536000' },
        { acl: 'public-read' },
        ['content-length-range', size, size]
      ]
    }, (err, preSigned) => { err ? reject(err) : resolve(preSigned) })
  })
}

export function deleteObjects (keys) {
  const s3 = new AWS.S3({ apiVersion: '2006-03-01' })
  return new Promise((resolve, reject) => {
    s3.deleteObjects({
      Bucket,
      Delete: {
        Objects: keys.map(key => ({ Key: String(key) }))
      }
    }, (err, data) => { err ? reject(err) : resolve(keys) })
  })
}