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