From a24cc9c4a3c021e96360b871c66124533972a447 Mon Sep 17 00:00:00 2001
From: HongKee Moon <moon@mpi-cbg.de>
Date: Mon, 9 May 2022 09:18:06 +0200
Subject: [PATCH] Added "NovelCondensate" in CMS

---
 .../novel-condensate/schema.json              | 71 +++++++++++++++++++
 .../controllers/novel-condensate.js           |  9 +++
 .../routes/novel-condensate.js                |  9 +++
 .../services/novel-condensate.js              |  9 +++
 .../content-types/user/schema.json            | 12 ++++
 5 files changed, 110 insertions(+)
 create mode 100644 cms/src/api/novel-condensate/content-types/novel-condensate/schema.json
 create mode 100644 cms/src/api/novel-condensate/controllers/novel-condensate.js
 create mode 100644 cms/src/api/novel-condensate/routes/novel-condensate.js
 create mode 100644 cms/src/api/novel-condensate/services/novel-condensate.js

diff --git a/cms/src/api/novel-condensate/content-types/novel-condensate/schema.json b/cms/src/api/novel-condensate/content-types/novel-condensate/schema.json
new file mode 100644
index 0000000..1c696a5
--- /dev/null
+++ b/cms/src/api/novel-condensate/content-types/novel-condensate/schema.json
@@ -0,0 +1,71 @@
+{
+  "kind": "collectionType",
+  "collectionName": "novel_condensates",
+  "info": {
+    "singularName": "novel-condensate",
+    "pluralName": "novel-condensates",
+    "displayName": "NovelCondensate",
+    "description": ""
+  },
+  "options": {
+    "draftAndPublish": false
+  },
+  "pluginOptions": {},
+  "attributes": {
+    "Name": {
+      "type": "string",
+      "required": true
+    },
+    "IsExperimental": {
+      "type": "boolean",
+      "required": true
+    },
+    "SpeciesTaxId": {
+      "type": "integer",
+      "required": true
+    },
+    "Proteins": {
+      "type": "json",
+      "required": true
+    },
+    "Synonyms": {
+      "type": "text"
+    },
+    "Status": {
+      "type": "enumeration",
+      "enum": [
+        "requested",
+        "accepted",
+        "rejected",
+        "synced"
+      ]
+    },
+    "SubmissionComments": {
+      "type": "richtext"
+    },
+    "submittedBy": {
+      "type": "relation",
+      "relation": "manyToOne",
+      "target": "plugin::users-permissions.user",
+      "inversedBy": "SubmittedNovelCondensates"
+    },
+    "SubmittedAt": {
+      "type": "datetime"
+    },
+    "reviewedBy": {
+      "type": "relation",
+      "relation": "oneToMany",
+      "target": "plugin::users-permissions.user",
+      "mappedBy": "ReviewedNovelCondensates"
+    },
+    "ReviewedAt": {
+      "type": "datetime"
+    },
+    "SyncResponse": {
+      "type": "string"
+    },
+    "SyncedAt": {
+      "type": "datetime"
+    }
+  }
+}
diff --git a/cms/src/api/novel-condensate/controllers/novel-condensate.js b/cms/src/api/novel-condensate/controllers/novel-condensate.js
new file mode 100644
index 0000000..e94c923
--- /dev/null
+++ b/cms/src/api/novel-condensate/controllers/novel-condensate.js
@@ -0,0 +1,9 @@
+'use strict';
+
+/**
+ *  novel-condensate controller
+ */
+
+const { createCoreController } = require('@strapi/strapi').factories;
+
+module.exports = createCoreController('api::novel-condensate.novel-condensate');
diff --git a/cms/src/api/novel-condensate/routes/novel-condensate.js b/cms/src/api/novel-condensate/routes/novel-condensate.js
new file mode 100644
index 0000000..cd5f7ca
--- /dev/null
+++ b/cms/src/api/novel-condensate/routes/novel-condensate.js
@@ -0,0 +1,9 @@
+'use strict';
+
+/**
+ * novel-condensate router.
+ */
+
+const { createCoreRouter } = require('@strapi/strapi').factories;
+
+module.exports = createCoreRouter('api::novel-condensate.novel-condensate');
diff --git a/cms/src/api/novel-condensate/services/novel-condensate.js b/cms/src/api/novel-condensate/services/novel-condensate.js
new file mode 100644
index 0000000..179b96e
--- /dev/null
+++ b/cms/src/api/novel-condensate/services/novel-condensate.js
@@ -0,0 +1,9 @@
+'use strict';
+
+/**
+ * novel-condensate service.
+ */
+
+const { createCoreService } = require('@strapi/strapi').factories;
+
+module.exports = createCoreService('api::novel-condensate.novel-condensate');
diff --git a/cms/src/extensions/users-permissions/content-types/user/schema.json b/cms/src/extensions/users-permissions/content-types/user/schema.json
index 242981a..0cb4bcd 100644
--- a/cms/src/extensions/users-permissions/content-types/user/schema.json
+++ b/cms/src/extensions/users-permissions/content-types/user/schema.json
@@ -99,6 +99,18 @@
     },
     "scientific_discipline": {
       "type": "json"
+    },
+    "ReviewedNovelCondensates": {
+      "type": "relation",
+      "relation": "manyToOne",
+      "target": "api::novel-condensate.novel-condensate",
+      "inversedBy": "reviewedBy"
+    },
+    "SubmittedNovelCondensates": {
+      "type": "relation",
+      "relation": "oneToMany",
+      "target": "api::novel-condensate.novel-condensate",
+      "mappedBy": "submittedBy"
     }
   }
 }
-- 
GitLab