From 113eca6e9d60c923da82474941acf5c9640bd917 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Sun, 21 May 2017 01:41:23 +0200 Subject: handle new uploads --- lib/awmail/index.js | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/awmail/index.js b/lib/awmail/index.js index 9534b32..64db34c 100644 --- a/lib/awmail/index.js +++ b/lib/awmail/index.js @@ -8,6 +8,7 @@ var request = require('request') var multer = require('multer') var PassThrough = require('stream').PassThrough var upload = require('../../node_modules/okcms/app/node_modules/okservices/oks3/upload') +var uuid = require('uuid/v1') /* awmail: { @@ -39,36 +40,59 @@ function AWMail (options) { key: process.env.MAILGUN_API_KEY, }) - router.post('/send', mult.single('image'), function (req, res) { + var multerMiddleware = mult.fields([ + { name: 'dots', maxCount: 1 }, + { name: 'lines', maxCount: 1 }, + { name: 'plain', maxCount: 1 }, + ]) + + router.post('/send', multerMiddleware, function (req, res) { res.header('Access-Control-Allow-Origin', '*') res.header('Access-Control-Allow-Headers', 'X-Requested-With') + var id = uuid() var email = req.body.email var track = req.body.track var secret = req.body.secret + var dots_url, lines_url, plain_url if (secret !== config.secret) { return res.sendStatus(500) } deferToNextTick().then(function(){ - console.log("upload image") + console.log("upload dots") + return uploadImage({ + filename: uuid + '-dots.jpg', + file: req.files.dots[0], + }) + }).then(function(url){ + console.log("upload lines") + dots_url = url return uploadImage({ - file: req.file, + filename: uuid + '-lines.jpg', + file: req.files.lines[0], }) }).then(function(url){ + console.log("upload plain") + lines_url = url + return uploadImage({ + filename: uuid + '-plain.jpg', + file: req.files.plain[0], + }) + }).then(function(url){ + plain_url = url console.log("parse templates") // https://marsupial.s3.amazonaws.com/armory/mail/260b1e90-380e-11e7-b0c0-190f661d482a.jpg - var hash = url.replace('https://marsupial.s3.amazonaws.com/armory/mail/','').replace('.jpg','') var templateData = { + id: id, email: email, - hash: hash, } return parseTemplates(templateData) }).then(function(mailData){ console.log("send mail") mailData.email = email - mailData.image = req.file + mailData.image = req.files.plain[0] return sendMail(mailData) }).then(function(){ console.log("store email") @@ -157,7 +181,7 @@ function AWMail (options) { return Q.Promise(function(resolve, reject, notify) { upload.put({ file: data.file, - preserveFilename: false, + filename: data.filename, dirname: "armory/mail", types: { 'image/gif': 'gif', -- cgit v1.2.3-70-g09d2