From 810ae8a6c104e61b64d13da917c916c58678320e Mon Sep 17 00:00:00 2001
From: Sebastian Mihalache <sebastian.mihalache@gmail.con>
Date: Thu, 10 May 2018 16:05:04 +0300
Subject: [PATCH] feat(component-manuscript-manager): handle submitted on

---
 .../src/helpers/Collection.js                       | 13 +++++++++++++
 .../src/routes/fragmentsRecommendations/patch.js    |  3 +++
 packages/xpub-faraday/config/default.js             |  4 ++++
 3 files changed, 20 insertions(+)
 create mode 100644 packages/component-manuscript-manager/src/helpers/Collection.js

diff --git a/packages/component-manuscript-manager/src/helpers/Collection.js b/packages/component-manuscript-manager/src/helpers/Collection.js
new file mode 100644
index 000000000..4949969b0
--- /dev/null
+++ b/packages/component-manuscript-manager/src/helpers/Collection.js
@@ -0,0 +1,13 @@
+const config = require('config')
+
+const statuses = config.get('statuses')
+
+const updateStatus = async (collection, newStatus) => {
+  collection.status = newStatus
+  collection.visibleStatus = statuses[collection.status].private
+  await collection.save()
+}
+
+module.exports = {
+  updateStatus,
+}
diff --git a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js
index 5bf453ec9..9c1b97476 100644
--- a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js
+++ b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js
@@ -1,5 +1,6 @@
 const helpers = require('../../helpers/helpers')
 const authsomeHelper = require('../../helpers/authsome')
+const collectionHelper = require('../../helpers/Collection')
 
 module.exports = models => async (req, res) => {
   const { collectionId, fragmentId, recommendationId } = req.params
@@ -32,6 +33,8 @@ module.exports = models => async (req, res) => {
       })
     Object.assign(recommendation, req.body)
     recommendation.updatedOn = Date.now()
+    if (req.body.submittedOn !== undefined)
+      await collectionHelper.updateStatus(collection, 'reviewCompleted')
     await fragment.save()
     return res.status(200).json(recommendation)
   } catch (e) {
diff --git a/packages/xpub-faraday/config/default.js b/packages/xpub-faraday/config/default.js
index a773b41f2..4edb74bf1 100644
--- a/packages/xpub-faraday/config/default.js
+++ b/packages/xpub-faraday/config/default.js
@@ -114,5 +114,9 @@ module.exports = {
       public: 'Under Review',
       private: 'Under Review',
     },
+    reviewCompleted: {
+      public: 'Under Review',
+      private: 'Review Completed',
+    },
   },
 }
-- 
GitLab