From 5e3de31e15769e4482aab7efd43c2c3b3f318540 Mon Sep 17 00:00:00 2001 From: Sebastian <sebastian.mihalache@thinslices.com> Date: Tue, 16 Jan 2018 11:29:56 +0200 Subject: [PATCH] added name and email validations --- .../xpub-faraday-server/src/AuthorBackend.js | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/xpub-faraday-server/src/AuthorBackend.js b/packages/xpub-faraday-server/src/AuthorBackend.js index 075df4bc4..9fdc55ab6 100644 --- a/packages/xpub-faraday-server/src/AuthorBackend.js +++ b/packages/xpub-faraday-server/src/AuthorBackend.js @@ -14,6 +14,28 @@ const AuthorBackend = app => { req.params.fragmentId, ) fragment.authors = fragment.authors ? fragment.authors : [] + if (fragment.authors.length > 0) { + const emailAuthors = fragment.authors.filter( + author => author.email === req.body.email, + ) + + if (emailAuthors.length > 0) { + res.status(400).json({ error: 'Author already exists' }) + return + } + + const nameAuthors = fragment.authors.filter( + author => + author.first_name === req.body.first_name && + author.middle_name === req.body.middle_name && + author.last_name === req.body.last_name, + ) + + if (nameAuthors.length > 0) { + res.status(400).json({ error: 'Author already exists' }) + return + } + } fragment.authors.push(req.body) fragment = await fragment.save() res.status(200).json(fragment) -- GitLab