Added resize lib

This commit is contained in:
Damien Broqua 2018-09-19 21:49:02 +02:00
parent b3dc18e57d
commit 405d908a09
5 changed files with 725 additions and 35 deletions

View file

@ -4,6 +4,7 @@ const Vegetables = require('./Vegetables')
const path = require('path')
const fs = require('fs')
const Aws = require('../libs/aws')
const Resize = require('../libs/resize')
const uuid = require('uuid/v4')
class Pictures {
@ -102,6 +103,23 @@ class Pictures {
})
}
_createOne (req, callback) {
pictures.create({
order: req.body.order,
url: req.body.url,
vegetableId: req.params.vegetablesId
})
.then(item => {
console.log('ici')
callback(null, item)
})
.catch(e => {
console.log(e)
callback(e, null)
})
fs.unlink(req.file.path, () => {})
}
createOne (req, callback) {
Vegetables.getOne(req, (err, item) => {
if (err) {
@ -124,25 +142,46 @@ class Pictures {
}
if (req.file) {
const key = uuid()
let aws = new Aws()
aws.upload({
path: req.file.path,
filename: `picture_${req.params.vegetablesId}_${uuid()}.${req.file.originalname.split('.')[req.file.originalname.split('.').length - 1]}`
}, (err, res) => {
if (err) { callback(err, null) }
let resize = new Resize()
pictures.create({
order: order,
url: res.file,
vegetableId: req.params.vegetablesId
resize.createLargeImage(req.file.path, (err, large) => {
if (err) {
callback(err, null)
return false
}
aws.upload({
path: large.output,
filename: `picture_${req.params.vegetablesId}_${key}_large.${req.file.originalname.split('.')[req.file.originalname.split('.').length - 1]}`
}, (err, res) => {
if (err) { callback(err, null) }
req.body = {
order: order,
url: res.file
}
fs.unlink(large.output, () => {})
resize.createThumbnail(req.file.path, (err, file) => {
if (err) {
callback(err, null)
return false
}
aws.upload({
path: file.output,
filename: `picture_${req.params.vegetablesId}_${key}_thumb.${req.file.originalname.split('.')[req.file.originalname.split('.').length - 1]}`
}, (err, res) => {
if (err) { callback(err, null) }
this._createOne(req, callback)
fs.unlink(file.output, () => {})
})
})
})
.then(item => {
callback(null, item)
})
.catch(e => {
callback(e, null)
})
fs.unlink(req.file.path, () => {})
})
} else {
callback(new Error('No file sent'), 406)
@ -161,7 +200,7 @@ class Pictures {
const aws = new Aws()
aws.deleteObjects([item.url], (err) => {
aws.deleteObjects([item.url, item.url.replace('_large.', '_tumb.')], (err) => {
if (err) {
callback(err, null)
return false