From d933f07eac95c42b5c67b443a20dff28bf5d9ab9 Mon Sep 17 00:00:00 2001 From: Andris Reinman Date: Fri, 13 May 2016 20:08:42 +0300 Subject: [PATCH] v1.8.1 --- CHANGELOG.txt | 4 ++++ lib/models/subscriptions.js | 18 ++++++++++++++++++ package.json | 2 +- routes/api.js | 5 +++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 2de87ea2..76705895 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,9 @@ # Changelog +## 1.8.1 2016-05-13 + + * Fixed an issue in API + ## 1.8.0 2016-05-13 * Show details about subscribers who clicked on a specific link diff --git a/lib/models/subscriptions.js b/lib/models/subscriptions.js index 33917450..3666be24 100644 --- a/lib/models/subscriptions.js +++ b/lib/models/subscriptions.js @@ -345,6 +345,24 @@ module.exports.insert = (listId, meta, subscription, callback) => { statusDirection = !existing ? (meta.status === 1 ? '+' : '-') : (existing.status === 1 ? '-' : '+'); } + if (!keys.length) { + // nothing to update + return connection.commit(err => { + if (err) { + return connection.rollback(() => { + connection.release(); + return callback(err); + }); + } + connection.release(); + return callback(null, { + entryId, + cid: meta.cid, + inserted: !existing + }); + }); + } + if (!existing) { // insert as new keys = insertKeys.concat(keys); diff --git a/package.json b/package.json index d68608f4..ead450a7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "mailtrain", "private": true, - "version": "1.8.0", + "version": "1.8.1", "description": "Self hosted email newsletter app", "main": "index.js", "scripts": { diff --git a/routes/api.js b/routes/api.js index 4685af4e..804ef93f 100644 --- a/routes/api.js +++ b/routes/api.js @@ -6,6 +6,7 @@ let fields = require('../lib/models/fields'); let subscriptions = require('../lib/models/subscriptions'); let tools = require('../lib/tools'); let express = require('express'); +let log = require('npmlog'); let router = new express.Router(); router.all('/*', (req, res, next) => { @@ -44,6 +45,7 @@ router.post('/subscribe/:listId', (req, res) => { }); lists.getByCid(req.params.listId, (err, list) => { if (err) { + log.error('API', err); res.status(500); return res.json({ error: err.message || err, @@ -66,6 +68,7 @@ router.post('/subscribe/:listId', (req, res) => { } tools.validateEmail(input.EMAIL, false, err => { if (err) { + log.error('API', err); res.status(400); return res.json({ error: err.message || err, @@ -121,6 +124,7 @@ router.post('/subscribe/:listId', (req, res) => { if (/^(yes|true|1)$/i.test(input.REQUIRE_CONFIRMATION)) { subscriptions.addConfirmation(list, input.EMAIL, subscription, (err, cid) => { if (err) { + log.error('API', err); res.status(500); return res.json({ error: err.message || err, @@ -137,6 +141,7 @@ router.post('/subscribe/:listId', (req, res) => { } else { subscriptions.insert(list.id, meta, subscription, (err, response) => { if (err) { + log.error('API', err); res.status(500); return res.json({ error: err.message || err,