From eba910e939750b395c9ee7bbfe9848f34109ef4c Mon Sep 17 00:00:00 2001 From: Mrugesh Mohapatra Date: Tue, 31 Jul 2018 00:28:36 +0530 Subject: [PATCH] feat(news): Add news model --- common/models/article.js | 5 +++ common/models/article.json | 74 ++++++++++++++++++++++++++++++++++++ common/models/challenge.json | 2 +- common/models/user.json | 14 ++++--- server/middleware.json | 1 - server/model-config.json | 4 ++ server/models/donation.json | 20 +++++----- 7 files changed, 103 insertions(+), 17 deletions(-) create mode 100644 common/models/article.js create mode 100644 common/models/article.json diff --git a/common/models/article.js b/common/models/article.js new file mode 100644 index 0000000000..3946db12ad --- /dev/null +++ b/common/models/article.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function(Article) { + +}; diff --git a/common/models/article.json b/common/models/article.json new file mode 100644 index 0000000000..cb735530b1 --- /dev/null +++ b/common/models/article.json @@ -0,0 +1,74 @@ +{ + "name": "article", + "plural": "articles", + "base": "PersistedModel", + "idInjection": true, + "options": { + "validateUpsert": true + }, + "properties": { + "shortId": { + "type": "string", + "required": true + }, + "title": { + "type": "string", + "required": true + }, + "author": { + "type": "string", + "required": true + }, + "subtitle": { + "type": "string" + }, + "featureImage": { + "type": "string" + }, + "draft": { + "type": "string", + "required": true + }, + "renderableContent": { + "type": "string" + }, + "published": { + "type": "boolean", + "required": true, + "default": false + }, + "featured": { + "type": "boolean", + "required": true, + "default": false + }, + "underReview": { + "type": "boolean", + "required": true, + "default": false + }, + "viewCount": { + "type": "number", + "required": true, + "default": 1 + }, + "createdDate": { + "type": "date", + "required": true + }, + "lastEditedDate": { + "type": "date", + "required": true + }, + "history": { + "type": [ + "object" + ], + "required": true + } + }, + "validations": [], + "relations": {}, + "acls": [], + "methods": {} +} diff --git a/common/models/challenge.json b/common/models/challenge.json index ca5aba1334..42e11c24f0 100644 --- a/common/models/challenge.json +++ b/common/models/challenge.json @@ -92,7 +92,7 @@ "type": "array", "default": [] }, - "guideUrl" : { + "guideUrl": { "type": "string", "description": "Used to link to an article in the FCC guide" }, diff --git a/common/models/user.json b/common/models/user.json index 3f636a9fa2..b26ce56852 100644 --- a/common/models/user.json +++ b/common/models/user.json @@ -244,19 +244,23 @@ }, "default": {} }, - "donationEmails": [ "string" ], + "donationEmails": { + "type": [ + "string" + ] + }, "isDonating": { "type": "boolean", - "default": false, - "description": "Does the camper have an active donation" + "description": "Does the camper have an active donation", + "default": false } }, "validations": [], "relations": { "donations": { "type": "hasMany", - "modal": "donation", - "foreignKey": "" + "foreignKey": "", + "modal": "donation" }, "credentials": { "type": "hasMany", diff --git a/server/middleware.json b/server/middleware.json index c664ae1b0f..289b6269bd 100644 --- a/server/middleware.json +++ b/server/middleware.json @@ -41,7 +41,6 @@ } }, "method-override": {} - }, "parse:after": { "./middlewares/validator": {} diff --git a/server/model-config.json b/server/model-config.json index 3d65afe0fb..3daafa8ca9 100644 --- a/server/model-config.json +++ b/server/model-config.json @@ -86,5 +86,9 @@ "User": { "dataSource": "db", "public": false + }, + "article": { + "dataSource": "db", + "public": true } } diff --git a/server/models/donation.json b/server/models/donation.json index 9bddc8caaa..2b55245edb 100644 --- a/server/models/donation.json +++ b/server/models/donation.json @@ -1,12 +1,17 @@ { "name": "Donation", - "plural": "donations", "description": "A representaion of a donation to freeCodeCamp", + "plural": "donations", "base": "PersistedModel", "idInjection": true, + "scopes": {}, + "indexes": {}, "options": { "validateUpsert": true - }, + }, + "hidden": [], + "remoting": {}, + "http": {}, "properties": { "email": { "type": "string", @@ -41,14 +46,14 @@ "description": "The providers reference for the donator" } }, - "hidden": [], "validations": [ { "amount": { "type": "number", "description": "Amount should be >= $1 (100c)", "min": 100 - } + }, + "facetName": "server" } ], "relations": { @@ -59,10 +64,5 @@ } }, "acls": [], - "scopes": {}, - "indexes" : {}, - "methods": [], - "remoting": {}, - "http": {} + "methods": {} } -