From 91f45b2803c3ef648b5630813cabd15bb3f64db3 Mon Sep 17 00:00:00 2001 From: dmukuna Date: Sun, 24 Nov 2019 18:21:48 +0300 Subject: [PATCH 01/11] [finished] setting up travis --- .travis.yml | 34 ++++++++++++++++++++++++++++++++++ package.json | 7 ++++++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..fc891f8 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,34 @@ +language: node_js +node_js: + - "stable" +cache: + directories: + - "node_modules" +install: + - npm install +services: + - postgresql +addons: + hosts: + - localhost + - 127.0.0.1 + +env: + global: + - NODE_ENV=test + - DB_USER_test=teamwork_user + - DB_PASSWORD_test=teamwork_password + - DB_HOST_test=localhost + - DB_PORT_test='5432' + - DB_DATABASE_test=teamwork_api_test + - SECRET=teamwork-api-secret-key + +before_script: + - psql -c 'create database teamwork_api_test;' -U postgres + - psql -c "CREATE USER teamwork_user WITH PASSWORD 'teamwork_password';" -U postgres + - psql -U teamwork_user -d teamwork_api_test -a -f ./init.sql + - npm run build +script: + - npm test +after_success: + - npm run coverage \ No newline at end of file diff --git a/package.json b/package.json index 337ad24..abd3e18 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,10 @@ "dev_server": "nodemon --exec babel-node ./api/v1/server.js", "test": "mocha --require @babel/register ./api/v1/test --timeout 30000 --exit", "build": "rm -rf ./build && babel -d ./build ./api/v1 -s", - "coverage": "nyc npm run test" + "generate-lcov": "nyc report --reporter=text-lcov > lcov.info", + "coveralls-coverage": "coveralls < lcov.info", + "codeclimate-coverage": "codeclimate-test-reporter < lcov.info", + "coverage": "nyc npm run test && npm run generate-lcov && npm run coveralls-coverage && npm run codeclimate-coverage" }, "repository": { "type": "git", @@ -49,6 +52,8 @@ "babel-loader": "^8.0.6", "chai": "^4.2.0", "chai-http": "^4.3.0", + "codeclimate-test-reporter": "^0.5.1", + "coveralls": "^3.0.8", "eslint": "^6.6.0", "eslint-config-airbnb-base": "^14.0.0", "eslint-plugin-import": "^2.18.2", From d24364cf91405948232bd6cab382af3551226dd5 Mon Sep 17 00:00:00 2001 From: dmukuna Date: Sun, 24 Nov 2019 18:33:34 +0300 Subject: [PATCH 02/11] [finished] setting up travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fc891f8..8e99809 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,7 @@ env: - NODE_ENV=test - DB_USER_test=teamwork_user - DB_PASSWORD_test=teamwork_password - - DB_HOST_test=localhost + - DB_HOST_test=127.0.0.1 - DB_PORT_test='5432' - DB_DATABASE_test=teamwork_api_test - SECRET=teamwork-api-secret-key From 5adea0e50ae54762440cb176415247f5af748971 Mon Sep 17 00:00:00 2001 From: dmukuna Date: Sun, 24 Nov 2019 18:35:19 +0300 Subject: [PATCH 03/11] [finished] setting up travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8e99809..975fe16 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,7 @@ env: - NODE_ENV=test - DB_USER_test=teamwork_user - DB_PASSWORD_test=teamwork_password - - DB_HOST_test=127.0.0.1 + - DB_HOST_test='127.0.0.1' - DB_PORT_test='5432' - DB_DATABASE_test=teamwork_api_test - SECRET=teamwork-api-secret-key From ed2b8c62d4469438f43849189013b0341e4eaaba Mon Sep 17 00:00:00 2001 From: dmukuna Date: Sun, 24 Nov 2019 18:38:37 +0300 Subject: [PATCH 04/11] [finished] setting up travis --- .travis.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 975fe16..d45d2e1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,10 +8,6 @@ install: - npm install services: - postgresql -addons: - hosts: - - localhost - - 127.0.0.1 env: global: @@ -19,7 +15,7 @@ env: - DB_USER_test=teamwork_user - DB_PASSWORD_test=teamwork_password - DB_HOST_test='127.0.0.1' - - DB_PORT_test='5432' + - DB_PORT_test='*' - DB_DATABASE_test=teamwork_api_test - SECRET=teamwork-api-secret-key From 05aa37228f8511d62af3d54efda61aef7fd783b6 Mon Sep 17 00:00:00 2001 From: dmukuna Date: Sun, 24 Nov 2019 18:51:21 +0300 Subject: [PATCH 05/11] [finished] setting up travis --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index d45d2e1..22b5af7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,8 +14,8 @@ env: - NODE_ENV=test - DB_USER_test=teamwork_user - DB_PASSWORD_test=teamwork_password - - DB_HOST_test='127.0.0.1' - - DB_PORT_test='*' + - DB_HOST_test=localhost + - DB_PORT_test=5432 - DB_DATABASE_test=teamwork_api_test - SECRET=teamwork-api-secret-key From fb0956e56762fa226e4c6bd350268d3770a4b22e Mon Sep 17 00:00:00 2001 From: dmukuna Date: Sun, 24 Nov 2019 19:09:31 +0300 Subject: [PATCH 06/11] [finished] configuring testing database --- .travis.yml | 9 +-------- api/v1/config/dbConfig.js | 2 +- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 22b5af7..5e2aef9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,17 +12,10 @@ services: env: global: - NODE_ENV=test - - DB_USER_test=teamwork_user - - DB_PASSWORD_test=teamwork_password - - DB_HOST_test=localhost - - DB_PORT_test=5432 - - DB_DATABASE_test=teamwork_api_test + - DATABASE_URL_TEST=postgres://utpwsugatpqjzn:03120a462667a671da3979385da1b5650ab8082d1319630013ec707eb7338ca5@ec2-54-225-173-42.compute-1.amazonaws.com:5432/ddo2ssbhau003c - SECRET=teamwork-api-secret-key before_script: - - psql -c 'create database teamwork_api_test;' -U postgres - - psql -c "CREATE USER teamwork_user WITH PASSWORD 'teamwork_password';" -U postgres - - psql -U teamwork_user -d teamwork_api_test -a -f ./init.sql - npm run build script: - npm test diff --git a/api/v1/config/dbConfig.js b/api/v1/config/dbConfig.js index 7366cdb..d385edd 100644 --- a/api/v1/config/dbConfig.js +++ b/api/v1/config/dbConfig.js @@ -12,7 +12,7 @@ if (isProduction) { } else if (isDevelopment) { conn = `postgresql://${process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_DATABASE}`; } else { - conn = `postgresql://${process.env.DB_USER_TEST}:${process.env.DB_PASSWORD_TEST}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_DATABASE_TEST}`; + conn = process.env.DATABASE_URL_TEST; } const pool = new Pool({ From 40866e210df00174055f09d6a0f659689b98e6ae Mon Sep 17 00:00:00 2001 From: dmukuna Date: Sun, 24 Nov 2019 19:39:00 +0300 Subject: [PATCH 07/11] [finished] configuring testing database --- .travis.yml | 6 +++++- api/v1/config/dbConfig.js | 19 +++++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5e2aef9..731b8ca 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,11 @@ services: env: global: - NODE_ENV=test - - DATABASE_URL_TEST=postgres://utpwsugatpqjzn:03120a462667a671da3979385da1b5650ab8082d1319630013ec707eb7338ca5@ec2-54-225-173-42.compute-1.amazonaws.com:5432/ddo2ssbhau003c + - DB_USER_test=utpwsugatpqjzn + - DB_PASSWORD_test=03120a462667a671da3979385da1b5650ab8082d1319630013ec707eb7338ca5 + - DB_HOST_test=ec2-54-225-173-42.compute-1.amazonaws.com + - DB_PORT_test=5432 + - DB_DATABASE_test=ddo2ssbhau003c - SECRET=teamwork-api-secret-key before_script: diff --git a/api/v1/config/dbConfig.js b/api/v1/config/dbConfig.js index d385edd..649c084 100644 --- a/api/v1/config/dbConfig.js +++ b/api/v1/config/dbConfig.js @@ -6,18 +6,25 @@ dotenv.config(); const isProduction = process.env.NODE_ENV === 'production'; const isDevelopment = process.env.NODE_ENV === 'development'; let conn; +let c; if (isProduction) { - conn = process.env.DATABASE_URL; + conn = {connectionString :process.env.DATABASE_URL}; + } else if (isDevelopment) { - conn = `postgresql://${process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_DATABASE}`; + conn = {connectionString: `postgresql://${process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_DATABASE}`}; } else { - conn = process.env.DATABASE_URL_TEST; + conn = { + user: process.env.DB_USER_TEST, + password: process.env.DB_PASSWORD_TEST, + database: process.env.DB_DATABASE_TEST, + port: process.env.DB_PORT, + host: process.env.DB_HOST, + ssl: true + } } -const pool = new Pool({ - connectionString: conn, -}); +const pool = new Pool(conn); pool.on('error', (err, client) => { client.release(); From 813deaa598763e4a299a364c3f53ba364e10f517 Mon Sep 17 00:00:00 2001 From: dmukuna Date: Sun, 24 Nov 2019 19:45:15 +0300 Subject: [PATCH 08/11] [finished] configuring testing database --- .travis.yml | 11 ++++++----- api/v1/config/dbConfig.js | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 731b8ca..59fa86a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,11 +12,12 @@ services: env: global: - NODE_ENV=test - - DB_USER_test=utpwsugatpqjzn - - DB_PASSWORD_test=03120a462667a671da3979385da1b5650ab8082d1319630013ec707eb7338ca5 - - DB_HOST_test=ec2-54-225-173-42.compute-1.amazonaws.com - - DB_PORT_test=5432 - - DB_DATABASE_test=ddo2ssbhau003c + - DB_USER_TEST=utpwsugatpqjzn + - DB_PASSWORD_TEST=03120a462667a671da3979385da1b5650ab8082d1319630013ec707eb7338ca5 + - DB_HOST_TEST=ec2-54-225-173-42.compute-1.amazonaws.com + - DB_PORT_TEST=5432 + - DB_DATABASE_TEST=ddo2ssbhau003c + - SECRET=teamwork-api-secret-key before_script: diff --git a/api/v1/config/dbConfig.js b/api/v1/config/dbConfig.js index 649c084..0bf7596 100644 --- a/api/v1/config/dbConfig.js +++ b/api/v1/config/dbConfig.js @@ -18,8 +18,8 @@ if (isProduction) { user: process.env.DB_USER_TEST, password: process.env.DB_PASSWORD_TEST, database: process.env.DB_DATABASE_TEST, - port: process.env.DB_PORT, - host: process.env.DB_HOST, + port: process.env.DB_PORT_TEST, + host: process.env.DB_HOST_TEST, ssl: true } } From 625a77bd60f8bcb7b8dd25a295158fe6e7226ed0 Mon Sep 17 00:00:00 2001 From: dmukuna Date: Sun, 24 Nov 2019 19:51:43 +0300 Subject: [PATCH 09/11] [finished] configuring testing database --- api/v1/test/article.spec.js | 2 +- api/v1/test/comment.spec.js | 2 +- api/v1/test/feed.spec.js | 2 +- api/v1/test/gif.spec.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/v1/test/article.spec.js b/api/v1/test/article.spec.js index 43f0d6c..6140aa9 100644 --- a/api/v1/test/article.spec.js +++ b/api/v1/test/article.spec.js @@ -21,7 +21,7 @@ chai.use(chaiHttp); describe('Articles', () => { const id1 = uuidv1(); - const obj = generateToken({ sub: id1, role: 'ADMIN' }); + const obj = generateToken({ sub: id1, role: 'EMPLOYEE' }); const token = `Bearer ${obj}`; before(async () => { const articleTitle = 'First test title'; diff --git a/api/v1/test/comment.spec.js b/api/v1/test/comment.spec.js index 854359a..0a3cfcf 100644 --- a/api/v1/test/comment.spec.js +++ b/api/v1/test/comment.spec.js @@ -26,7 +26,7 @@ chai.use(chaiHttp); describe('comments', () => { const id1 = uuidv1(); - const obj = generateToken({ sub: id1, role: 'ADMIN' }); + const obj = generateToken({ sub: id1, role: 'EMPLOYEE' }); const token = `Bearer ${obj}`; before(async () => { const articleTitle = 'First test title'; diff --git a/api/v1/test/feed.spec.js b/api/v1/test/feed.spec.js index 7084d85..2b8165f 100644 --- a/api/v1/test/feed.spec.js +++ b/api/v1/test/feed.spec.js @@ -26,7 +26,7 @@ chai.use(chaiHttp); describe('comments', () => { const id1 = uuidv1(); - const obj = generateToken({ sub: id1, role: 'ADMIN' }); + const obj = generateToken({ sub: id1, role: 'EMPLOYEE' }); const token = `Bearer ${obj}`; before(async () => { const articleTitle = 'First test title'; diff --git a/api/v1/test/gif.spec.js b/api/v1/test/gif.spec.js index becde3f..ca7f893 100644 --- a/api/v1/test/gif.spec.js +++ b/api/v1/test/gif.spec.js @@ -21,7 +21,7 @@ chai.use(chaiHttp); describe('Gifs', () => { const id1 = uuidv1(); - const obj = generateToken({ sub: id1, role: 'ADMIN' }); + const obj = generateToken({ sub: id1, role: 'EMPLOYEE' }); const token = `Bearer ${obj}`; before(async () => { const gifTitle = 'First gif test value'; From e137bd90f8038fb4df262ce91604b97292516688 Mon Sep 17 00:00:00 2001 From: dmukuna Date: Sun, 24 Nov 2019 19:55:15 +0300 Subject: [PATCH 10/11] [finished] configuring testing database --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 59fa86a..bbc06c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,9 @@ env: - DB_HOST_TEST=ec2-54-225-173-42.compute-1.amazonaws.com - DB_PORT_TEST=5432 - DB_DATABASE_TEST=ddo2ssbhau003c + - CLOUDINARY_CLOUD_NAME=mukuna + - CLOUDINARY_API_KEY=133265748257957 + - CLOUDINARY_API_SECRET=uXZx1YbXcdEK6yhcgXs1VxAHkUE - SECRET=teamwork-api-secret-key From 7d01fef80a8c4a3b0ec01c7c7480067ea6e4768f Mon Sep 17 00:00:00 2001 From: dmukuna Date: Sun, 24 Nov 2019 20:10:15 +0300 Subject: [PATCH 11/11] [finished] setting up CI/CD --- README.md | 0 build/app.js | 34 --- build/app.js.map | 1 - build/config/cloudinaryConfig.js | 24 -- build/config/cloudinaryConfig.js.map | 1 - build/config/dbConfig.js | 38 --- build/config/dbConfig.js.map | 1 - build/config/rolesConfig.js | 12 - build/config/rolesConfig.js.map | 1 - build/controllers/article.js | 291 --------------------- build/controllers/article.js.map | 1 - build/controllers/comment.js | 119 --------- build/controllers/comment.js.map | 1 - build/controllers/feed.js | 97 ------- build/controllers/feed.js.map | 1 - build/controllers/gif.js | 239 ----------------- build/controllers/gif.js.map | 1 - build/controllers/helper.js | 85 ------- build/controllers/helper.js.map | 1 - build/controllers/user.js | 118 --------- build/controllers/user.js.map | 1 - build/middleware/auth.js | 33 --- build/middleware/auth.js.map | 1 - build/middleware/multerConfig.js | 26 -- build/middleware/multerConfig.js.map | 1 - build/models/article.js | 71 ------ build/models/article.js.map | 1 - build/models/comment.js | 89 ------- build/models/comment.js.map | 1 - build/models/gif.js | 57 ----- build/models/gif.js.map | 1 - build/models/index.js | 32 --- build/models/index.js.map | 1 - build/models/user.js | 62 ----- build/models/user.js.map | 1 - build/routes/article.js | 29 --- build/routes/article.js.map | 1 - build/routes/comment.js | 20 -- build/routes/comment.js.map | 1 - build/routes/feed.js | 18 -- build/routes/feed.js.map | 1 - build/routes/gif.js | 30 --- build/routes/gif.js.map | 1 - build/routes/user.js | 23 -- build/routes/user.js.map | 1 - build/server.js | 73 ------ build/server.js.map | 1 - build/test/article.spec.js | 344 ------------------------- build/test/article.spec.js.map | 1 - build/test/comment.spec.js | 220 ---------------- build/test/comment.spec.js.map | 1 - build/test/feed.spec.js | 136 ---------- build/test/feed.spec.js.map | 1 - build/test/gif.spec.js | 288 --------------------- build/test/gif.spec.js.map | 1 - build/test/user.spec.js | 366 --------------------------- build/test/user.spec.js.map | 1 - 57 files changed, 3002 deletions(-) create mode 100644 README.md delete mode 100644 build/app.js delete mode 100644 build/app.js.map delete mode 100644 build/config/cloudinaryConfig.js delete mode 100644 build/config/cloudinaryConfig.js.map delete mode 100644 build/config/dbConfig.js delete mode 100644 build/config/dbConfig.js.map delete mode 100644 build/config/rolesConfig.js delete mode 100644 build/config/rolesConfig.js.map delete mode 100644 build/controllers/article.js delete mode 100644 build/controllers/article.js.map delete mode 100644 build/controllers/comment.js delete mode 100644 build/controllers/comment.js.map delete mode 100644 build/controllers/feed.js delete mode 100644 build/controllers/feed.js.map delete mode 100644 build/controllers/gif.js delete mode 100644 build/controllers/gif.js.map delete mode 100644 build/controllers/helper.js delete mode 100644 build/controllers/helper.js.map delete mode 100644 build/controllers/user.js delete mode 100644 build/controllers/user.js.map delete mode 100644 build/middleware/auth.js delete mode 100644 build/middleware/auth.js.map delete mode 100644 build/middleware/multerConfig.js delete mode 100644 build/middleware/multerConfig.js.map delete mode 100644 build/models/article.js delete mode 100644 build/models/article.js.map delete mode 100644 build/models/comment.js delete mode 100644 build/models/comment.js.map delete mode 100644 build/models/gif.js delete mode 100644 build/models/gif.js.map delete mode 100644 build/models/index.js delete mode 100644 build/models/index.js.map delete mode 100644 build/models/user.js delete mode 100644 build/models/user.js.map delete mode 100644 build/routes/article.js delete mode 100644 build/routes/article.js.map delete mode 100644 build/routes/comment.js delete mode 100644 build/routes/comment.js.map delete mode 100644 build/routes/feed.js delete mode 100644 build/routes/feed.js.map delete mode 100644 build/routes/gif.js delete mode 100644 build/routes/gif.js.map delete mode 100644 build/routes/user.js delete mode 100644 build/routes/user.js.map delete mode 100644 build/server.js delete mode 100644 build/server.js.map delete mode 100644 build/test/article.spec.js delete mode 100644 build/test/article.spec.js.map delete mode 100644 build/test/comment.spec.js delete mode 100644 build/test/comment.spec.js.map delete mode 100644 build/test/feed.spec.js delete mode 100644 build/test/feed.spec.js.map delete mode 100644 build/test/gif.spec.js delete mode 100644 build/test/gif.spec.js.map delete mode 100644 build/test/user.spec.js delete mode 100644 build/test/user.spec.js.map diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/build/app.js b/build/app.js deleted file mode 100644 index f9cd42b..0000000 --- a/build/app.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -var _express = _interopRequireDefault(require("express")); - -var _bodyParser = _interopRequireDefault(require("body-parser")); - -var _cors = _interopRequireDefault(require("cors")); - -var _gif = _interopRequireDefault(require("./routes/gif")); - -var _article = _interopRequireDefault(require("./routes/article")); - -var _user = _interopRequireDefault(require("./routes/user")); - -var _feed = _interopRequireDefault(require("./routes/feed")); - -var _auth = _interopRequireDefault(require("./middleware/auth")); - -var _rolesConfig = _interopRequireDefault(require("./config/rolesConfig")); - -var app = (0, _express["default"])(); -app.use((0, _cors["default"])()); -app.use(_bodyParser["default"].urlencoded({ - extended: true -})); -app.use(_bodyParser["default"].json()); -app.use('/api/v1/auth', _user["default"]); -app.use('/api/v1/articles', (0, _auth["default"])([_rolesConfig["default"].Employee, _rolesConfig["default"].Admin]), _article["default"]); -app.use('/api/v1/gifs', (0, _auth["default"])([_rolesConfig["default"].Employee, _rolesConfig["default"].Admin]), _gif["default"]); -app.use('/api/v1/feed', (0, _auth["default"])([_rolesConfig["default"].Employee, _rolesConfig["default"].Admin]), _feed["default"]); -module.exports = app; -//# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/build/app.js.map b/build/app.js.map deleted file mode 100644 index 61e441b..0000000 --- a/build/app.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../api/v1/app.js"],"names":["app","use","bodyParser","urlencoded","extended","json","userRoutes","Role","Employee","Admin","articleRoutes","gifRoutes","feedRoutes","module","exports"],"mappings":";;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA,IAAMA,GAAG,GAAG,0BAAZ;AAEAA,GAAG,CAACC,GAAJ,CAAQ,uBAAR;AAEAD,GAAG,CAACC,GAAJ,CAAQC,uBAAWC,UAAX,CAAsB;AAAEC,EAAAA,QAAQ,EAAE;AAAZ,CAAtB,CAAR;AAEAJ,GAAG,CAACC,GAAJ,CAAQC,uBAAWG,IAAX,EAAR;AAEAL,GAAG,CAACC,GAAJ,CAAQ,cAAR,EAAwBK,gBAAxB;AACAN,GAAG,CAACC,GAAJ,CAAQ,kBAAR,EAA4B,sBAAK,CAACM,wBAAKC,QAAN,EAAgBD,wBAAKE,KAArB,CAAL,CAA5B,EAA+DC,mBAA/D;AACAV,GAAG,CAACC,GAAJ,CAAQ,cAAR,EAAwB,sBAAK,CAACM,wBAAKC,QAAN,EAAgBD,wBAAKE,KAArB,CAAL,CAAxB,EAA2DE,eAA3D;AACAX,GAAG,CAACC,GAAJ,CAAQ,cAAR,EAAwB,sBAAK,CAACM,wBAAKC,QAAN,EAAgBD,wBAAKE,KAArB,CAAL,CAAxB,EAA2DG,gBAA3D;AAEAC,MAAM,CAACC,OAAP,GAAiBd,GAAjB","sourcesContent":["import express from 'express';\r\nimport bodyParser from 'body-parser';\r\nimport cors from 'cors';\r\n\r\nimport gifRoutes from './routes/gif';\r\nimport articleRoutes from './routes/article';\r\nimport userRoutes from './routes/user';\r\nimport feedRoutes from './routes/feed';\r\nimport auth from './middleware/auth';\r\nimport Role from './config/rolesConfig';\r\n\r\n\r\nconst app = express();\r\n\r\napp.use(cors());\r\n\r\napp.use(bodyParser.urlencoded({ extended: true }));\r\n\r\napp.use(bodyParser.json());\r\n\r\napp.use('/api/v1/auth', userRoutes);\r\napp.use('/api/v1/articles', auth([Role.Employee, Role.Admin]), articleRoutes);\r\napp.use('/api/v1/gifs', auth([Role.Employee, Role.Admin]), gifRoutes);\r\napp.use('/api/v1/feed', auth([Role.Employee, Role.Admin]), feedRoutes);\r\n\r\nmodule.exports = app;\r\n"],"file":"app.js"} \ No newline at end of file diff --git a/build/config/cloudinaryConfig.js b/build/config/cloudinaryConfig.js deleted file mode 100644 index 5ef6a34..0000000 --- a/build/config/cloudinaryConfig.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _dotenv = _interopRequireDefault(require("dotenv")); - -var _cloudinary = _interopRequireDefault(require("cloudinary")); - -_dotenv["default"].config(); - -_cloudinary["default"].config({ - cloud_name: process.env.CLOUDINARY_CLOUD_NAME, - api_key: process.env.CLOUDINARY_API_KEY, - api_secret: process.env.CLOUDINARY_API_SECRET -}); - -var _default = _cloudinary["default"]; -exports["default"] = _default; -//# sourceMappingURL=cloudinaryConfig.js.map \ No newline at end of file diff --git a/build/config/cloudinaryConfig.js.map b/build/config/cloudinaryConfig.js.map deleted file mode 100644 index 31ffb4b..0000000 --- a/build/config/cloudinaryConfig.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/config/cloudinaryConfig.js"],"names":["dotenv","config","cld","cloud_name","process","env","CLOUDINARY_CLOUD_NAME","api_key","CLOUDINARY_API_KEY","api_secret","CLOUDINARY_API_SECRET"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEAA,mBAAOC,MAAP;;AAEAC,uBAAID,MAAJ,CACE;AACEE,EAAAA,UAAU,EAAEC,OAAO,CAACC,GAAR,CAAYC,qBAD1B;AAEEC,EAAAA,OAAO,EAAEH,OAAO,CAACC,GAAR,CAAYG,kBAFvB;AAGEC,EAAAA,UAAU,EAAEL,OAAO,CAACC,GAAR,CAAYK;AAH1B,CADF;;eAQeR,sB","sourcesContent":["import dotenv from 'dotenv';\r\nimport cld from 'cloudinary';\r\n\r\ndotenv.config();\r\n\r\ncld.config(\r\n {\r\n cloud_name: process.env.CLOUDINARY_CLOUD_NAME,\r\n api_key: process.env.CLOUDINARY_API_KEY,\r\n api_secret: process.env.CLOUDINARY_API_SECRET,\r\n },\r\n);\r\n\r\nexport default cld;\r\n"],"file":"cloudinaryConfig.js"} \ No newline at end of file diff --git a/build/config/dbConfig.js b/build/config/dbConfig.js deleted file mode 100644 index 3dd0256..0000000 --- a/build/config/dbConfig.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _pg = require("pg"); - -var _dotenv = _interopRequireDefault(require("dotenv")); - -_dotenv["default"].config(); - -var isProduction = process.env.NODE_ENV === 'production'; -var isDevelopment = process.env.NODE_ENV === 'development'; -var conn; - -if (isProduction) { - conn = process.env.DATABASE_URL; -} else if (isDevelopment) { - conn = "postgresql://".concat(process.env.DB_USER, ":").concat(process.env.DB_PASSWORD, "@").concat(process.env.DB_HOST, ":").concat(process.env.DB_PORT, "/").concat(process.env.DB_DATABASE); -} else { - conn = "postgresql://".concat(process.env.DB_USER_TEST, ":").concat(process.env.DB_PASSWORD_TEST, "@").concat(process.env.DB_HOST, ":").concat(process.env.DB_PORT, "/").concat(process.env.DB_DATABASE_TEST); -} - -var pool = new _pg.Pool({ - connectionString: conn -}); -pool.on('error', function (err, client) { - client.release(); - console.error('Unexpected error on idle client', err); - process.exit(-1); -}); -var _default = pool; -exports["default"] = _default; -//# sourceMappingURL=dbConfig.js.map \ No newline at end of file diff --git a/build/config/dbConfig.js.map b/build/config/dbConfig.js.map deleted file mode 100644 index 4e873d4..0000000 --- a/build/config/dbConfig.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/config/dbConfig.js"],"names":["dotenv","config","isProduction","process","env","NODE_ENV","isDevelopment","conn","DATABASE_URL","DB_USER","DB_PASSWORD","DB_HOST","DB_PORT","DB_DATABASE","DB_USER_TEST","DB_PASSWORD_TEST","DB_DATABASE_TEST","pool","Pool","connectionString","on","err","client","release","console","error","exit"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEAA,mBAAOC,MAAP;;AAEA,IAAMC,YAAY,GAAGC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA9C;AACA,IAAMC,aAAa,GAAGH,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA/C;AACA,IAAIE,IAAJ;;AAEA,IAAIL,YAAJ,EAAkB;AAChBK,EAAAA,IAAI,GAAGJ,OAAO,CAACC,GAAR,CAAYI,YAAnB;AACD,CAFD,MAEO,IAAIF,aAAJ,EAAmB;AACxBC,EAAAA,IAAI,0BAAmBJ,OAAO,CAACC,GAAR,CAAYK,OAA/B,cAA0CN,OAAO,CAACC,GAAR,CAAYM,WAAtD,cAAqEP,OAAO,CAACC,GAAR,CAAYO,OAAjF,cAA4FR,OAAO,CAACC,GAAR,CAAYQ,OAAxG,cAAmHT,OAAO,CAACC,GAAR,CAAYS,WAA/H,CAAJ;AACD,CAFM,MAEA;AACLN,EAAAA,IAAI,0BAAmBJ,OAAO,CAACC,GAAR,CAAYU,YAA/B,cAA+CX,OAAO,CAACC,GAAR,CAAYW,gBAA3D,cAA+EZ,OAAO,CAACC,GAAR,CAAYO,OAA3F,cAAsGR,OAAO,CAACC,GAAR,CAAYQ,OAAlH,cAA6HT,OAAO,CAACC,GAAR,CAAYY,gBAAzI,CAAJ;AACD;;AAED,IAAMC,IAAI,GAAG,IAAIC,QAAJ,CAAS;AACpBC,EAAAA,gBAAgB,EAAEZ;AADE,CAAT,CAAb;AAIAU,IAAI,CAACG,EAAL,CAAQ,OAAR,EAAiB,UAACC,GAAD,EAAMC,MAAN,EAAiB;AAChCA,EAAAA,MAAM,CAACC,OAAP;AACAC,EAAAA,OAAO,CAACC,KAAR,CAAc,iCAAd,EAAiDJ,GAAjD;AACAlB,EAAAA,OAAO,CAACuB,IAAR,CAAa,CAAC,CAAd;AACD,CAJD;eAMeT,I","sourcesContent":["import { Pool } from 'pg';\r\nimport dotenv from 'dotenv';\r\n\r\ndotenv.config();\r\n\r\nconst isProduction = process.env.NODE_ENV === 'production';\r\nconst isDevelopment = process.env.NODE_ENV === 'development';\r\nlet conn;\r\n\r\nif (isProduction) {\r\n conn = process.env.DATABASE_URL;\r\n} else if (isDevelopment) {\r\n conn = `postgresql://${process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_DATABASE}`;\r\n} else {\r\n conn = `postgresql://${process.env.DB_USER_TEST}:${process.env.DB_PASSWORD_TEST}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_DATABASE_TEST}`;\r\n}\r\n\r\nconst pool = new Pool({\r\n connectionString: conn,\r\n});\r\n\r\npool.on('error', (err, client) => {\r\n client.release();\r\n console.error('Unexpected error on idle client', err);\r\n process.exit(-1);\r\n});\r\n\r\nexport default pool;\r\n"],"file":"dbConfig.js"} \ No newline at end of file diff --git a/build/config/rolesConfig.js b/build/config/rolesConfig.js deleted file mode 100644 index 42817c1..0000000 --- a/build/config/rolesConfig.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _default = { - Admin: 'ADMIN', - Employee: 'EMPLOYEE' -}; -exports["default"] = _default; -//# sourceMappingURL=rolesConfig.js.map \ No newline at end of file diff --git a/build/config/rolesConfig.js.map b/build/config/rolesConfig.js.map deleted file mode 100644 index 600269a..0000000 --- a/build/config/rolesConfig.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/config/rolesConfig.js"],"names":["Admin","Employee"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE,OADM;AAEbC,EAAAA,QAAQ,EAAE;AAFG,C","sourcesContent":["export default {\r\n Admin: 'ADMIN',\r\n Employee: 'EMPLOYEE',\r\n};"],"file":"rolesConfig.js"} \ No newline at end of file diff --git a/build/controllers/article.js b/build/controllers/article.js deleted file mode 100644 index f401658..0000000 --- a/build/controllers/article.js +++ /dev/null @@ -1,291 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.deleteArticleController = exports.updateArticleController = exports.getArticleController = exports.getArticlesController = exports.createArticleController = void 0; - -var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); - -var _moment = _interopRequireDefault(require("moment")); - -var _article = _interopRequireDefault(require("../models/article")); - -var _comment = _interopRequireDefault(require("../models/comment")); - -var findOneArticle = _article["default"].findOneArticle, - findAllArticles = _article["default"].findAllArticles, - updateArticle = _article["default"].updateArticle, - saveArticle = _article["default"].saveArticle, - deleteArticle = _article["default"].deleteArticle; -var findArticleComments = _comment["default"].findArticleComments; - -var createArticleController = function createArticleController(req, res, next) { - var checkFields = !req.body.article || !req.body.title || req.body.title === '' || req.body.article === ''; - - if (checkFields) { - res.status(400).json({ - status: 'error', - error: 'Title and Article text are required' - }); - } else { - findAllArticles().then(function (rows) { - var _req$body = req.body, - title = _req$body.title, - article = _req$body.article; - var authorId = req.user.sub; - var articleCreatedOn = (0, _moment["default"])().format('YYYY-MM-DD HH:mm:ss'); - var articleId = Math.max.apply(Math, (0, _toConsumableArray2["default"])(rows.map(function (row) { - return row.id + 1; - })).concat([1])); - var articleTitle = title; - var values = [articleId, title, article, articleCreatedOn, authorId]; - saveArticle(values).then(function () { - res.status(201).json({ - status: 'success', - data: { - id: articleId, - message: 'Article successfully posted', - createdOn: articleCreatedOn, - title: articleTitle, - userId: authorId - } - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to save article' - }); - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to get articles' - }); - }); - } -}; - -exports.createArticleController = createArticleController; - -var getArticlesController = function getArticlesController(req, res, next) { - findAllArticles().then(function (rows) { - if (rows.length === 0) { - res.status(400).json({ - status: 'error', - error: 'There is no Article post yet' - }); - } else { - var articlesArr = []; - rows.forEach(function (a) { - var id = a.id, - title = a.title, - article = a.article, - createdOn = a.createdOn, - authorId = a.authorId; - var articleId = id; - var articleTitle = title; - var articleText = article; - var articleCreatedOn = createdOn; - var values = { - id: articleId, - title: articleTitle, - article: articleText, - createdOn: articleCreatedOn, - userId: authorId - }; - articlesArr.push(values); - }); - res.status(200).json({ - status: 'success', - data: articlesArr - }); - } - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to get articles' - }); - }); -}; - -exports.getArticlesController = getArticlesController; - -var getArticleController = function getArticleController(req, res, next) { - if (!req.params.articleId || req.params.articleId === '') { - res.status(400).json({ - status: 'error', - error: 'Invalid request' - }); - } else { - var paramId = parseInt(req.params.articleId, 10); - findOneArticle([paramId]).then(function (row) { - if (row.length === 0) { - res.status(400).json({ - status: 'error', - error: 'Invalid request' - }); - } else { - var id = row.id, - title = row.title, - article = row.article, - createdon = row.createdon, - authorid = row.authorid; - var articleId = id; - var articleTitle = title; - var articleText = article; - var articleCreatedOn = createdon; - var articleAuthorId = authorid; - findArticleComments([paramId]).then(function (rows) { - var commentArr = []; - rows.forEach(function (commentRow) { - var comment = commentRow.comment; - var commentText = comment; - var commentAuthorId = commentRow.authorid; - var values = { - commentId: commentRow.id, - comment: commentText, - authorId: commentAuthorId - }; - commentArr.push(values); - }); - res.status(200).json({ - status: 'success', - data: { - id: articleId, - createdOn: articleCreatedOn, - title: articleTitle, - article: articleText, - authorId: articleAuthorId, - comments: commentArr - } - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to get article comments' - }); - }); - } - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to get article' - }); - }); - } -}; - -exports.getArticleController = getArticleController; - -var updateArticleController = function updateArticleController(req, res, next) { - var checkFields = !req.params.articleId || !req.body.article || !req.body.title || req.params.articleId === '' || req.body.article === '' || req.body.title === ''; - - if (checkFields) { - res.status(400).json({ - status: 'error', - error: 'Title and article fields are required' - }); - } else { - var paramId = parseInt(req.params.articleId, 10); - findOneArticle([paramId]).then(function (row) { - if (row.length === 0) { - res.status(400).json({ - status: 'error', - error: 'Article does not exist' - }); - } else { - updateArticle([req.body.title, req.body.article, paramId]).then(function (row) { - var id = row.id, - title = row.title, - article = row.article, - createdon = row.createdon, - authorid = row.authorid; - var articleId = id; - var articleTitle = title; - var articleText = article; - var articleCreatedOn = createdon; - res.status(201).json({ - status: 'success', - data: { - id: articleId, - title: articleTitle, - article: articleText, - createdOn: articleCreatedOn, - userId: authorid - } - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to update article' - }); - }); - } - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to get article' - }); - }); - } -}; - -exports.updateArticleController = updateArticleController; - -var deleteArticleController = function deleteArticleController(req, res, next) { - if (!req.params.articleId || req.params.articleId === '') { - res.status(400).json({ - status: 'error', - error: 'Invalid request' - }); - } else { - var articleId = parseInt(req.params.articleId, 10); - findOneArticle([articleId]).then(function (row) { - if (row.length === 0) { - res.status(400).json({ - status: 'error', - error: 'Invalid request' - }); - } else { - deleteArticle([articleId]).then(function (row) { - var id = row.id, - title = row.title, - article = row.article, - createdon = row.createdon, - authorid = row.authorid; - var articleTitle = title; - var articleText = article; - var articleCreatedOn = createdon; - var userId = authorid; - res.status(200).json({ - status: 'success', - data: { - message: 'Article successfully deleted', - Id: id, - title: articleTitle, - article: articleText, - createdOn: articleCreatedOn, - authorId: userId - } - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to delete article' - }); - }); - } - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to get article' - }); - }); - } -}; - -exports.deleteArticleController = deleteArticleController; -//# sourceMappingURL=article.js.map \ No newline at end of file diff --git a/build/controllers/article.js.map b/build/controllers/article.js.map deleted file mode 100644 index f21241a..0000000 --- a/build/controllers/article.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/controllers/article.js"],"names":["findOneArticle","artcl","findAllArticles","updateArticle","saveArticle","deleteArticle","findArticleComments","comnt","createArticleController","req","res","next","checkFields","body","article","title","status","json","error","then","rows","authorId","user","sub","articleCreatedOn","format","articleId","Math","max","map","row","id","articleTitle","values","data","message","createdOn","userId","getArticlesController","length","articlesArr","forEach","a","articleText","push","getArticleController","params","paramId","parseInt","createdon","authorid","articleAuthorId","commentArr","commentRow","comment","commentText","commentAuthorId","commentId","comments","updateArticleController","deleteArticleController","Id"],"mappings":"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","sourcesContent":["import moment from 'moment';\r\nimport artcl from '../models/article';\r\nimport comnt from '../models/comment';\r\n\r\nconst {\r\n findOneArticle, findAllArticles, updateArticle, saveArticle, deleteArticle,\r\n} = artcl;\r\nconst { findArticleComments } = comnt;\r\n\r\nconst createArticleController = (req, res, next) => {\r\n const checkFields = !req.body.article || !req.body.title || req.body.title === '' || req.body.article === '';\r\n if (checkFields) {\r\n res.status(400).json({\r\n status: 'error',\r\n error: 'Title and Article text are required',\r\n });\r\n } else {\r\n findAllArticles()\r\n .then((rows) => {\r\n const { title, article } = req.body;\r\n const authorId = req.user.sub;\r\n const articleCreatedOn = moment().format('YYYY-MM-DD HH:mm:ss');\r\n const articleId = Math.max(...rows.map(row => row.id + 1), 1);\r\n\r\n const articleTitle = title;\r\n\r\n const values = [articleId, title, article, articleCreatedOn, authorId];\r\n\r\n saveArticle(values)\r\n .then(() => {\r\n res.status(201).json({\r\n status: 'success',\r\n data: {\r\n id: articleId,\r\n message: 'Article successfully posted',\r\n createdOn: articleCreatedOn,\r\n title: articleTitle,\r\n userId: authorId,\r\n },\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to save article',\r\n });\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to get articles',\r\n });\r\n });\r\n }\r\n};\r\n\r\nconst getArticlesController = (req, res, next) => {\r\n findAllArticles()\r\n .then((rows) => {\r\n if (rows.length === 0) {\r\n res.status(400).json({\r\n status: 'error',\r\n error: 'There is no Article post yet',\r\n });\r\n } else {\r\n const articlesArr = [];\r\n rows.forEach((a) => {\r\n const {\r\n id, title, article, createdOn, authorId,\r\n } = a;\r\n const articleId = id;\r\n const articleTitle = title;\r\n const articleText = article;\r\n const articleCreatedOn = createdOn;\r\n\r\n const values = {\r\n id: articleId,\r\n title: articleTitle,\r\n article: articleText,\r\n createdOn: articleCreatedOn,\r\n userId: authorId,\r\n };\r\n articlesArr.push(values);\r\n });\r\n res.status(200).json({\r\n status: 'success',\r\n data: articlesArr,\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to get articles',\r\n });\r\n });\r\n};\r\n\r\nconst getArticleController = (req, res, next) => {\r\n if (!req.params.articleId || req.params.articleId === '') {\r\n res.status(400).json({\r\n status: 'error',\r\n error: 'Invalid request',\r\n });\r\n } else {\r\n const paramId = parseInt(req.params.articleId, 10);\r\n\r\n findOneArticle([paramId])\r\n .then((row) => {\r\n if (row.length === 0){\r\n res.status(400).json({\r\n status: 'error',\r\n error: 'Invalid request',\r\n });\r\n } else {\r\n const {\r\n id, title, article, createdon, authorid,\r\n } = row;\r\n const articleId = id;\r\n const articleTitle = title;\r\n const articleText = article;\r\n const articleCreatedOn = createdon;\r\n const articleAuthorId = authorid;\r\n \r\n findArticleComments([paramId])\r\n .then((rows) => {\r\n const commentArr = [];\r\n rows.forEach((commentRow) => {\r\n const { comment } = commentRow;\r\n const commentText = comment;\r\n const commentAuthorId = commentRow.authorid;\r\n \r\n const values = {\r\n commentId: commentRow.id,\r\n comment: commentText,\r\n authorId: commentAuthorId,\r\n };\r\n commentArr.push(values);\r\n });\r\n res.status(200).json({\r\n status: 'success',\r\n data: {\r\n id: articleId,\r\n createdOn: articleCreatedOn,\r\n title: articleTitle,\r\n article: articleText,\r\n authorId: articleAuthorId,\r\n comments: commentArr,\r\n },\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to get article comments',\r\n });\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to get article',\r\n });\r\n });\r\n }\r\n};\r\n\r\nconst updateArticleController = (req, res, next) => {\r\n const checkFields = !req.params.articleId || !req.body.article || !req.body.title || req.params.articleId === ''\r\n || req.body.article === '' || req.body.title === '';\r\n if (checkFields) {\r\n res.status(400).json({\r\n status: 'error',\r\n error: 'Title and article fields are required',\r\n });\r\n } else {\r\n const paramId = parseInt(req.params.articleId, 10);\r\n findOneArticle([paramId])\r\n .then((row) => {\r\n if (row.length === 0) {\r\n res.status(400).json({\r\n status: 'error',\r\n error: 'Article does not exist',\r\n });\r\n } else {\r\n updateArticle([req.body.title, req.body.article, paramId])\r\n .then((row) => {\r\n const {\r\n id, title, article, createdon, authorid,\r\n } = row;\r\n const articleId = id;\r\n const articleTitle = title;\r\n const articleText = article;\r\n const articleCreatedOn = createdon;\r\n \r\n res.status(201).json({\r\n status: 'success',\r\n data: {\r\n id: articleId,\r\n title: articleTitle,\r\n article: articleText,\r\n createdOn: articleCreatedOn,\r\n userId: authorid,\r\n },\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to update article',\r\n });\r\n });\r\n }\r\n })\r\n .catch(() =>{\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to get article',\r\n });\r\n });\r\n }\r\n};\r\n\r\nconst deleteArticleController = (req, res, next) => {\r\n if (!req.params.articleId || req.params.articleId === '') {\r\n res.status(400).json({\r\n status: 'error',\r\n error: 'Invalid request',\r\n });\r\n } else {\r\n const articleId = parseInt(req.params.articleId, 10);\r\n\r\n findOneArticle([articleId])\r\n .then((row) => {\r\n if (row.length === 0) {\r\n res.status(400).json({\r\n status: 'error',\r\n error: 'Invalid request',\r\n });\r\n } else {deleteArticle([articleId])\r\n .then((row) => {\r\n const {\r\n id, title, article, createdon, authorid,\r\n } = row;\r\n \r\n const articleTitle = title;\r\n const articleText = article;\r\n const articleCreatedOn = createdon;\r\n const userId = authorid;\r\n \r\n res.status(200).json({\r\n status: 'success',\r\n data: {\r\n message: 'Article successfully deleted',\r\n Id: id,\r\n title: articleTitle,\r\n article: articleText,\r\n createdOn: articleCreatedOn,\r\n authorId: userId,\r\n },\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to delete article',\r\n });\r\n });}\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to get article',\r\n });\r\n })\r\n }\r\n};\r\n\r\nexport {\r\n createArticleController,\r\n getArticlesController,\r\n getArticleController,\r\n updateArticleController,\r\n deleteArticleController,\r\n};"],"file":"article.js"} \ No newline at end of file diff --git a/build/controllers/comment.js b/build/controllers/comment.js deleted file mode 100644 index 42dc216..0000000 --- a/build/controllers/comment.js +++ /dev/null @@ -1,119 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); - -var _moment = _interopRequireDefault(require("moment")); - -var _comment = _interopRequireDefault(require("../models/comment")); - -var _gif = _interopRequireDefault(require("../models/gif")); - -var _article = _interopRequireDefault(require("../models/article")); - -var findAllComments = _comment["default"].findAllComments, - saveGifComment = _comment["default"].saveGifComment, - saveArticleComment = _comment["default"].saveArticleComment; -var findOneArticle = _article["default"].findOneArticle; -var findOneGif = _gif["default"].findOneGif; - -var createCommentController = function createCommentController(req, res, next) { - var checkFields = !req.body.comment || req.body.comment === ''; - - if (checkFields) { - res.status(400).json({ - status: 'error', - error: 'Invalid request' - }); - } else { - var comment = req.body.comment; - var commentText = comment; - var commentCreatedOn = (0, _moment["default"])().format('YYYY-MM-DD HH:mm:ss'); - var authorId = req.user.sub; - findAllComments().then(function (rows) { - var commentId = Math.max.apply(Math, (0, _toConsumableArray2["default"])(rows.map(function (row) { - return row.id + 1; - })).concat([1])); - - if (req.params.gifId) { - var gifId = parseInt(req.params.gifId, 10); - findOneGif([gifId]).then(function (row) { - var title = row.title; - saveGifComment([commentId, comment, commentCreatedOn, authorId, gifId]).then(function () { - res.status(201).json({ - status: 'success', - data: { - message: 'Comment successfully created', - createdOn: commentCreatedOn, - gifTitle: title, - comment: commentText, - userId: authorId - } - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to save comment' - }); - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to get GIF image' - }); - }); - } else if (req.params.articleId) { - var articleId = parseInt(req.params.articleId, 10); - findOneArticle([articleId]).then(function (row) { - var title = row.title, - article = row.article; - var articleText = article; - saveArticleComment([commentId, comment, commentCreatedOn, authorId, articleId]).then(function () { - res.status(201).json({ - status: 'success', - data: { - message: 'Comment successfully created', - id: commentId, - createdOn: commentCreatedOn, - articleTitle: title, - article: articleText, - comment: commentText, - userId: authorId - } - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to save Article comment' - }); - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to get Article' - }); - }); - } else { - res.status(400).json({ - status: 'error', - Error: 'Invalid request' - }); - } - })["catch"](function () { - res.status(500).json({ - status: 'error', - Error: 'Failed to get comments' - }); - }); - } -}; - -var _default = createCommentController; -exports["default"] = _default; -//# sourceMappingURL=comment.js.map \ No newline at end of file diff --git a/build/controllers/comment.js.map b/build/controllers/comment.js.map deleted file mode 100644 index 02d7bb7..0000000 --- a/build/controllers/comment.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/controllers/comment.js"],"names":["findAllComments","cmnt","saveGifComment","saveArticleComment","findOneArticle","artcl","findOneGif","gf","createCommentController","req","res","next","checkFields","body","comment","status","json","error","commentText","commentCreatedOn","format","authorId","user","sub","then","rows","commentId","Math","max","map","row","id","params","gifId","parseInt","title","data","message","createdOn","gifTitle","userId","articleId","article","articleText","articleTitle","Error"],"mappings":"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","sourcesContent":["import moment from 'moment';\r\nimport cmnt from '../models/comment';\r\nimport gf from '../models/gif';\r\nimport artcl from '../models/article';\r\n\r\nconst { findAllComments, saveGifComment, saveArticleComment } = cmnt;\r\nconst { findOneArticle } = artcl;\r\nconst { findOneGif } = gf;\r\n\r\nconst createCommentController = (req, res, next) => {\r\n const checkFields = !req.body.comment || req.body.comment === '';\r\n\r\n if (checkFields) {\r\n res.status(400).json({\r\n status: 'error',\r\n error: 'Invalid request',\r\n });\r\n } else {\r\n const { comment } = req.body;\r\n const commentText = comment;\r\n const commentCreatedOn = moment().format('YYYY-MM-DD HH:mm:ss');\r\n const authorId = req.user.sub;\r\n findAllComments()\r\n .then((rows) => {\r\n const commentId = Math.max(...rows.map(row => row.id + 1), 1);\r\n\r\n if (req.params.gifId) {\r\n const gifId = parseInt(req.params.gifId, 10);\r\n findOneGif([gifId])\r\n .then((row) => {\r\n const { title } = row;\r\n\r\n saveGifComment([commentId, comment, commentCreatedOn, authorId, gifId])\r\n .then(() => {\r\n res.status(201).json({\r\n status: 'success',\r\n data: {\r\n message: 'Comment successfully created',\r\n createdOn: commentCreatedOn,\r\n gifTitle: title,\r\n comment: commentText,\r\n userId: authorId,\r\n },\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to save comment',\r\n });\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to get GIF image',\r\n });\r\n });\r\n } else if (req.params.articleId) {\r\n const articleId = parseInt(req.params.articleId, 10);\r\n findOneArticle([articleId])\r\n .then((row) => {\r\n const { title, article } = row;\r\n const articleText = article;\r\n\r\n saveArticleComment([commentId, comment, commentCreatedOn, authorId, articleId])\r\n .then(() => {\r\n res.status(201).json({\r\n status: 'success',\r\n data: {\r\n message: 'Comment successfully created',\r\n id: commentId,\r\n createdOn: commentCreatedOn,\r\n articleTitle: title,\r\n article: articleText,\r\n comment: commentText,\r\n userId: authorId,\r\n },\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to save Article comment',\r\n });\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to get Article',\r\n });\r\n });\r\n } else {\r\n res.status(400).json({\r\n status: 'error',\r\n Error: 'Invalid request',\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n Error: 'Failed to get comments',\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport default createCommentController;\r\n"],"file":"comment.js"} \ No newline at end of file diff --git a/build/controllers/feed.js b/build/controllers/feed.js deleted file mode 100644 index 777a589..0000000 --- a/build/controllers/feed.js +++ /dev/null @@ -1,97 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); - -var _gif = _interopRequireDefault(require("../models/gif")); - -var _article = _interopRequireDefault(require("../models/article")); - -var _helper = _interopRequireDefault(require("./helper")); - -var findAllGifs = _gif["default"].findAllGifs; -var findAllArticles = _article["default"].findAllArticles; -var compareDates = _helper["default"].compareDates; - -var getPosts = function getPosts(req, res, next) { - var gifArr = []; - var articleArr = []; - findAllGifs().then(function (gifRows) { - gifRows.forEach(function (row) { - var id = row.id, - title = row.title, - gifurl = row.gifurl, - createdon = row.createdon, - authorid = row.authorid; - var gifId = id; - var gifTitle = title; - var gifCreatedOn = createdon; - var gifAuthorId = authorid; - var values = { - Id: gifId, - createdon: gifCreatedOn, - title: gifTitle, - URL: gifurl, - authorId: gifAuthorId - }; - gifArr.push(values); - }); - findAllArticles().then(function (articleRows) { - articleRows.forEach(function (row) { - var id = row.id, - title = row.title, - article = row.article, - createdon = row.createdon, - authorid = row.authorid; - var articleId = id; - var articleTitle = title; - var articleCreatedOn = createdon; - var articleAuthorId = authorid; - var articleText = article; - var values = { - id: articleId, - createdon: articleCreatedOn, - title: articleTitle, - article: articleText, - authorId: articleAuthorId - }; - articleArr.push(values); - }); - - if (gifArr.length === 0 && articleArr.length === 0) { - res.status(400).json({ - status: 'error', - Error: 'There is no post yet' - }); - } else { - var feedArr = [].concat(gifArr, articleArr); - var sortedArr = feedArr.sort(compareDates('createdon', 'desc')); - var posts = (0, _toConsumableArray2["default"])(sortedArr); - res.status(200).json({ - status: 'success', - data: posts - }); - } - })["catch"](function () { - res.status(500).json({ - status: 'error', - Error: 'Failed to get Articles' - }); - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - Error: 'Failed to get GIF images' - }); - }); -}; - -var _default = getPosts; -exports["default"] = _default; -//# sourceMappingURL=feed.js.map \ No newline at end of file diff --git a/build/controllers/feed.js.map b/build/controllers/feed.js.map deleted file mode 100644 index 87dba97..0000000 --- a/build/controllers/feed.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/controllers/feed.js"],"names":["findAllGifs","gif","findAllArticles","artcl","compareDates","hpr","getPosts","req","res","next","gifArr","articleArr","then","gifRows","forEach","row","id","title","gifurl","createdon","authorid","gifId","gifTitle","gifCreatedOn","gifAuthorId","values","Id","URL","authorId","push","articleRows","article","articleId","articleTitle","articleCreatedOn","articleAuthorId","articleText","length","status","json","Error","feedArr","sortedArr","sort","posts","data"],"mappings":"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","sourcesContent":["import gif from '../models/gif';\r\nimport artcl from '../models/article';\r\nimport hpr from './helper';\r\n\r\nconst { findAllGifs } = gif;\r\nconst { findAllArticles } = artcl;\r\nconst { compareDates } = hpr;\r\n\r\nconst getPosts = (req, res, next) => {\r\n const gifArr = [];\r\n const articleArr = [];\r\n findAllGifs()\r\n .then((gifRows) => {\r\n gifRows.forEach((row) => {\r\n const {\r\n id, title, gifurl, createdon, authorid,\r\n } = row;\r\n const gifId = id;\r\n const gifTitle = title;\r\n const gifCreatedOn = createdon;\r\n const gifAuthorId = authorid;\r\n\r\n const values = {\r\n Id: gifId,\r\n createdon: gifCreatedOn,\r\n title: gifTitle,\r\n URL: gifurl,\r\n authorId: gifAuthorId,\r\n };\r\n gifArr.push(values);\r\n });\r\n\r\n findAllArticles()\r\n .then((articleRows) => {\r\n articleRows.forEach((row) => {\r\n const {\r\n id, title, article, createdon, authorid,\r\n } = row;\r\n const articleId = id;\r\n const articleTitle = title;\r\n const articleCreatedOn = createdon;\r\n const articleAuthorId = authorid;\r\n const articleText = article;\r\n\r\n const values = {\r\n id: articleId,\r\n createdon: articleCreatedOn,\r\n title: articleTitle,\r\n article: articleText,\r\n authorId: articleAuthorId,\r\n };\r\n articleArr.push(values);\r\n });\r\n\r\n if (gifArr.length === 0 && articleArr.length === 0) {\r\n res.status(400).json({\r\n status: 'error',\r\n Error: 'There is no post yet',\r\n });\r\n } else {\r\n const feedArr = [...gifArr, ...articleArr];\r\n const sortedArr = feedArr.sort(compareDates('createdon', 'desc'));\r\n const posts = [...sortedArr];\r\n\r\n res.status(200).json({\r\n status: 'success',\r\n data: posts,\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n Error: 'Failed to get Articles',\r\n });\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n Error: 'Failed to get GIF images',\r\n });\r\n });\r\n};\r\n\r\nexport default getPosts;\r\n"],"file":"feed.js"} \ No newline at end of file diff --git a/build/controllers/gif.js b/build/controllers/gif.js deleted file mode 100644 index a229080..0000000 --- a/build/controllers/gif.js +++ /dev/null @@ -1,239 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.deleteGifController = exports.getGifController = exports.getGifsController = exports.createGifController = void 0; - -var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); - -var _moment = _interopRequireDefault(require("moment")); - -var _gif = _interopRequireDefault(require("../models/gif")); - -var _comment = _interopRequireDefault(require("../models/comment")); - -var _cloudinaryConfig = _interopRequireDefault(require("../config/cloudinaryConfig")); - -var findOneGif = _gif["default"].findOneGif, - findAllGifs = _gif["default"].findAllGifs, - saveGif = _gif["default"].saveGif, - deleteGif = _gif["default"].deleteGif; -var findGifComments = _comment["default"].findGifComments; - -var createGifController = function createGifController(req, res, next) { - var title = req.body.title; - - if (title === '' || !title) { - res.status(400).json({ - status: 'error', - Error: 'The title is required' - }); - } else if (!req.file || req.file.url === '') { - res.status(400).json({ - status: 'error', - Error: 'A GIF image is required' - }); - } else { - var URL = req.file.url; - var gifPublicId = req.file.public_id; - var createdOn = (0, _moment["default"])().format('YYYY-MM-DD HH:mm:ss'); - var authorId = req.user.sub; - findAllGifs().then(function (rows) { - var gifId = Math.max.apply(Math, (0, _toConsumableArray2["default"])(rows.map(function (row) { - return row.id + 1; - })).concat([1])); - var values = [gifId, title, URL, gifPublicId, createdOn, authorId]; - saveGif(values).then(function () { - var gifCreatedOn = createdOn; - var gifTitle = title; - var gifAuthorId = authorId; - res.status(201).json({ - status: 'success', - data: { - message: 'Gif image successfully posted', - id: gifId, - createdOn: gifCreatedOn, - title: gifTitle, - imageURL: URL, - PublicId: gifPublicId, - authorId: gifAuthorId - } - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to save GIF image' - }); - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to get GIF image rows' - }); - }); - } -}; - -exports.createGifController = createGifController; - -var getGifsController = function getGifsController(req, res, next) { - findAllGifs().then(function (rows) { - if (rows.length === 0) { - res.status(400).json({ - status: 'error', - Error: 'There is no GIF post yet' - }); - } - - var gifArr = []; - rows.forEach(function (g) { - var id = g.id, - title = g.title, - gifurl = g.gifurl, - gifpublicid = g.gifpublicid, - createdon = g.createdon, - authorid = g.authorid; - var gifCreatedOn = createdon; - var gifTitle = title; - var gifAuthorId = authorid; - var values = { - gifId: id, - createdOn: gifCreatedOn, - title: gifTitle, - imageURL: gifurl, - PublicId: gifpublicid, - authorId: gifAuthorId - }; - gifArr.push(values); - }); - res.status(200).json({ - status: 'success', - data: gifArr - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to get GIF image rows' - }); - }); -}; - -exports.getGifsController = getGifsController; - -var getGifController = function getGifController(req, res, next) { - if (!req.params.gifId || req.params.gifId === '' || typeof parseInt(req.params.gifId, 10) !== 'number') { - res.status(400).json({ - status: 'error', - Error: 'Invalid request' - }); - } else { - var paramId = parseInt(req.params.gifId, 10); - findOneGif([paramId]).then(function (row) { - var id = row.id, - title = row.title, - gifurl = row.gifurl, - gifpublicid = row.gifpublicid, - createdon = row.createdon, - authorid = row.authorid; - var gifId = id; - var gifCreatedOn = createdon; - var gifTitle = title; - var gifAuthorId = authorid; - findGifComments([paramId]).then(function (rows) { - var commentArr = []; - rows.forEach(function (commentRow) { - var comment = commentRow.comment; - var gifComment = comment; - var gifCommentAuthorId = commentRow.authorid; - var values = { - commentId: commentRow.id, - comment: gifComment, - CommentAuthorId: gifCommentAuthorId - }; - commentArr.push(values); - }); - res.status(200).json({ - status: 'success', - data: { - Id: gifId, - createdOn: gifCreatedOn, - title: gifTitle, - imageURL: gifurl, - PublicId: gifpublicid, - authorId: gifAuthorId, - comments: commentArr - } - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - error: 'Failed to get GIF comment rows' - }); - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - Error: 'Failed to get gif row' - }); - }); - } -}; - -exports.getGifController = getGifController; - -var deleteGifController = function deleteGifController(req, res, next) { - if (!req.params.gifId || req.params.gifId === '' || typeof parseInt(req.params.gifId, 10) !== 'number') { - res.status(400).json({ - status: 'error', - Error: 'Invalid request' - }); - } else { - var idParam = parseInt(req.params.gifId, 10); - findOneGif([idParam]).then(function () { - deleteGif([idParam]).then(function (row) { - var id = row.id, - title = row.title, - gifurl = row.gifurl, - gifpublicid = row.gifpublicid, - createdon = row.createdon, - authorid = row.authorid; - var gifCreatedOn = createdon; - var gifTitle = title; - var gifAuthorId = authorid; - - _cloudinaryConfig["default"].v2.uploader.destroy(gifpublicid).then(function () { - res.status(200).json({ - status: 'success', - data: { - message: 'GIF post successfully deleted', - gifId: id, - createdOn: gifCreatedOn, - title: gifTitle, - imageURL: gifurl, - PublicId: gifpublicid, - authorId: gifAuthorId - } - }); - })["catch"](function (err) { - throw err; - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - Error: 'Failed to delete GIF image post' - }); - }); - })["catch"](function () { - res.status(500).json({ - status: 'error', - Error: 'Failed to get GIF image post' - }); - }); - } -}; - -exports.deleteGifController = deleteGifController; -//# sourceMappingURL=gif.js.map \ No newline at end of file diff --git a/build/controllers/gif.js.map b/build/controllers/gif.js.map deleted file mode 100644 index 8ae8495..0000000 --- a/build/controllers/gif.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/controllers/gif.js"],"names":["findOneGif","gf","findAllGifs","saveGif","deleteGif","findGifComments","comnt","createGifController","req","res","next","title","body","status","json","Error","file","url","URL","gifPublicId","public_id","createdOn","format","authorId","user","sub","then","rows","gifId","Math","max","map","row","id","values","gifCreatedOn","gifTitle","gifAuthorId","data","message","imageURL","PublicId","error","getGifsController","length","gifArr","forEach","g","gifurl","gifpublicid","createdon","authorid","push","getGifController","params","parseInt","paramId","commentArr","commentRow","comment","gifComment","gifCommentAuthorId","commentId","CommentAuthorId","Id","comments","deleteGifController","idParam","cld","v2","uploader","destroy","err"],"mappings":"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","sourcesContent":["import moment from 'moment';\r\nimport gf from '../models/gif';\r\nimport comnt from '../models/comment';\r\nimport cld from '../config/cloudinaryConfig';\r\n\r\nconst {\r\n findOneGif, findAllGifs, saveGif, deleteGif,\r\n} = gf;\r\nconst { findGifComments } = comnt;\r\n\r\nconst createGifController = (req, res, next) => {\r\n const {\r\n title,\r\n } = req.body;\r\n\r\n if (title === '' || !title) {\r\n res.status(400).json({\r\n status: 'error',\r\n Error: 'The title is required',\r\n });\r\n } else if (!req.file || req.file.url === '') {\r\n res.status(400).json({\r\n status: 'error',\r\n Error: 'A GIF image is required',\r\n });\r\n } else {\r\n const URL = req.file.url;\r\n const gifPublicId = req.file.public_id;\r\n const createdOn = moment().format('YYYY-MM-DD HH:mm:ss');\r\n const authorId = req.user.sub;\r\n\r\n findAllGifs()\r\n .then((rows) => {\r\n const gifId = Math.max(...rows.map(row => row.id + 1), 1);\r\n\r\n const values = [gifId, title, URL, gifPublicId, createdOn, authorId];\r\n\r\n saveGif(values)\r\n .then(() => {\r\n const gifCreatedOn = createdOn;\r\n const gifTitle = title;\r\n const gifAuthorId = authorId;\r\n res.status(201).json({\r\n status: 'success',\r\n data: {\r\n message: 'Gif image successfully posted',\r\n id: gifId,\r\n createdOn: gifCreatedOn,\r\n title: gifTitle,\r\n imageURL: URL,\r\n PublicId: gifPublicId,\r\n authorId: gifAuthorId,\r\n },\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to save GIF image',\r\n });\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to get GIF image rows',\r\n });\r\n });\r\n }\r\n};\r\n\r\nconst getGifsController = (req, res, next) => {\r\n findAllGifs()\r\n .then((rows) => {\r\n if (rows.length === 0) {\r\n res.status(400).json({\r\n status: 'error',\r\n Error: 'There is no GIF post yet',\r\n });\r\n }\r\n const gifArr = [];\r\n rows.forEach((g) => {\r\n const {\r\n id, title, gifurl, gifpublicid, createdon, authorid,\r\n } = g;\r\n const gifCreatedOn = createdon;\r\n const gifTitle = title;\r\n const gifAuthorId = authorid;\r\n const values = {\r\n gifId: id,\r\n createdOn: gifCreatedOn,\r\n title: gifTitle,\r\n imageURL: gifurl,\r\n PublicId: gifpublicid,\r\n authorId: gifAuthorId,\r\n };\r\n gifArr.push(values);\r\n });\r\n res.status(200).json({\r\n status: 'success',\r\n data: gifArr,\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to get GIF image rows',\r\n });\r\n });\r\n};\r\n\r\nconst getGifController = (req, res, next) => {\r\n if (!req.params.gifId || req.params.gifId === '' || typeof (parseInt(req.params.gifId, 10)) !== 'number') {\r\n res.status(400).json({\r\n status: 'error',\r\n Error: 'Invalid request',\r\n });\r\n } else {\r\n const paramId = parseInt(req.params.gifId, 10);\r\n\r\n findOneGif([paramId])\r\n .then((row) => {\r\n const {\r\n id, title, gifurl, gifpublicid, createdon, authorid,\r\n } = row;\r\n const gifId = id;\r\n const gifCreatedOn = createdon;\r\n const gifTitle = title;\r\n const gifAuthorId = authorid;\r\n\r\n findGifComments([paramId])\r\n .then((rows) => {\r\n const commentArr = [];\r\n\r\n rows.forEach((commentRow) => {\r\n const { comment } = commentRow;\r\n const gifComment = comment;\r\n const gifCommentAuthorId = commentRow.authorid;\r\n const values = {\r\n commentId: commentRow.id,\r\n comment: gifComment,\r\n CommentAuthorId: gifCommentAuthorId,\r\n };\r\n commentArr.push(values);\r\n });\r\n res.status(200).json({\r\n status: 'success',\r\n data: {\r\n Id: gifId,\r\n createdOn: gifCreatedOn,\r\n title: gifTitle,\r\n imageURL: gifurl,\r\n PublicId: gifpublicid,\r\n authorId: gifAuthorId,\r\n comments: commentArr,\r\n },\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to get GIF comment rows',\r\n });\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n Error: 'Failed to get gif row',\r\n });\r\n });\r\n }\r\n};\r\n\r\nconst deleteGifController = (req, res, next) => {\r\n if (!req.params.gifId || req.params.gifId === '' || typeof (parseInt(req.params.gifId, 10)) !== 'number') {\r\n res.status(400).json({\r\n status: 'error',\r\n Error: 'Invalid request',\r\n });\r\n } else {\r\n const idParam = parseInt(req.params.gifId, 10);\r\n findOneGif([idParam])\r\n .then(() => {\r\n deleteGif([idParam])\r\n .then((row) => {\r\n const {\r\n id, title, gifurl, gifpublicid, createdon, authorid,\r\n } = row;\r\n const gifCreatedOn = createdon;\r\n const gifTitle = title;\r\n const gifAuthorId = authorid;\r\n \r\n cld.v2.uploader.destroy(gifpublicid)\r\n .then(() => {\r\n res.status(200).json({\r\n status: 'success',\r\n data: {\r\n message: 'GIF post successfully deleted',\r\n gifId: id,\r\n createdOn: gifCreatedOn,\r\n title: gifTitle,\r\n imageURL: gifurl,\r\n PublicId: gifpublicid,\r\n authorId: gifAuthorId,\r\n },\r\n });\r\n })\r\n .catch((err) => {\r\n throw err;\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n Error: 'Failed to delete GIF image post',\r\n });\r\n });\r\n })\r\n .catch(() => {\r\n res.status(500).json({\r\n status: 'error',\r\n Error: 'Failed to get GIF image post',\r\n });\r\n })\r\n }\r\n};\r\n\r\nexport {\r\n createGifController, getGifsController, getGifController, deleteGifController,\r\n};"],"file":"gif.js"} \ No newline at end of file diff --git a/build/controllers/helper.js b/build/controllers/helper.js deleted file mode 100644 index 5896525..0000000 --- a/build/controllers/helper.js +++ /dev/null @@ -1,85 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _bcrypt = _interopRequireDefault(require("bcrypt")); - -var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken")); - -var _dotenv = _interopRequireDefault(require("dotenv")); - -var _moment = _interopRequireDefault(require("moment")); - -_dotenv["default"].config(); - -var Helper = { - /** - * Hash Password Method - * @param {string} password - * @returns {string} returns hashed password - */ - hashPassword: function hashPassword(password) { - return _bcrypt["default"].hashSync(password, _bcrypt["default"].genSaltSync(10)); - }, - - /** - * comparePassword - * @param {string} hashPassword - * @param {string} password - * @returns {Boolean} return True or False - */ - comparePassword: function comparePassword(password, hashedPassword) { - return _bcrypt["default"].compareSync(password, hashedPassword); - }, - - /** - * isValidEmail helper method - * @param {string} email - * @returns {Boolean} True or False - */ - isValidEmail: function isValidEmail(email) { - return /\S+@\S+\.\S+/.test(email); - }, - - /** - * Gnerate Token - * @param {string} id - * @returns {string} token - */ - generateToken: function generateToken(userObj) { - var token = _jsonwebtoken["default"].sign(userObj, process.env.SECRET, { - expiresIn: '7d' - }); - - return token; - }, - compareDates: function compareDates(key) { - var order = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'asc'; - return function (a, b) { - var hasKeyProperty = Object.prototype.hasOwnProperty; - - if (!hasKeyProperty.call(a, key) || !hasKeyProperty.call(b, key)) { - return 0; - } - - var comparison = 0; - var varB = (0, _moment["default"])(b[key]).format('YYYY-MM-DD HH:mm:ss'); - - if ((0, _moment["default"])(a[key]).isAfter(varB)) { - comparison = 1; - } else if ((0, _moment["default"])(a[key]).isBefore(varB)) { - comparison = -1; - } - - return order === 'desc' ? comparison * -1 : comparison; - }; - } -}; -var _default = Helper; -exports["default"] = _default; -//# sourceMappingURL=helper.js.map \ No newline at end of file diff --git a/build/controllers/helper.js.map b/build/controllers/helper.js.map deleted file mode 100644 index ee4a784..0000000 --- a/build/controllers/helper.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/controllers/helper.js"],"names":["dotenv","config","Helper","hashPassword","password","bcrypt","hashSync","genSaltSync","comparePassword","hashedPassword","compareSync","isValidEmail","email","test","generateToken","userObj","token","jwt","sign","process","env","SECRET","expiresIn","compareDates","key","order","a","b","hasKeyProperty","Object","prototype","hasOwnProperty","call","comparison","varB","format","isAfter","isBefore"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEAA,mBAAOC,MAAP;;AAEA,IAAMC,MAAM,GAAG;AACb;;;;;AAKAC,EAAAA,YANa,wBAMAC,QANA,EAMU;AACrB,WAAOC,mBAAOC,QAAP,CAAgBF,QAAhB,EAA0BC,mBAAOE,WAAP,CAAmB,EAAnB,CAA1B,CAAP;AACD,GARY;;AASb;;;;;;AAMAC,EAAAA,eAfa,2BAeGJ,QAfH,EAeaK,cAfb,EAe6B;AACxC,WAAOJ,mBAAOK,WAAP,CAAmBN,QAAnB,EAA6BK,cAA7B,CAAP;AACD,GAjBY;;AAkBb;;;;;AAKAE,EAAAA,YAvBa,wBAuBAC,KAvBA,EAuBO;AAClB,WAAO,eAAeC,IAAf,CAAoBD,KAApB,CAAP;AACD,GAzBY;;AA0Bb;;;;;AAKAE,EAAAA,aA/Ba,yBA+BCC,OA/BD,EA+BU;AACrB,QAAMC,KAAK,GAAGC,yBAAIC,IAAJ,CAASH,OAAT,EAAkBI,OAAO,CAACC,GAAR,CAAYC,MAA9B,EAAsC;AAAEC,MAAAA,SAAS,EAAE;AAAb,KAAtC,CAAd;;AACA,WAAON,KAAP;AACD,GAlCY;AAoCbO,EAAAA,YApCa,wBAoCAC,GApCA,EAoCoB;AAAA,QAAfC,KAAe,uEAAP,KAAO;AAC/B,WAAO,UAACC,CAAD,EAAIC,CAAJ,EAAU;AACf,UAAMC,cAAc,GAAGC,MAAM,CAACC,SAAP,CAAiBC,cAAxC;;AACA,UAAI,CAACH,cAAc,CAACI,IAAf,CAAoBN,CAApB,EAAuBF,GAAvB,CAAD,IAAgC,CAACI,cAAc,CAACI,IAAf,CAAoBL,CAApB,EAAuBH,GAAvB,CAArC,EAAkE;AAChE,eAAO,CAAP;AACD;;AAED,UAAIS,UAAU,GAAG,CAAjB;AAEA,UAAMC,IAAI,GAAG,wBAAOP,CAAC,CAACH,GAAD,CAAR,EAAeW,MAAf,CAAsB,qBAAtB,CAAb;;AAEA,UAAI,wBAAOT,CAAC,CAACF,GAAD,CAAR,EAAeY,OAAf,CAAuBF,IAAvB,CAAJ,EAAkC;AAChCD,QAAAA,UAAU,GAAG,CAAb;AACD,OAFD,MAEO,IAAI,wBAAOP,CAAC,CAACF,GAAD,CAAR,EAAea,QAAf,CAAwBH,IAAxB,CAAJ,EAAmC;AACxCD,QAAAA,UAAU,GAAG,CAAC,CAAd;AACD;;AAED,aACGR,KAAK,KAAK,MAAX,GACKQ,UAAU,GAAG,CAAC,CADnB,GACwBA,UAF1B;AAID,KApBD;AAqBD;AA1DY,CAAf;eA6De/B,M","sourcesContent":["import bcrypt from 'bcrypt';\r\nimport jwt from 'jsonwebtoken';\r\nimport dotenv from 'dotenv';\r\nimport moment from 'moment';\r\n\r\ndotenv.config();\r\n\r\nconst Helper = {\r\n /**\r\n * Hash Password Method\r\n * @param {string} password\r\n * @returns {string} returns hashed password\r\n */\r\n hashPassword(password) {\r\n return bcrypt.hashSync(password, bcrypt.genSaltSync(10));\r\n },\r\n /**\r\n * comparePassword\r\n * @param {string} hashPassword\r\n * @param {string} password\r\n * @returns {Boolean} return True or False\r\n */\r\n comparePassword(password, hashedPassword) {\r\n return bcrypt.compareSync(password, hashedPassword);\r\n },\r\n /**\r\n * isValidEmail helper method\r\n * @param {string} email\r\n * @returns {Boolean} True or False\r\n */\r\n isValidEmail(email) {\r\n return /\\S+@\\S+\\.\\S+/.test(email);\r\n },\r\n /**\r\n * Gnerate Token\r\n * @param {string} id\r\n * @returns {string} token\r\n */\r\n generateToken(userObj) {\r\n const token = jwt.sign(userObj, process.env.SECRET, { expiresIn: '7d' });\r\n return token;\r\n },\r\n\r\n compareDates(key, order = 'asc') {\r\n return (a, b) => {\r\n const hasKeyProperty = Object.prototype.hasOwnProperty;\r\n if (!hasKeyProperty.call(a, key) || !hasKeyProperty.call(b, key)) {\r\n return 0;\r\n }\r\n\r\n let comparison = 0;\r\n\r\n const varB = moment(b[key]).format('YYYY-MM-DD HH:mm:ss');\r\n\r\n if (moment(a[key]).isAfter(varB)) {\r\n comparison = 1;\r\n } else if (moment(a[key]).isBefore(varB)) {\r\n comparison = -1;\r\n }\r\n\r\n return (\r\n (order === 'desc')\r\n ? (comparison * -1) : comparison\r\n );\r\n };\r\n },\r\n};\r\n\r\nexport default Helper;\r\n"],"file":"helper.js"} \ No newline at end of file diff --git a/build/controllers/user.js b/build/controllers/user.js deleted file mode 100644 index 2a6421e..0000000 --- a/build/controllers/user.js +++ /dev/null @@ -1,118 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.login = exports.signUp = void 0; - -var _v = _interopRequireDefault(require("uuid/v1")); - -var _user = _interopRequireDefault(require("../models/user")); - -var _helper = _interopRequireDefault(require("./helper")); - -var findOne = _user["default"].findOne, - save = _user["default"].save; -var hashPassword = _helper["default"].hashPassword, - comparePassword = _helper["default"].comparePassword, - isValidEmail = _helper["default"].isValidEmail, - generateToken = _helper["default"].generateToken; - -var signUp = function signUp(req, res, next) { - var _req$body = req.body, - firstName = _req$body.firstName, - lastName = _req$body.lastName, - email = _req$body.email, - password = _req$body.password, - gender = _req$body.gender, - jobRole = _req$body.jobRole, - department = _req$body.department, - address = _req$body.address; - var checkEmail = isValidEmail(email.trim()); - var checkFields = firstName && lastName && email && password && gender && jobRole && department && address; - - if (!checkFields) { - res.status(400).json({ - status: 'error', - Error: 'All fields are required' - }); - } else if (!checkEmail) { - res.status(400).json({ - status: 'error', - Error: 'Please provide a valid email' - }); - } else { - var ID = (0, _v["default"])(); - var storedEmail = email.trim().toLowerCase(); - var hashedPassword = hashPassword(password.trim()); - var values = [ID, firstName.trim(), lastName.trim(), storedEmail, hashedPassword, gender.trim(), jobRole.trim().toUpperCase(), department.trim(), address.trim()]; - save(values).then(function () { - res.status(201).json({ - status: 'success', - data: { - message: 'User account successfully created', - UserID: ID - } - }); - })["catch"](function (err) { - res.status(500).json({ - status: 'error', - error: 'Failed to save user' - }); - }); - } -}; - -exports.signUp = signUp; - -var login = function login(req, res, next) { - var _req$body2 = req.body, - email = _req$body2.email, - password = _req$body2.password; - - if (!email || !password || email === '' || password === '') { - res.status(400).json({ - status: 'error', - error: 'Email and password fields are required' - }); - } else { - var cleanedEmail = email.trim(); - findOne([cleanedEmail]).then(function (row) { - var id = row.id, - hashedpassword = row.hashedpassword, - jobrole = row.jobrole; - var verifyPwd = comparePassword(password.trim(), hashedpassword); - - if (!verifyPwd) { - res.status(400).json({ - status: 'error', - error: 'Incorrect password' - }); - } else { - var uJobrole = jobrole.toUpperCase(); - var userObj = { - sub: id, - role: uJobrole - }; - var tokenValue = generateToken(userObj); - res.status(200).json({ - status: 'success', - data: { - token: tokenValue, - UserId: id - } - }); - } - })["catch"](function () { - res.status(400).json({ - status: 'error', - error: 'Failed to get user' - }); - }); - } -}; - -exports.login = login; -//# sourceMappingURL=user.js.map \ No newline at end of file diff --git a/build/controllers/user.js.map b/build/controllers/user.js.map deleted file mode 100644 index 43632ed..0000000 --- a/build/controllers/user.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/controllers/user.js"],"names":["findOne","user","save","hashPassword","helper","comparePassword","isValidEmail","generateToken","signUp","req","res","next","body","firstName","lastName","email","password","gender","jobRole","department","address","checkEmail","trim","checkFields","status","json","Error","ID","storedEmail","toLowerCase","hashedPassword","values","toUpperCase","then","data","message","UserID","err","error","login","cleanedEmail","row","id","hashedpassword","jobrole","verifyPwd","uJobrole","userObj","sub","role","tokenValue","token","UserId"],"mappings":"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","sourcesContent":["import uuidv1 from 'uuid/v1';\r\nimport user from '../models/user';\r\nimport helper from './helper';\r\n\r\nconst { findOne, save } = user;\r\nconst {\r\n hashPassword, comparePassword, isValidEmail, generateToken,\r\n} = helper;\r\n\r\nconst signUp = (req, res, next) => {\r\n const {\r\n firstName, lastName, email, password, gender, jobRole, department, address,\r\n } = req.body;\r\n\r\n const checkEmail = isValidEmail(email.trim());\r\n const checkFields = (firstName && lastName && email && password\r\n && gender && jobRole && department && address\r\n );\r\n\r\n if (!checkFields) {\r\n res.status(400).json({\r\n status: 'error',\r\n Error: 'All fields are required',\r\n });\r\n } else if (!checkEmail) {\r\n res.status(400).json({\r\n status: 'error',\r\n Error: 'Please provide a valid email',\r\n });\r\n } else {\r\n const ID = uuidv1();\r\n const storedEmail = email.trim().toLowerCase();\r\n const hashedPassword = hashPassword(password.trim());\r\n const values = [\r\n ID, firstName.trim(), lastName.trim(), storedEmail, hashedPassword,\r\n gender.trim(), jobRole.trim().toUpperCase(), department.trim(), address.trim(),\r\n ];\r\n\r\n save(values)\r\n .then(() => {\r\n res.status(201).json({\r\n status: 'success',\r\n data: {\r\n message: 'User account successfully created',\r\n UserID: ID,\r\n },\r\n });\r\n })\r\n .catch((err) => {\r\n res.status(500).json({\r\n status: 'error',\r\n error: 'Failed to save user',\r\n });\r\n });\r\n }\r\n};\r\n\r\nconst login = (req, res, next) => {\r\n const { email, password } = req.body;\r\n\r\n if (!email || !password || email === '' || password === '') {\r\n res.status(400).json({\r\n status: 'error',\r\n error: 'Email and password fields are required',\r\n });\r\n } else {\r\n const cleanedEmail = email.trim();\r\n findOne([cleanedEmail])\r\n .then((row) => {\r\n const {\r\n id, hashedpassword, jobrole,\r\n } = row;\r\n const verifyPwd = comparePassword(password.trim(), hashedpassword);\r\n if (!verifyPwd) {\r\n res.status(400).json({\r\n status: 'error',\r\n error: 'Incorrect password',\r\n });\r\n } else {\r\n const uJobrole = jobrole.toUpperCase();\r\n const userObj = {\r\n sub: id,\r\n role: uJobrole,\r\n };\r\n const tokenValue = generateToken(userObj);\r\n res.status(200).json({\r\n status: 'success',\r\n data: {\r\n token: tokenValue,\r\n UserId: id,\r\n },\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n res.status(400).json({\r\n status: 'error',\r\n error: 'Failed to get user',\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport { signUp, login };\r\n"],"file":"user.js"} \ No newline at end of file diff --git a/build/middleware/auth.js b/build/middleware/auth.js deleted file mode 100644 index 007f65c..0000000 --- a/build/middleware/auth.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _expressJwt = _interopRequireDefault(require("express-jwt")); - -var authorize = function authorize(roles) { - return [(0, _expressJwt["default"])({ - secret: process.env.SECRET - }), function (req, res, next) { - var case1 = roles.length && roles.includes(req.user.role); - var case2 = !roles.length && !roles.includes(req.user.role); - - if (case1 || case2) { - return next(); - } // user's role is not authorized - - - return res.status(401).json({ - status: 'Error', - message: 'Unauthorized' - }); - }]; -}; - -var _default = authorize; -exports["default"] = _default; -//# sourceMappingURL=auth.js.map \ No newline at end of file diff --git a/build/middleware/auth.js.map b/build/middleware/auth.js.map deleted file mode 100644 index b9efa09..0000000 --- a/build/middleware/auth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/middleware/auth.js"],"names":["authorize","roles","secret","process","env","SECRET","req","res","next","case1","length","includes","user","role","case2","status","json","message"],"mappings":";;;;;;;;;AAAA;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAACC,KAAD;AAAA,SAAW,CAC3B,4BAAW;AAAEC,IAAAA,MAAM,EAAEC,OAAO,CAACC,GAAR,CAAYC;AAAtB,GAAX,CAD2B,EAG3B,UAACC,GAAD,EAAMC,GAAN,EAAWC,IAAX,EAAoB;AAClB,QAAMC,KAAK,GAAGR,KAAK,CAACS,MAAN,IAAgBT,KAAK,CAACU,QAAN,CAAeL,GAAG,CAACM,IAAJ,CAASC,IAAxB,CAA9B;AACA,QAAMC,KAAK,GAAG,CAACb,KAAK,CAACS,MAAP,IAAiB,CAACT,KAAK,CAACU,QAAN,CAAeL,GAAG,CAACM,IAAJ,CAASC,IAAxB,CAAhC;;AACA,QAAIJ,KAAK,IAAIK,KAAb,EAAoB;AAClB,aAAON,IAAI,EAAX;AACD,KALiB,CAMlB;;;AACA,WAAOD,GAAG,CAACQ,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB;AAC1BD,MAAAA,MAAM,EAAE,OADkB;AAE1BE,MAAAA,OAAO,EAAE;AAFiB,KAArB,CAAP;AAID,GAd0B,CAAX;AAAA,CAAlB;;eAiBejB,S","sourcesContent":["import expressJwt from 'express-jwt';\r\n\r\nconst authorize = (roles) => [\r\n expressJwt({ secret: process.env.SECRET }),\r\n\r\n (req, res, next) => {\r\n const case1 = roles.length && roles.includes(req.user.role);\r\n const case2 = !roles.length && !roles.includes(req.user.role);\r\n if (case1 || case2) {\r\n return next();\r\n }\r\n // user's role is not authorized\r\n return res.status(401).json({\r\n status: 'Error',\r\n message: 'Unauthorized',\r\n });\r\n },\r\n];\r\n\r\nexport default authorize;\r\n"],"file":"auth.js"} \ No newline at end of file diff --git a/build/middleware/multerConfig.js b/build/middleware/multerConfig.js deleted file mode 100644 index 25ee295..0000000 --- a/build/middleware/multerConfig.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _multer = _interopRequireDefault(require("multer")); - -var _multerStorageCloudinary = _interopRequireDefault(require("multer-storage-cloudinary")); - -var _cloudinaryConfig = _interopRequireDefault(require("../config/cloudinaryConfig")); - -var storage = (0, _multerStorageCloudinary["default"])({ - cloudinary: _cloudinaryConfig["default"], - folder: 'teamwork-api-gifs', - allowedFormats: ['gif'] -}); -var multerUploads = (0, _multer["default"])({ - storage: storage -}).single('image'); -var _default = multerUploads; -exports["default"] = _default; -//# sourceMappingURL=multerConfig.js.map \ No newline at end of file diff --git a/build/middleware/multerConfig.js.map b/build/middleware/multerConfig.js.map deleted file mode 100644 index 4662144..0000000 --- a/build/middleware/multerConfig.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/middleware/multerConfig.js"],"names":["storage","cloudinary","cld","folder","allowedFormats","multerUploads","single"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,OAAO,GAAG,yCACd;AACEC,EAAAA,UAAU,EAAEC,4BADd;AAEEC,EAAAA,MAAM,EAAE,mBAFV;AAGEC,EAAAA,cAAc,EAAE,CAAC,KAAD;AAHlB,CADc,CAAhB;AAOA,IAAMC,aAAa,GAAG,wBAAO;AAAEL,EAAAA,OAAO,EAAPA;AAAF,CAAP,EAAoBM,MAApB,CAA2B,OAA3B,CAAtB;eAEeD,a","sourcesContent":["import multer from 'multer';\r\nimport cloudinaryStorage from 'multer-storage-cloudinary';\r\nimport cld from '../config/cloudinaryConfig';\r\n\r\nconst storage = cloudinaryStorage(\r\n {\r\n cloudinary: cld,\r\n folder: 'teamwork-api-gifs',\r\n allowedFormats: ['gif'],\r\n },\r\n);\r\nconst multerUploads = multer({ storage }).single('image');\r\n\r\nexport default multerUploads;\r\n"],"file":"multerConfig.js"} \ No newline at end of file diff --git a/build/models/article.js b/build/models/article.js deleted file mode 100644 index ee0bcb8..0000000 --- a/build/models/article.js +++ /dev/null @@ -1,71 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _index = _interopRequireDefault(require("./index")); - -var query = _index["default"].query; -var Article = { - findOneArticle: function findOneArticle(values) { - var queryText = 'SELECT * FROM articles WHERE id=$1'; - var row = query(queryText, values).then(function (res) { - return res.rows[0]; - })["catch"](function (err) { - throw err; - }); - return row; - }, - findAllArticles: function findAllArticles() { - var queryText = 'SELECT * FROM articles'; - var rows = query(queryText, []).then(function (res) { - return res.rows; - })["catch"](function (err) { - throw err; - }); - return rows; - }, - updateArticle: function updateArticle(values) { - var queryText = 'UPDATE articles SET title=$1, article=$2 WHERE ID=$3 RETURNING *'; - var row = query(queryText, values).then(function (res) { - return res.rows[0]; - })["catch"](function (err) { - throw err; - }); - return row; - }, - saveArticle: function saveArticle(values) { - var queryText = "INSERT INTO\n articles (ID, title, article, createdOn, authorId)\n VALUES ($1, $2, $3, $4, $5) RETURNING *"; - var row = query(queryText, values).then(function (res) { - return res.rows[0]; - })["catch"](function (err) { - throw err; - }); - return row; - }, - deleteArticle: function deleteArticle(value) { - var queryText = 'DELETE FROM articles WHERE ID=$1 RETURNING *'; - var row = query(queryText, value).then(function (res) { - return res.rows[0]; - })["catch"](function (err) { - throw err; - }); - return row; - }, - deleteAllArticles: function deleteAllArticles() { - var queryText = 'DELETE FROM articles RETURNING *'; - var rows = query(queryText, []).then(function (res) { - return res.rows; - })["catch"](function (err) { - throw err; - }); - return rows; - } -}; -var _default = Article; -exports["default"] = _default; -//# sourceMappingURL=article.js.map \ No newline at end of file diff --git a/build/models/article.js.map b/build/models/article.js.map deleted file mode 100644 index 7b1d51f..0000000 --- a/build/models/article.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/models/article.js"],"names":["query","db","Article","findOneArticle","values","queryText","row","then","res","rows","err","findAllArticles","updateArticle","saveArticle","deleteArticle","value","deleteAllArticles"],"mappings":";;;;;;;;;AAAA;;IAEQA,K,GAAUC,iB,CAAVD,K;AAER,IAAME,OAAO,GAAG;AACdC,EAAAA,cADc,0BACCC,MADD,EACS;AACrB,QAAMC,SAAS,GAAG,oCAAlB;AACA,QAAMC,GAAG,GAAGN,KAAK,CAACK,SAAD,EAAYD,MAAZ,CAAL,CACTG,IADS,CACJ,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAJ,CAAS,CAAT,CAAT;AAAA,KADI,WAEH,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJS,CAAZ;AAKA,WAAOJ,GAAP;AACD,GATa;AAWdK,EAAAA,eAXc,6BAWI;AAChB,QAAMN,SAAS,GAAG,wBAAlB;AACA,QAAMI,IAAI,GAAGT,KAAK,CAACK,SAAD,EAAY,EAAZ,CAAL,CACVE,IADU,CACL,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAb;AAAA,KADK,WAEJ,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJU,CAAb;AAKA,WAAOD,IAAP;AACD,GAnBa;AAqBdG,EAAAA,aArBc,yBAqBAR,MArBA,EAqBQ;AACpB,QAAMC,SAAS,GAAG,kEAAlB;AACA,QAAMC,GAAG,GAAGN,KAAK,CAACK,SAAD,EAAYD,MAAZ,CAAL,CACTG,IADS,CACJ,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAJ,CAAS,CAAT,CAAT;AAAA,KADI,WAEH,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJS,CAAZ;AAKA,WAAOJ,GAAP;AACD,GA7Ba;AA+BdO,EAAAA,WA/Bc,uBA+BFT,MA/BE,EA+BM;AAClB,QAAMC,SAAS,yHAAf;AAGA,QAAMC,GAAG,GAAGN,KAAK,CAACK,SAAD,EAAYD,MAAZ,CAAL,CACTG,IADS,CACJ,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAJ,CAAS,CAAT,CAAT;AAAA,KADI,WAEH,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJS,CAAZ;AAKA,WAAOJ,GAAP;AACD,GAzCa;AA2CdQ,EAAAA,aA3Cc,yBA2CAC,KA3CA,EA2CO;AACnB,QAAMV,SAAS,GAAG,8CAAlB;AACA,QAAMC,GAAG,GAAGN,KAAK,CAACK,SAAD,EAAYU,KAAZ,CAAL,CACTR,IADS,CACJ,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAJ,CAAS,CAAT,CAAT;AAAA,KADI,WAEH,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJS,CAAZ;AAKA,WAAOJ,GAAP;AACD,GAnDa;AAqDdU,EAAAA,iBArDc,+BAqDM;AAClB,QAAMX,SAAS,GAAG,kCAAlB;AACA,QAAMI,IAAI,GAAGT,KAAK,CAACK,SAAD,EAAY,EAAZ,CAAL,CACVE,IADU,CACL,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAb;AAAA,KADK,WAEJ,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJU,CAAb;AAKA,WAAOD,IAAP;AACD;AA7Da,CAAhB;eAgEeP,O","sourcesContent":["import db from './index';\r\n\r\nconst { query } = db;\r\n\r\nconst Article = {\r\n findOneArticle(values) {\r\n const queryText = 'SELECT * FROM articles WHERE id=$1';\r\n const row = query(queryText, values)\r\n .then((res) => res.rows[0])\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n findAllArticles() {\r\n const queryText = 'SELECT * FROM articles';\r\n const rows = query(queryText, [])\r\n .then((res) => res.rows)\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return rows;\r\n },\r\n\r\n updateArticle(values) {\r\n const queryText = 'UPDATE articles SET title=$1, article=$2 WHERE ID=$3 RETURNING *';\r\n const row = query(queryText, values)\r\n .then((res) => res.rows[0])\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n saveArticle(values) {\r\n const queryText = `INSERT INTO\r\n articles (ID, title, article, createdOn, authorId)\r\n VALUES ($1, $2, $3, $4, $5) RETURNING *`;\r\n const row = query(queryText, values)\r\n .then((res) => res.rows[0])\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n deleteArticle(value) {\r\n const queryText = 'DELETE FROM articles WHERE ID=$1 RETURNING *';\r\n const row = query(queryText, value)\r\n .then((res) => res.rows[0])\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n deleteAllArticles() {\r\n const queryText = 'DELETE FROM articles RETURNING *';\r\n const rows = query(queryText, [])\r\n .then((res) => res.rows)\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return rows;\r\n },\r\n};\r\n\r\nexport default Article;\r\n"],"file":"article.js"} \ No newline at end of file diff --git a/build/models/comment.js b/build/models/comment.js deleted file mode 100644 index 2f8d247..0000000 --- a/build/models/comment.js +++ /dev/null @@ -1,89 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _index = _interopRequireDefault(require("./index")); - -var query = _index["default"].query; -var Comment = { - findOneComment: function findOneComment(value) { - var queryText = 'SELECT * FROM comments WHERE ID=$1'; - var row = query(queryText, value).then(function (res) { - return res.rows[0]; - })["catch"](function (err) { - throw err; - }); - return row; - }, - findAllComments: function findAllComments() { - var queryText = 'SELECT * FROM comments'; - var rows = query(queryText, []).then(function (res) { - return res.rows; - })["catch"](function (err) { - throw err; - }); - return rows; - }, - findArticleComments: function findArticleComments(value) { - var queryText = 'SELECT * FROM comments WHERE articleId=$1'; - var rows = query(queryText, value).then(function (res) { - return res.rows; - })["catch"](function (err) { - throw err; - }); - return rows; - }, - findGifComments: function findGifComments(value) { - var queryText = 'SELECT * FROM comments WHERE gifid=$1'; - var rows = query(queryText, value).then(function (res) { - return res.rows; - })["catch"](function (err) { - throw err; - }); - return rows; - }, - saveGifComment: function saveGifComment(values) { - var queryText = "INSERT INTO\n comments (id, comment, createdon, authorid, gifid)\n VALUES ($1, $2, $3, $4, $5)"; - var row = query(queryText, values).then(function (res) { - return res; - })["catch"](function (err) { - throw err; - }); - return row; - }, - saveArticleComment: function saveArticleComment(values) { - var queryText = "INSERT INTO\n comments (id, comment, createdon, authorid, articleid)\n VALUES ($1, $2, $3, $4, $5)"; - var row = query(queryText, values).then(function (res) { - return res.rows[0]; - })["catch"](function (err) { - throw err; - }); - return row; - }, - deleteComment: function deleteComment(value) { - var queryText = 'DELETE FROM comments WHERE ID=$1 RETURNING *'; - var row = query(queryText, value).then(function (res) { - return res.rows[0]; - })["catch"](function (err) { - throw err; - }); - return row; - }, - deleteAllComments: function deleteAllComments() { - var queryText = 'DELETE FROM comments RETURNING *'; - var rows = query(queryText, []).then(function (res) { - return res.rows; - })["catch"](function (err) { - throw err; - }); - return rows; - } -}; -var _default = Comment; -exports["default"] = _default; -//# sourceMappingURL=comment.js.map \ No newline at end of file diff --git a/build/models/comment.js.map b/build/models/comment.js.map deleted file mode 100644 index 44c75ba..0000000 --- a/build/models/comment.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/models/comment.js"],"names":["query","db","Comment","findOneComment","value","queryText","row","then","res","rows","err","findAllComments","findArticleComments","findGifComments","saveGifComment","values","saveArticleComment","deleteComment","deleteAllComments"],"mappings":"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","sourcesContent":["import db from './index';\r\n\r\nconst { query } = db;\r\n\r\nconst Comment = {\r\n findOneComment(value) {\r\n const queryText = 'SELECT * FROM comments WHERE ID=$1';\r\n const row = query(queryText, value)\r\n .then((res) => res.rows[0])\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n findAllComments() {\r\n const queryText = 'SELECT * FROM comments';\r\n const rows = query(queryText, [])\r\n .then((res) => res.rows)\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return rows;\r\n },\r\n\r\n findArticleComments(value) {\r\n const queryText = 'SELECT * FROM comments WHERE articleId=$1';\r\n const rows = query(queryText, value)\r\n .then((res) => res.rows)\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return rows;\r\n },\r\n\r\n findGifComments(value) {\r\n const queryText = 'SELECT * FROM comments WHERE gifid=$1';\r\n const rows = query(queryText, value)\r\n .then((res) => res.rows)\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return rows;\r\n },\r\n\r\n saveGifComment(values) {\r\n const queryText = `INSERT INTO\r\n comments (id, comment, createdon, authorid, gifid)\r\n VALUES ($1, $2, $3, $4, $5)`;\r\n const row = query(queryText, values)\r\n .then((res) => res)\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n saveArticleComment(values) {\r\n const queryText = `INSERT INTO\r\n comments (id, comment, createdon, authorid, articleid)\r\n VALUES ($1, $2, $3, $4, $5)`;\r\n const row = query(queryText, values)\r\n .then((res) => res.rows[0])\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n deleteComment(value) {\r\n const queryText = 'DELETE FROM comments WHERE ID=$1 RETURNING *';\r\n const row = query(queryText, value)\r\n .then((res) => res.rows[0])\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n deleteAllComments() {\r\n const queryText = 'DELETE FROM comments RETURNING *';\r\n const rows = query(queryText, [])\r\n .then((res) => res.rows)\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return rows;\r\n },\r\n};\r\n\r\nexport default Comment;\r\n"],"file":"comment.js"} \ No newline at end of file diff --git a/build/models/gif.js b/build/models/gif.js deleted file mode 100644 index 498155e..0000000 --- a/build/models/gif.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _index = _interopRequireDefault(require("./index")); - -var query = _index["default"].query; -var Gif = { - findOneGif: function findOneGif(value) { - var queryText = 'SELECT * FROM gifs WHERE ID=$1'; - var row = query(queryText, value).then(function (res) { - return res.rows[0]; - })["catch"](function (err) { - throw err; - }); - return row; - }, - findAllGifs: function findAllGifs() { - var queryText = 'SELECT * FROM gifs'; - var rows = query(queryText, []).then(function (res) { - return res.rows; - })["catch"](function (err) { - throw err; - }); - return rows; - }, - saveGif: function saveGif(values) { - var queryText = "INSERT INTO\n gifs (id, title, gifurl, gifpublicid, createdon, authorid)\n VALUES ($1, $2, $3, $4, $5, $6)"; - return query(queryText, values); - }, - deleteGif: function deleteGif(value) { - var queryText = 'DELETE FROM gifs WHERE ID=$1 RETURNING *'; - var row = query(queryText, value).then(function (res) { - return res.rows[0]; - })["catch"](function (err) { - throw err; - }); - return row; - }, - deleteAllGifs: function deleteAllGifs() { - var queryText = 'DELETE FROM gifs RETURNING *'; - var rows = query(queryText, []).then(function (res) { - return res.rows; - })["catch"](function (err) { - throw err; - }); - return rows; - } -}; -var _default = Gif; -exports["default"] = _default; -//# sourceMappingURL=gif.js.map \ No newline at end of file diff --git a/build/models/gif.js.map b/build/models/gif.js.map deleted file mode 100644 index d440181..0000000 --- a/build/models/gif.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/models/gif.js"],"names":["query","queries","Gif","findOneGif","value","queryText","row","then","res","rows","err","findAllGifs","saveGif","values","deleteGif","deleteAllGifs"],"mappings":";;;;;;;;;AAAA;;IAEQA,K,GAAUC,iB,CAAVD,K;AAER,IAAME,GAAG,GAAG;AACVC,EAAAA,UADU,sBACCC,KADD,EACQ;AAChB,QAAMC,SAAS,GAAG,gCAAlB;AACA,QAAMC,GAAG,GAAGN,KAAK,CAACK,SAAD,EAAYD,KAAZ,CAAL,CACTG,IADS,CACJ,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAJ,CAAS,CAAT,CAAT;AAAA,KADI,WAEH,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJS,CAAZ;AAKA,WAAOJ,GAAP;AACD,GATS;AAWVK,EAAAA,WAXU,yBAWI;AACZ,QAAMN,SAAS,GAAG,oBAAlB;AACA,QAAMI,IAAI,GAAGT,KAAK,CAACK,SAAD,EAAY,EAAZ,CAAL,CACVE,IADU,CACL,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAb;AAAA,KADK,WAEJ,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJU,CAAb;AAKA,WAAOD,IAAP;AACD,GAnBS;AAqBVG,EAAAA,OArBU,mBAqBFC,MArBE,EAqBM;AACd,QAAMR,SAAS,yHAAf;AAGA,WAAOL,KAAK,CAACK,SAAD,EAAYQ,MAAZ,CAAZ;AACD,GA1BS;AA4BVC,EAAAA,SA5BU,qBA4BAV,KA5BA,EA4BO;AACf,QAAMC,SAAS,GAAG,0CAAlB;AACA,QAAMC,GAAG,GAAGN,KAAK,CAACK,SAAD,EAAYD,KAAZ,CAAL,CACTG,IADS,CACJ,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAJ,CAAS,CAAT,CAAT;AAAA,KADI,WAEH,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJS,CAAZ;AAKA,WAAOJ,GAAP;AACD,GApCS;AAsCVS,EAAAA,aAtCU,2BAsCM;AACd,QAAMV,SAAS,GAAG,8BAAlB;AACA,QAAMI,IAAI,GAAGT,KAAK,CAACK,SAAD,EAAY,EAAZ,CAAL,CACVE,IADU,CACL,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAb;AAAA,KADK,WAEJ,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJU,CAAb;AAKA,WAAOD,IAAP;AACD;AA9CS,CAAZ;eAkDeP,G","sourcesContent":["import queries from './index';\r\n\r\nconst { query } = queries;\r\n\r\nconst Gif = {\r\n findOneGif(value) {\r\n const queryText = 'SELECT * FROM gifs WHERE ID=$1';\r\n const row = query(queryText, value)\r\n .then((res) => res.rows[0])\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n findAllGifs() {\r\n const queryText = 'SELECT * FROM gifs';\r\n const rows = query(queryText, [])\r\n .then((res) => res.rows)\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return rows;\r\n },\r\n\r\n saveGif(values) {\r\n const queryText = `INSERT INTO\r\n gifs (id, title, gifurl, gifpublicid, createdon, authorid)\r\n VALUES ($1, $2, $3, $4, $5, $6)`;\r\n return query(queryText, values);\r\n },\r\n\r\n deleteGif(value) {\r\n const queryText = 'DELETE FROM gifs WHERE ID=$1 RETURNING *';\r\n const row = query(queryText, value)\r\n .then((res) => res.rows[0])\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n deleteAllGifs() {\r\n const queryText = 'DELETE FROM gifs RETURNING *';\r\n const rows = query(queryText, [])\r\n .then((res) => res.rows)\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return rows; \r\n },\r\n};\r\n\r\n\r\nexport default Gif;\r\n"],"file":"gif.js"} \ No newline at end of file diff --git a/build/models/index.js b/build/models/index.js deleted file mode 100644 index 76563a6..0000000 --- a/build/models/index.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _dbConfig = _interopRequireDefault(require("../config/dbConfig")); - -_dbConfig["default"].connect(); - -var _default = { - /** - * DB Query - * @param {string} text - * @param {object} params - * @returns {object} object - */ - query: function query(text, params) { - return new Promise(function (resolve, reject) { - _dbConfig["default"].query(text, params).then(function (res) { - resolve(res); - })["catch"](function (err) { - reject(err); - }); - }); - } -}; -exports["default"] = _default; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/models/index.js.map b/build/models/index.js.map deleted file mode 100644 index cc4b619..0000000 --- a/build/models/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/models/index.js"],"names":["pool","connect","query","text","params","Promise","resolve","reject","then","res","err"],"mappings":";;;;;;;;;AAAA;;AAEAA,qBAAKC,OAAL;;eAEe;AACb;;;;;;AAMAC,EAAAA,KAPa,iBAOPC,IAPO,EAODC,MAPC,EAOO;AAClB,WAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtCP,2BAAKE,KAAL,CAAWC,IAAX,EAAiBC,MAAjB,EACGI,IADH,CACQ,UAACC,GAAD,EAAS;AACbH,QAAAA,OAAO,CAACG,GAAD,CAAP;AACD,OAHH,WAIS,UAACC,GAAD,EAAS;AACdH,QAAAA,MAAM,CAACG,GAAD,CAAN;AACD,OANH;AAOD,KARM,CAAP;AASD;AAjBY,C","sourcesContent":["import pool from '../config/dbConfig';\r\n\r\npool.connect();\r\n\r\nexport default {\r\n /**\r\n * DB Query\r\n * @param {string} text\r\n * @param {object} params\r\n * @returns {object} object\r\n */\r\n query(text, params) {\r\n return new Promise((resolve, reject) => {\r\n pool.query(text, params)\r\n .then((res) => {\r\n resolve(res);\r\n })\r\n .catch((err) => {\r\n reject(err);\r\n });\r\n });\r\n },\r\n};\r\n"],"file":"index.js"} \ No newline at end of file diff --git a/build/models/user.js b/build/models/user.js deleted file mode 100644 index d7c45e6..0000000 --- a/build/models/user.js +++ /dev/null @@ -1,62 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _index = _interopRequireDefault(require("./index")); - -var query = _index["default"].query; -var User = { - findOne: function findOne(value) { - var queryText = 'SELECT * FROM users WHERE storeduserEmail = $1'; - var row = query(queryText, value).then(function (res) { - return res.rows[0]; - })["catch"](function (err) { - throw err; - }); - return row; - }, - findAll: function findAll() { - var queryText = 'SELECT * FROM users'; - var rows = query(queryText, values).then(function (res) { - return res.rows; - })["catch"](function (err) { - throw err; - }); - return rows; - }, - save: function save(values) { - var queryText = "INSERT INTO\n users (id, firstName, lastName, storeduserEmail, hashedPassword, gender, jobRole, department, address)\n VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)"; - var row = query(queryText, values).then(function (res) { - return res.rows[0]; - })["catch"](function (err) { - throw err; - }); - return row; - }, - "delete": function _delete(value) { - var queryText = 'DELETE FROM users WHERE ID=$1 RETURNING *'; - var row = query(queryText, value).then(function (res) { - return res.rows[0]; - })["catch"](function (err) { - throw err; - }); - return row; - }, - deleteAllUsers: function deleteAllUsers() { - var queryText = 'DELETE FROM users RETURNING *'; - var rows = query(queryText, []).then(function (res) { - return res.rows; - })["catch"](function (err) { - throw err; - }); - return rows; - } -}; -var _default = User; -exports["default"] = _default; -//# sourceMappingURL=user.js.map \ No newline at end of file diff --git a/build/models/user.js.map b/build/models/user.js.map deleted file mode 100644 index 6f66bc6..0000000 --- a/build/models/user.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/models/user.js"],"names":["query","queries","User","findOne","value","queryText","row","then","res","rows","err","findAll","values","save","deleteAllUsers"],"mappings":";;;;;;;;;AAAA;;IAEQA,K,GAAUC,iB,CAAVD,K;AAER,IAAME,IAAI,GAAG;AACXC,EAAAA,OADW,mBACHC,KADG,EACI;AACb,QAAMC,SAAS,GAAG,gDAAlB;AACA,QAAMC,GAAG,GAAGN,KAAK,CAACK,SAAD,EAAYD,KAAZ,CAAL,CACTG,IADS,CACJ,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAJ,CAAS,CAAT,CAAT;AAAA,KADI,WAEH,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJS,CAAZ;AAKA,WAAOJ,GAAP;AACD,GATU;AAWXK,EAAAA,OAXW,qBAWD;AACR,QAAMN,SAAS,GAAG,qBAAlB;AACA,QAAMI,IAAI,GAAGT,KAAK,CAACK,SAAD,EAAYO,MAAZ,CAAL,CACVL,IADU,CACL,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAb;AAAA,KADK,WAEJ,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJU,CAAb;AAKA,WAAOD,IAAP;AACD,GAnBU;AAqBXI,EAAAA,IArBW,gBAqBND,MArBM,EAqBE;AACX,QAAMP,SAAS,iLAAf;AAGE,QAAMC,GAAG,GAAGN,KAAK,CAACK,SAAD,EAAYO,MAAZ,CAAL,CACTL,IADS,CACJ,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAJ,CAAS,CAAT,CAAT;AAAA,KADI,WAEH,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJS,CAAZ;AAKA,WAAOJ,GAAP;AACH,GA/BU;AAAA,6BAiCJF,KAjCI,EAiCG;AACZ,QAAMC,SAAS,GAAG,2CAAlB;AACA,QAAMC,GAAG,GAAGN,KAAK,CAACK,SAAD,EAAYD,KAAZ,CAAL,CACTG,IADS,CACJ,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAJ,CAAS,CAAT,CAAT;AAAA,KADI,WAEH,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJS,CAAZ;AAKA,WAAOJ,GAAP;AACD,GAzCU;AA2CXQ,EAAAA,cA3CW,4BA2CM;AACf,QAAMT,SAAS,GAAG,+BAAlB;AACA,QAAMI,IAAI,GAAGT,KAAK,CAACK,SAAD,EAAY,EAAZ,CAAL,CACVE,IADU,CACL,UAACC,GAAD;AAAA,aAASA,GAAG,CAACC,IAAb;AAAA,KADK,WAEJ,UAACC,GAAD,EAAS;AACd,YAAMA,GAAN;AACD,KAJU,CAAb;AAKA,WAAOD,IAAP;AACD;AAnDU,CAAb;eAsDeP,I","sourcesContent":["import queries from './index';\r\n\r\nconst { query } = queries;\r\n\r\nconst User = {\r\n findOne(value) {\r\n const queryText = 'SELECT * FROM users WHERE storeduserEmail = $1';\r\n const row = query(queryText, value)\r\n .then((res) => res.rows[0])\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n findAll() {\r\n const queryText = 'SELECT * FROM users';\r\n const rows = query(queryText, values)\r\n .then((res) => res.rows)\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return rows;\r\n },\r\n\r\n save(values) {\r\n const queryText = `INSERT INTO\r\n users (id, firstName, lastName, storeduserEmail, hashedPassword, gender, jobRole, department, address)\r\n VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)`;\r\n const row = query(queryText, values)\r\n .then((res) => res.rows[0])\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n delete(value) {\r\n const queryText = 'DELETE FROM users WHERE ID=$1 RETURNING *';\r\n const row = query(queryText, value)\r\n .then((res) => res.rows[0])\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return row;\r\n },\r\n\r\n deleteAllUsers() {\r\n const queryText = 'DELETE FROM users RETURNING *';\r\n const rows = query(queryText, [])\r\n .then((res) => res.rows)\r\n .catch((err) => {\r\n throw err;\r\n });\r\n return rows;\r\n }\r\n};\r\n\r\nexport default User;\r\n"],"file":"user.js"} \ No newline at end of file diff --git a/build/routes/article.js b/build/routes/article.js deleted file mode 100644 index 41e152a..0000000 --- a/build/routes/article.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = require("express"); - -var _article = require("../controllers/article"); - -var _comment = _interopRequireDefault(require("./comment")); - -var _auth = _interopRequireDefault(require("../middleware/auth")); - -var _rolesConfig = _interopRequireDefault(require("../config/rolesConfig")); - -var router = (0, _express.Router)(); -router.post('/', _article.createArticleController); -router.get('/', _article.getArticlesController); -router.get('/:articleId', _article.getArticleController); -router.patch('/:articleId', _article.updateArticleController); -router["delete"]('/:articleId', _article.deleteArticleController); -router.use('/:articleId/comments', (0, _auth["default"])([_rolesConfig["default"].Employee, _rolesConfig["default"].Admin]), _comment["default"]); -var _default = router; -exports["default"] = _default; -//# sourceMappingURL=article.js.map \ No newline at end of file diff --git a/build/routes/article.js.map b/build/routes/article.js.map deleted file mode 100644 index 4459ce0..0000000 --- a/build/routes/article.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/routes/article.js"],"names":["router","post","createArticleController","get","getArticlesController","getArticleController","patch","updateArticleController","deleteArticleController","use","Role","Employee","Admin","commentRoutes"],"mappings":";;;;;;;;;AAAA;;AACA;;AAIA;;AACA;;AACA;;AAEA,IAAMA,MAAM,GAAG,sBAAf;AAEAA,MAAM,CAACC,IAAP,CAAY,GAAZ,EAAiBC,gCAAjB;AACAF,MAAM,CAACG,GAAP,CAAW,GAAX,EAAgBC,8BAAhB;AACAJ,MAAM,CAACG,GAAP,CAAW,aAAX,EAA0BE,6BAA1B;AACAL,MAAM,CAACM,KAAP,CAAa,aAAb,EAA4BC,gCAA5B;AACAP,MAAM,UAAN,CAAc,aAAd,EAA6BQ,gCAA7B;AACAR,MAAM,CAACS,GAAP,CAAW,sBAAX,EAAmC,sBAAK,CAACC,wBAAKC,QAAN,EAAgBD,wBAAKE,KAArB,CAAL,CAAnC,EAAsEC,mBAAtE;eAEeb,M","sourcesContent":["import { Router } from 'express';\r\nimport {\r\n createArticleController, getArticlesController, getArticleController,\r\n updateArticleController, deleteArticleController,\r\n} from '../controllers/article';\r\nimport commentRoutes from './comment';\r\nimport auth from '../middleware/auth';\r\nimport Role from '../config/rolesConfig';\r\n\r\nconst router = Router();\r\n\r\nrouter.post('/', createArticleController);\r\nrouter.get('/', getArticlesController);\r\nrouter.get('/:articleId', getArticleController);\r\nrouter.patch('/:articleId', updateArticleController);\r\nrouter.delete('/:articleId', deleteArticleController);\r\nrouter.use('/:articleId/comments', auth([Role.Employee, Role.Admin]), commentRoutes);\r\n\r\nexport default router;\r\n"],"file":"article.js"} \ No newline at end of file diff --git a/build/routes/comment.js b/build/routes/comment.js deleted file mode 100644 index 1374cca..0000000 --- a/build/routes/comment.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = require("express"); - -var _comment = _interopRequireDefault(require("../controllers/comment")); - -var router = (0, _express.Router)({ - mergeParams: true -}); -router.post('/', _comment["default"]); -var _default = router; -exports["default"] = _default; -//# sourceMappingURL=comment.js.map \ No newline at end of file diff --git a/build/routes/comment.js.map b/build/routes/comment.js.map deleted file mode 100644 index 5ccd6ed..0000000 --- a/build/routes/comment.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/routes/comment.js"],"names":["router","mergeParams","post","createCommentController"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,MAAM,GAAG,qBAAO;AAAEC,EAAAA,WAAW,EAAE;AAAf,CAAP,CAAf;AAEAD,MAAM,CAACE,IAAP,CAAY,GAAZ,EAAiBC,mBAAjB;eAEeH,M","sourcesContent":["import { Router } from 'express';\r\nimport createCommentController from '../controllers/comment';\r\n\r\nconst router = Router({ mergeParams: true });\r\n\r\nrouter.post('/', createCommentController);\r\n\r\nexport default router;\r\n"],"file":"comment.js"} \ No newline at end of file diff --git a/build/routes/feed.js b/build/routes/feed.js deleted file mode 100644 index 5cb947a..0000000 --- a/build/routes/feed.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = require("express"); - -var _feed = _interopRequireDefault(require("../controllers/feed")); - -var router = (0, _express.Router)(); -router.get('/', _feed["default"]); -var _default = router; -exports["default"] = _default; -//# sourceMappingURL=feed.js.map \ No newline at end of file diff --git a/build/routes/feed.js.map b/build/routes/feed.js.map deleted file mode 100644 index 454f8e3..0000000 --- a/build/routes/feed.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/routes/feed.js"],"names":["router","get","getPosts"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,MAAM,GAAG,sBAAf;AAEAA,MAAM,CAACC,GAAP,CAAW,GAAX,EAAgBC,gBAAhB;eAEeF,M","sourcesContent":["import { Router } from 'express';\r\nimport getPosts from '../controllers/feed';\r\n\r\nconst router = Router();\r\n\r\nrouter.get('/', getPosts);\r\n\r\nexport default router;\r\n"],"file":"feed.js"} \ No newline at end of file diff --git a/build/routes/gif.js b/build/routes/gif.js deleted file mode 100644 index ec8c714..0000000 --- a/build/routes/gif.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = require("express"); - -var _gif = require("../controllers/gif"); - -var _comment = _interopRequireDefault(require("./comment")); - -var _multerConfig = _interopRequireDefault(require("../middleware/multerConfig")); - -var _auth = _interopRequireDefault(require("../middleware/auth")); - -var _rolesConfig = _interopRequireDefault(require("../config/rolesConfig")); - -var router = (0, _express.Router)(); -router.post('/', _multerConfig["default"], _gif.createGifController); -router.get('/', _gif.getGifsController); -router.get('/:gifId', _gif.getGifController); -router["delete"]('/:gifId', _gif.deleteGifController); -router.use('/:gifId/comments', (0, _auth["default"])([_rolesConfig["default"].Employee, _rolesConfig["default"].Admin]), _comment["default"]); -var _default = router; -exports["default"] = _default; -//# sourceMappingURL=gif.js.map \ No newline at end of file diff --git a/build/routes/gif.js.map b/build/routes/gif.js.map deleted file mode 100644 index 7fb6ff9..0000000 --- a/build/routes/gif.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/routes/gif.js"],"names":["router","post","multerUploads","createGifController","get","getGifsController","getGifController","deleteGifController","use","Role","Employee","Admin","commentRoutes"],"mappings":";;;;;;;;;AAAA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AAEA,IAAMA,MAAM,GAAG,sBAAf;AAEAA,MAAM,CAACC,IAAP,CAAY,GAAZ,EAAiBC,wBAAjB,EAAgCC,wBAAhC;AACAH,MAAM,CAACI,GAAP,CAAW,GAAX,EAAgBC,sBAAhB;AACAL,MAAM,CAACI,GAAP,CAAW,SAAX,EAAsBE,qBAAtB;AACAN,MAAM,UAAN,CAAc,SAAd,EAAyBO,wBAAzB;AACAP,MAAM,CAACQ,GAAP,CAAW,kBAAX,EAA+B,sBAAK,CAACC,wBAAKC,QAAN,EAAgBD,wBAAKE,KAArB,CAAL,CAA/B,EAAkEC,mBAAlE;eAEeZ,M","sourcesContent":["import { Router } from 'express';\r\nimport {\r\n createGifController, getGifsController, getGifController, deleteGifController,\r\n} from '../controllers/gif';\r\nimport commentRoutes from './comment';\r\nimport multerUploads from '../middleware/multerConfig';\r\nimport auth from '../middleware/auth';\r\nimport Role from '../config/rolesConfig';\r\n\r\nconst router = Router();\r\n\r\nrouter.post('/', multerUploads, createGifController);\r\nrouter.get('/', getGifsController);\r\nrouter.get('/:gifId', getGifController);\r\nrouter.delete('/:gifId', deleteGifController);\r\nrouter.use('/:gifId/comments', auth([Role.Employee, Role.Admin]), commentRoutes);\r\n\r\nexport default router;\r\n"],"file":"gif.js"} \ No newline at end of file diff --git a/build/routes/user.js b/build/routes/user.js deleted file mode 100644 index fd197e7..0000000 --- a/build/routes/user.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = require("express"); - -var _user = require("../controllers/user"); - -var _auth = _interopRequireDefault(require("../middleware/auth")); - -var _rolesConfig = _interopRequireDefault(require("../config/rolesConfig")); - -var router = (0, _express.Router)(); -router.post('/create-user', (0, _auth["default"])([_rolesConfig["default"].Admin]), _user.signUp); -router.post('/signin', _user.login); -var _default = router; -exports["default"] = _default; -//# sourceMappingURL=user.js.map \ No newline at end of file diff --git a/build/routes/user.js.map b/build/routes/user.js.map deleted file mode 100644 index fce334e..0000000 --- a/build/routes/user.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/routes/user.js"],"names":["router","post","Role","Admin","signUp","login"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,MAAM,GAAG,sBAAf;AAEAA,MAAM,CAACC,IAAP,CAAY,cAAZ,EAA4B,sBAAK,CAACC,wBAAKC,KAAN,CAAL,CAA5B,EAAgDC,YAAhD;AACAJ,MAAM,CAACC,IAAP,CAAY,SAAZ,EAAuBI,WAAvB;eAEeL,M","sourcesContent":["import { Router } from 'express';\r\nimport { signUp, login } from '../controllers/user';\r\nimport auth from '../middleware/auth';\r\nimport Role from '../config/rolesConfig';\r\n\r\nconst router = Router();\r\n\r\nrouter.post('/create-user', auth([Role.Admin]), signUp);\r\nrouter.post('/signin', login);\r\n\r\nexport default router;\r\n"],"file":"user.js"} \ No newline at end of file diff --git a/build/server.js b/build/server.js deleted file mode 100644 index 5fba7d1..0000000 --- a/build/server.js +++ /dev/null @@ -1,73 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _http = _interopRequireDefault(require("http")); - -var _dotenv = _interopRequireDefault(require("dotenv")); - -var _app = _interopRequireDefault(require("./app")); - -/* eslint-disable no-console */ -_dotenv["default"].config(); - -var normalizePort = function normalizePort(val) { - var port = parseInt(val, 10); - - if (typeof port !== 'number') { - return val; - } - - if (port >= 0) { - return port; - } - - return false; -}; - -var port = normalizePort(process.env.PORT || '3000'); -; - -_app["default"].set('port', port); - -var server = _http["default"].createServer(_app["default"]); - -var address = server.address(); - -var errorHandler = function errorHandler(error) { - if (error.syscall !== 'listen') { - throw error; - } - - var bind = typeof address === 'string' ? "pipe ".concat(address) : "port: ".concat(port); - - switch (error.code) { - case 'EACCES': - console.error("".concat(bind, " requires elevated privileges.")); - process.exit(1); - break; - - case 'EADDRINUSE': - console.error("".concat(bind, " is already in use.")); - process.exit(1); - break; - - default: - throw error; - } -}; - -server.on('error', errorHandler); -server.on('listening', function () { - var bind = typeof address === 'string' ? "pipe ".concat(address) : "port ".concat(port); - console.log("Listening on ".concat(bind)); -}); -server.listen(port); -var _default = server; -exports["default"] = _default; -//# sourceMappingURL=server.js.map \ No newline at end of file diff --git a/build/server.js.map b/build/server.js.map deleted file mode 100644 index 3590e1b..0000000 --- a/build/server.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../api/v1/server.js"],"names":["dotenv","config","normalizePort","val","port","parseInt","process","env","PORT","app","set","server","http","createServer","address","errorHandler","error","syscall","bind","code","console","exit","on","log","listen"],"mappings":";;;;;;;;;AACA;;AACA;;AACA;;AAHA;AAKAA,mBAAOC,MAAP;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,GAAD,EAAS;AAC7B,MAAMC,IAAI,GAAGC,QAAQ,CAACF,GAAD,EAAM,EAAN,CAArB;;AAEA,MAAI,OAAQC,IAAR,KAAkB,QAAtB,EAAgC;AAC9B,WAAOD,GAAP;AACD;;AACD,MAAIC,IAAI,IAAI,CAAZ,EAAe;AACb,WAAOA,IAAP;AACD;;AACD,SAAO,KAAP;AACD,CAVD;;AAYA,IAAMA,IAAI,GAAGF,aAAa,CAACI,OAAO,CAACC,GAAR,CAAYC,IAAZ,IAAoB,MAArB,CAA1B;AAAuD;;AAEvDC,gBAAIC,GAAJ,CAAQ,MAAR,EAAgBN,IAAhB;;AAEA,IAAMO,MAAM,GAAGC,iBAAKC,YAAL,CAAkBJ,eAAlB,CAAf;;AACA,IAAMK,OAAO,GAAGH,MAAM,CAACG,OAAP,EAAhB;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAAW;AAC9B,MAAIA,KAAK,CAACC,OAAN,KAAkB,QAAtB,EAAgC;AAC9B,UAAMD,KAAN;AACD;;AAED,MAAME,IAAI,GAAG,OAAOJ,OAAP,KAAmB,QAAnB,mBAAuCA,OAAvC,oBAA4DV,IAA5D,CAAb;;AACA,UAAQY,KAAK,CAACG,IAAd;AACE,SAAK,QAAL;AACEC,MAAAA,OAAO,CAACJ,KAAR,WAAiBE,IAAjB;AACAZ,MAAAA,OAAO,CAACe,IAAR,CAAa,CAAb;AACA;;AACF,SAAK,YAAL;AACED,MAAAA,OAAO,CAACJ,KAAR,WAAiBE,IAAjB;AACAZ,MAAAA,OAAO,CAACe,IAAR,CAAa,CAAb;AACA;;AACF;AACE,YAAML,KAAN;AAVJ;AAYD,CAlBD;;AAoBAL,MAAM,CAACW,EAAP,CAAU,OAAV,EAAmBP,YAAnB;AACAJ,MAAM,CAACW,EAAP,CAAU,WAAV,EAAuB,YAAM;AAC3B,MAAMJ,IAAI,GAAG,OAAOJ,OAAP,KAAmB,QAAnB,kBAAsCA,OAAtC,mBAA0DV,IAA1D,CAAb;AACAgB,EAAAA,OAAO,CAACG,GAAR,wBAA4BL,IAA5B;AACD,CAHD;AAKAP,MAAM,CAACa,MAAP,CAAcpB,IAAd;eAEeO,M","sourcesContent":["/* eslint-disable no-console */\r\nimport http from 'http';\r\nimport dotenv from 'dotenv';\r\nimport app from './app';\r\n\r\ndotenv.config();\r\n\r\nconst normalizePort = (val) => {\r\n const port = parseInt(val, 10);\r\n\r\n if (typeof (port) !== 'number') {\r\n return val;\r\n }\r\n if (port >= 0) {\r\n return port;\r\n }\r\n return false;\r\n};\r\n\r\nconst port = normalizePort(process.env.PORT || '3000');;\r\n\r\napp.set('port', port);\r\n\r\nconst server = http.createServer(app);\r\nconst address = server.address();\r\n\r\nconst errorHandler = (error) => {\r\n if (error.syscall !== 'listen') {\r\n throw error;\r\n }\r\n\r\n const bind = typeof address === 'string' ? `pipe ${address}` : `port: ${port}`;\r\n switch (error.code) {\r\n case 'EACCES':\r\n console.error(`${bind} requires elevated privileges.`);\r\n process.exit(1);\r\n break;\r\n case 'EADDRINUSE':\r\n console.error(`${bind} is already in use.`);\r\n process.exit(1);\r\n break;\r\n default:\r\n throw error;\r\n }\r\n};\r\n\r\nserver.on('error', errorHandler);\r\nserver.on('listening', () => {\r\n const bind = typeof address === 'string' ? `pipe ${address}` : `port ${port}`;\r\n console.log(`Listening on ${bind}`);\r\n});\r\n\r\nserver.listen(port);\r\n\r\nexport default server;\r\n"],"file":"server.js"} \ No newline at end of file diff --git a/build/test/article.spec.js b/build/test/article.spec.js deleted file mode 100644 index 00bd629..0000000 --- a/build/test/article.spec.js +++ /dev/null @@ -1,344 +0,0 @@ -"use strict"; - -var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); - -var _chai = _interopRequireWildcard(require("chai")); - -var _chaiHttp = _interopRequireDefault(require("chai-http")); - -require("chai/register-should"); - -var _dotenv = _interopRequireDefault(require("dotenv")); - -var _moment = _interopRequireDefault(require("moment")); - -var _v = _interopRequireDefault(require("uuid/v1")); - -var _server = _interopRequireDefault(require("../server")); - -var _article = _interopRequireDefault(require("../models/article")); - -var _user = _interopRequireDefault(require("../models/user")); - -var _helper = _interopRequireDefault(require("../controllers/helper")); - -_dotenv["default"].config(); - -process.env.NODE_ENV = 'test'; -var save = _user["default"].save, - deleteAllUsers = _user["default"].deleteAllUsers; -var deleteAllArticles = _article["default"].deleteAllArticles, - saveArticle = _article["default"].saveArticle; -var hashPassword = _helper["default"].hashPassword, - generateToken = _helper["default"].generateToken; - -_chai["default"].use(_chaiHttp["default"]); - -describe('Articles', function () { - var id1 = (0, _v["default"])(); - var obj = generateToken({ - sub: id1, - role: 'ADMIN' - }); - var token = "Bearer ".concat(obj); - before(function _callee() { - var articleTitle, articleText, date, userValues, articleValues; - return _regenerator["default"].async(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - articleTitle = 'First test title'; - articleText = 'First test article test'; - date = (0, _moment["default"])().format('YYYY-MM-DD HH:mm:ss'); - userValues = [id1, 'Daniel', 'Mukuna', 'daniel@mukuna.com', hashPassword('DANIEL12345'), 'male', 'admin', 'I.T', 'thika']; - articleValues = [1, articleTitle, articleText, date, id1]; - _context.next = 7; - return _regenerator["default"].awrap(save(userValues)); - - case 7: - _context.next = 9; - return _regenerator["default"].awrap(saveArticle(articleValues)); - - case 9: - case "end": - return _context.stop(); - } - } - }); - }); - after(function _callee2() { - return _regenerator["default"].async(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return _regenerator["default"].awrap(deleteAllArticles()); - - case 2: - _context2.next = 4; - return _regenerator["default"].awrap(deleteAllUsers()); - - case 4: - case "end": - return _context2.stop(); - } - } - }); - }); - describe('POST /api/v1/articles', function () { - it('should create a new article', function _callee3() { - var article1, res; - return _regenerator["default"].async(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - article1 = { - title: 'first article', - article: 'first article text' - }; - _context3.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/articles').set('Authorization', token).set('Content-Type', 'application/json').send(article1)); - - case 3: - res = _context3.sent; - (0, _chai.expect)(res).to.have.status(201); - (0, _chai.expect)(res.body.data).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 7: - case "end": - return _context3.stop(); - } - } - }); - }); - it('should fail if the article body is blank', function _callee4() { - var article2, res; - return _regenerator["default"].async(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - article2 = { - title: 'first article', - article: '' - }; - _context4.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/articles').set('Authorization', token).set('Content-Type', 'application/json').send(article2)); - - case 3: - res = _context4.sent; - (0, _chai.expect)(res).to.have.status(400); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context4.stop(); - } - } - }); - }); - it('should fail if the article title is blank', function _callee5() { - var article3, res; - return _regenerator["default"].async(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - article3 = { - title: '', - article: 'first article text' - }; - _context5.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/articles').set('Authorization', token).set('Content-Type', 'application/json').send(article3)); - - case 3: - res = _context5.sent; - (0, _chai.expect)(res).to.have.status(400); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context5.stop(); - } - } - }); - }); - }); - describe('GET /api/v1/articles', function () { - it('should fetch all articles', function _callee6() { - var res; - return _regenerator["default"].async(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - _context6.next = 2; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).get('/api/v1/articles').set('Authorization', token)); - - case 2: - res = _context6.sent; - (0, _chai.expect)(res).to.have.status(200); - (0, _chai.expect)(res.body.data).to.be.an('array'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 6: - case "end": - return _context6.stop(); - } - } - }); - }); - }); - describe('GET /api/v1/articles/:articleID', function () { - it('should fetch get one article', function _callee7() { - var res; - return _regenerator["default"].async(function _callee7$(_context7) { - while (1) { - switch (_context7.prev = _context7.next) { - case 0: - _context7.next = 2; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).get('/api/v1/articles/1').set('Authorization', token)); - - case 2: - res = _context7.sent; - (0, _chai.expect)(res).to.have.status(200); - (0, _chai.expect)(res.body.data).to.be.an('Object'); - (0, _chai.expect)(res.body.data.comments).to.be.an('array'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 7: - case "end": - return _context7.stop(); - } - } - }); - }); - it('should fail if article does not exist', function _callee8() { - var res; - return _regenerator["default"].async(function _callee8$(_context8) { - while (1) { - switch (_context8.prev = _context8.next) { - case 0: - _context8.next = 2; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).get('/api/v1/articles/5').set('Authorization', token)); - - case 2: - res = _context8.sent; - (0, _chai.expect)(res).to.have.status(500); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 6: - case "end": - return _context8.stop(); - } - } - }); - }); - }); - describe('PATCH /api/v1/articles/:articleID', function () { - it('should update an article', function _callee9() { - var article4, res; - return _regenerator["default"].async(function _callee9$(_context9) { - while (1) { - switch (_context9.prev = _context9.next) { - case 0: - article4 = { - title: 'updated first article', - article: 'updated first article text' - }; - _context9.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).patch('/api/v1/articles/1').set('Authorization', token).set('Content-Type', 'application/json').send(article4)); - - case 3: - res = _context9.sent; - (0, _chai.expect)(res).to.have.status(201); - (0, _chai.expect)(res.body.data).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 7: - case "end": - return _context9.stop(); - } - } - }); - }); - it('should fail if article does not exist', function _callee10() { - var article5, res; - return _regenerator["default"].async(function _callee10$(_context10) { - while (1) { - switch (_context10.prev = _context10.next) { - case 0: - article5 = { - title: 'updated first article', - article: 'updated first article text' - }; - _context10.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).patch('/api/v1/articles/5').set('Authorization', token).set('Content-Type', 'application/json').send(article5)); - - case 3: - res = _context10.sent; - (0, _chai.expect)(res).to.have.status(500); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context10.stop(); - } - } - }); - }); - }); - describe('DELETE /api/v1/articles/:articleId', function () { - it('should delete one article', function _callee11() { - var res; - return _regenerator["default"].async(function _callee11$(_context11) { - while (1) { - switch (_context11.prev = _context11.next) { - case 0: - _context11.next = 2; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"])["delete"]('/api/v1/articles/1').set('Authorization', token)); - - case 2: - res = _context11.sent; - (0, _chai.expect)(res).to.have.status(200); - (0, _chai.expect)(res.body.data).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 6: - case "end": - return _context11.stop(); - } - } - }); - }); - it('should fail if article does not exist', function _callee12() { - var res; - return _regenerator["default"].async(function _callee12$(_context12) { - while (1) { - switch (_context12.prev = _context12.next) { - case 0: - _context12.next = 2; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"])["delete"]('/api/v1/articles/6').set('Authorization', token)); - - case 2: - res = _context12.sent; - (0, _chai.expect)(res).to.have.status(500); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 6: - case "end": - return _context12.stop(); - } - } - }); - }); - }); -}); -//# sourceMappingURL=article.spec.js.map \ No newline at end of file diff --git a/build/test/article.spec.js.map b/build/test/article.spec.js.map deleted file mode 100644 index d64115a..0000000 --- a/build/test/article.spec.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/test/article.spec.js"],"names":["dotenv","config","process","env","NODE_ENV","save","User","deleteAllUsers","deleteAllArticles","Article","saveArticle","hashPassword","helper","generateToken","chai","use","chaiHttp","describe","id1","obj","sub","role","token","before","articleTitle","articleText","date","format","userValues","articleValues","after","it","article1","title","article","request","server","post","set","send","res","to","have","status","body","data","be","an","equals","article2","article3","get","comments","article4","patch","article5"],"mappings":"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","sourcesContent":["import chai, { expect } from 'chai';\nimport chaiHttp from 'chai-http';\nimport 'chai/register-should';\nimport dotenv from 'dotenv';\nimport moment from 'moment';\nimport uuidv1 from 'uuid/v1';\nimport server from '../server';\nimport Article from '../models/article';\nimport User from '../models/user';\nimport helper from '../controllers/helper';\n\ndotenv.config();\n\nprocess.env.NODE_ENV = 'test';\n\nconst { save, deleteAllUsers } = User;\nconst { deleteAllArticles, saveArticle } = Article;\nconst { hashPassword, generateToken } = helper;\n\nchai.use(chaiHttp);\n\ndescribe('Articles', () => {\n const id1 = uuidv1();\n const obj = generateToken({ sub: id1, role: 'ADMIN' });\n const token = `Bearer ${obj}`;\n before(async () => {\n const articleTitle = 'First test title';\n const articleText = 'First test article test';\n const date = moment().format('YYYY-MM-DD HH:mm:ss');\n const userValues = [id1, 'Daniel', 'Mukuna', 'daniel@mukuna.com', hashPassword('DANIEL12345'), 'male', 'admin', 'I.T', 'thika'];\n const articleValues = [1, articleTitle, articleText, date, id1];\n await save(userValues);\n await saveArticle(articleValues);\n });\n\n after(async () => {\n await deleteAllArticles();\n await deleteAllUsers();\n });\n\n describe('POST /api/v1/articles', () => {\n it('should create a new article', async () => {\n const article1 = {\n title: 'first article',\n article: 'first article text'\n };\n const res = await chai.request(server)\n .post('/api/v1/articles')\n .set('Authorization', token)\n .set('Content-Type', 'application/json')\n .send(article1);\n expect(res).to.have.status(201);\n expect(res.body.data).to.be.an('Object');\n expect(res.body.status).to.be.equals('success');\n });\n\n it('should fail if the article body is blank', async () => {\n const article2 = {\n title: 'first article',\n article: ''\n };\n const res = await chai.request(server)\n .post('/api/v1/articles')\n .set('Authorization', token)\n .set('Content-Type', 'application/json')\n .send(article2);\n expect(res).to.have.status(400);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n\n it('should fail if the article title is blank', async () => {\n const article3 = {\n title: '',\n article: 'first article text'\n };\n const res = await chai.request(server)\n .post('/api/v1/articles')\n .set('Authorization', token)\n .set('Content-Type', 'application/json')\n .send(article3)\n expect(res).to.have.status(400);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n });\n\n describe('GET /api/v1/articles', () => {\n it('should fetch all articles', async () => {\n const res = await chai.request(server)\n .get('/api/v1/articles')\n .set('Authorization', token);\n expect(res).to.have.status(200);\n expect(res.body.data).to.be.an('array');\n expect(res.body.status).to.be.equals('success');\n });\n });\n\n describe('GET /api/v1/articles/:articleID', () => {\n it('should fetch get one article', async () => {\n const res = await chai.request(server)\n .get('/api/v1/articles/1')\n .set('Authorization', token);\n expect(res).to.have.status(200);\n expect(res.body.data).to.be.an('Object');\n expect(res.body.data.comments).to.be.an('array');\n expect(res.body.status).to.be.equals('success');\n });\n\n it('should fail if article does not exist', async () => {\n const res = await chai.request(server)\n .get('/api/v1/articles/5')\n .set('Authorization', token);\n expect(res).to.have.status(500);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n });\n\n describe('PATCH /api/v1/articles/:articleID', () => {\n it('should update an article', async () => {\n const article4 = {\n title: 'updated first article',\n article: 'updated first article text'\n };\n const res = await chai.request(server)\n .patch('/api/v1/articles/1')\n .set('Authorization', token)\n .set('Content-Type', 'application/json')\n .send(article4);\n expect(res).to.have.status(201);\n expect(res.body.data).to.be.an('Object');\n expect(res.body.status).to.be.equals('success');\n });\n\n it('should fail if article does not exist', async () => {\n const article5 = {\n title: 'updated first article',\n article: 'updated first article text'\n };\n const res = await chai.request(server)\n .patch('/api/v1/articles/5')\n .set('Authorization', token)\n .set('Content-Type', 'application/json')\n .send(article5);\n expect(res).to.have.status(500);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n });\n\n describe('DELETE /api/v1/articles/:articleId', () => {\n it('should delete one article', async () => {\n const res = await chai.request(server)\n .delete('/api/v1/articles/1')\n .set('Authorization', token);\n expect(res).to.have.status(200);\n expect(res.body.data).to.be.an('Object');\n expect(res.body.status).to.be.equals('success');\n });\n\n it('should fail if article does not exist', async () => {\n const res = await chai.request(server)\n .delete('/api/v1/articles/6')\n .set('Authorization', token);\n expect(res).to.have.status(500);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n });\n});\n"],"file":"article.spec.js"} \ No newline at end of file diff --git a/build/test/comment.spec.js b/build/test/comment.spec.js deleted file mode 100644 index 0c5ccc6..0000000 --- a/build/test/comment.spec.js +++ /dev/null @@ -1,220 +0,0 @@ -"use strict"; - -var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); - -var _chai = _interopRequireWildcard(require("chai")); - -var _chaiHttp = _interopRequireDefault(require("chai-http")); - -require("chai/register-should"); - -var _dotenv = _interopRequireDefault(require("dotenv")); - -var _moment = _interopRequireDefault(require("moment")); - -var _v = _interopRequireDefault(require("uuid/v1")); - -var _server = _interopRequireDefault(require("../server")); - -var _gif = _interopRequireDefault(require("../models/gif")); - -var _user = _interopRequireDefault(require("../models/user")); - -var _article = _interopRequireDefault(require("../models/article")); - -var _comment = _interopRequireDefault(require("../models/comment")); - -var _helper = _interopRequireDefault(require("../controllers/helper")); - -_dotenv["default"].config(); - -process.env.NODE_ENV = 'test'; -var save = _user["default"].save, - deleteAllUsers = _user["default"].deleteAllUsers; -var saveArticle = _article["default"].saveArticle, - deleteAllArticles = _article["default"].deleteAllArticles; -var saveGif = _gif["default"].saveGif, - deleteAllGifs = _gif["default"].deleteAllGifs; -var deleteAllComments = _comment["default"].deleteAllComments; -var hashPassword = _helper["default"].hashPassword, - generateToken = _helper["default"].generateToken; - -_chai["default"].use(_chaiHttp["default"]); - -describe('comments', function () { - var id1 = (0, _v["default"])(); - var obj = generateToken({ - sub: id1, - role: 'ADMIN' - }); - var token = "Bearer ".concat(obj); - before(function _callee() { - var articleTitle, articleText, date, userValues, articleValues, gifTitle, gUrl, p_id, gifValues; - return _regenerator["default"].async(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - articleTitle = 'First test title'; - articleText = 'First test article test'; - date = (0, _moment["default"])().format('YYYY-MM-DD HH:mm:ss'); - userValues = [id1, 'Daniel', 'Mukuna', 'daniel@mukuna.com', hashPassword('DANIEL12345'), 'male', 'admin', 'I.T', 'thika']; - articleValues = [1, articleTitle, articleText, date, id1]; - gifTitle = 'First gif test value'; - gUrl = 'http://res.cloudinary.com/mukuna/image/upload/v1574479438/teamwork-api-gifs/utvsco0pt6suogvzfbu9.gif'; - p_id = 'teamwork-api-gifs/utvsco0pt6suogvzfbu9'; - gifValues = [1, gifTitle, gUrl, p_id, date, id1]; - _context.next = 11; - return _regenerator["default"].awrap(save(userValues)); - - case 11: - _context.next = 13; - return _regenerator["default"].awrap(saveGif(gifValues)); - - case 13: - _context.next = 15; - return _regenerator["default"].awrap(saveArticle(articleValues)); - - case 15: - case "end": - return _context.stop(); - } - } - }); - }); - after(function _callee2() { - return _regenerator["default"].async(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return _regenerator["default"].awrap(deleteAllComments()); - - case 2: - _context2.next = 4; - return _regenerator["default"].awrap(deleteAllGifs()); - - case 4: - _context2.next = 6; - return _regenerator["default"].awrap(deleteAllArticles()); - - case 6: - _context2.next = 8; - return _regenerator["default"].awrap(deleteAllUsers()); - - case 8: - case "end": - return _context2.stop(); - } - } - }); - }); - describe('POST /api/v1/articles/:articleID/comments', function () { - it('should create a new comment on the article', function _callee3() { - var comment1, res; - return _regenerator["default"].async(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - comment1 = { - comment: 'first article test comment' - }; - _context3.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/articles/1/comments').set('Authorization', token).set('Content-Type', 'application/json').send(comment1)); - - case 3: - res = _context3.sent; - (0, _chai.expect)(res).to.have.status(201); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 7: - case "end": - return _context3.stop(); - } - } - }); - }); - it('should fail if the comment field is empty', function _callee4() { - var comment2, res; - return _regenerator["default"].async(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - comment2 = { - comment: '' - }; - _context4.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/articles/1/comments').set('Authorization', token).set('Content-Type', 'application/json').send(comment2)); - - case 3: - res = _context4.sent; - (0, _chai.expect)(res).to.have.status(400); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context4.stop(); - } - } - }); - }); - }); - describe('POST /api/v1/gifs/:gifID/comments', function () { - it('should create a new comment on the gif', function _callee5() { - var comment3, res; - return _regenerator["default"].async(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - comment3 = { - comment: 'first gif image test comment' - }; - _context5.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/gifs/1/comments').set('Authorization', token).set('Content-Type', 'application/json').send(comment3)); - - case 3: - res = _context5.sent; - (0, _chai.expect)(res).to.have.status(201); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 7: - case "end": - return _context5.stop(); - } - } - }); - }); - it('should fail if the comment field is empty', function _callee6() { - var comment4, res; - return _regenerator["default"].async(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - comment4 = { - comment: '' - }; - _context6.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/gifs/1/comments').set('Authorization', token).set('Content-Type', 'application/json').send(comment4)); - - case 3: - res = _context6.sent; - (0, _chai.expect)(res).to.have.status(400); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context6.stop(); - } - } - }); - }); - }); -}); -//# sourceMappingURL=comment.spec.js.map \ No newline at end of file diff --git a/build/test/comment.spec.js.map b/build/test/comment.spec.js.map deleted file mode 100644 index d450c2c..0000000 --- a/build/test/comment.spec.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/test/comment.spec.js"],"names":["dotenv","config","process","env","NODE_ENV","save","User","deleteAllUsers","saveArticle","Article","deleteAllArticles","saveGif","Gif","deleteAllGifs","deleteAllComments","Comment","hashPassword","helper","generateToken","chai","use","chaiHttp","describe","id1","obj","sub","role","token","before","articleTitle","articleText","date","format","userValues","articleValues","gifTitle","gUrl","p_id","gifValues","after","it","comment1","comment","request","server","post","set","send","res","to","have","status","body","be","an","equals","comment2","comment3","comment4"],"mappings":"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","sourcesContent":["import chai, { expect } from 'chai';\nimport chaiHttp from 'chai-http';\nimport 'chai/register-should';\nimport dotenv from 'dotenv';\nimport moment from 'moment';\nimport uuidv1 from 'uuid/v1';\nimport server from '../server';\nimport Gif from '../models/gif';\nimport User from '../models/user';\nimport Article from '../models/article';\nimport Comment from '../models/comment';\nimport helper from '../controllers/helper';\n\ndotenv.config();\n\nprocess.env.NODE_ENV = 'test';\n\nconst { save, deleteAllUsers } = User;\nconst { saveArticle, deleteAllArticles } = Article;\nconst { saveGif, deleteAllGifs } = Gif;\nconst { deleteAllComments } = Comment;\n\nconst { hashPassword, generateToken} = helper;\n\nchai.use(chaiHttp);\n\ndescribe('comments', () => {\n const id1 = uuidv1();\n const obj = generateToken({ sub: id1, role: 'ADMIN' });\n const token = `Bearer ${obj}`;\n before(async () => {\n const articleTitle = 'First test title';\n const articleText = 'First test article test';\n const date = moment().format('YYYY-MM-DD HH:mm:ss');\n\n const userValues = [id1, 'Daniel', 'Mukuna', 'daniel@mukuna.com', hashPassword('DANIEL12345'), 'male', 'admin', 'I.T', 'thika'];\n const articleValues = [1, articleTitle, articleText, date, id1];\n\n const gifTitle = 'First gif test value';\n const gUrl = 'http://res.cloudinary.com/mukuna/image/upload/v1574479438/teamwork-api-gifs/utvsco0pt6suogvzfbu9.gif';\n const p_id = 'teamwork-api-gifs/utvsco0pt6suogvzfbu9';\n\n const gifValues = [1, gifTitle, gUrl, p_id, date, id1];\n await save(userValues);\n await saveGif(gifValues);\n await saveArticle(articleValues);\n });\n\n after(async () => {\n await deleteAllComments();\n await deleteAllGifs();\n await deleteAllArticles();\n await deleteAllUsers();\n });\n\n describe('POST /api/v1/articles/:articleID/comments', () => {\n it('should create a new comment on the article', async () => {\n const comment1 = {\n comment: 'first article test comment'\n };\n const res = await chai.request(server)\n .post('/api/v1/articles/1/comments')\n .set('Authorization', token)\n .set('Content-Type', 'application/json')\n .send(comment1);\n expect(res).to.have.status(201);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('success');\n });\n\n it('should fail if the comment field is empty', async () => {\n const comment2 = {\n comment: ''\n };\n const res = await chai.request(server)\n .post('/api/v1/articles/1/comments')\n .set('Authorization', token)\n .set('Content-Type', 'application/json')\n .send(comment2);\n expect(res).to.have.status(400);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n });\n\n describe('POST /api/v1/gifs/:gifID/comments', () => {\n it('should create a new comment on the gif', async () => {\n const comment3 = {\n comment: 'first gif image test comment'\n };\n const res = await chai.request(server)\n .post('/api/v1/gifs/1/comments')\n .set('Authorization', token)\n .set('Content-Type', 'application/json')\n .send(comment3);\n expect(res).to.have.status(201);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('success');\n });\n\n it('should fail if the comment field is empty', async () => {\n const comment4 = {\n comment: ''\n };\n const res = await chai.request(server)\n .post('/api/v1/gifs/1/comments')\n .set('Authorization', token)\n .set('Content-Type', 'application/json')\n .send(comment4);\n expect(res).to.have.status(400);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n });\n});\n"],"file":"comment.spec.js"} \ No newline at end of file diff --git a/build/test/feed.spec.js b/build/test/feed.spec.js deleted file mode 100644 index 4b5e226..0000000 --- a/build/test/feed.spec.js +++ /dev/null @@ -1,136 +0,0 @@ -"use strict"; - -var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); - -var _chai = _interopRequireWildcard(require("chai")); - -var _chaiHttp = _interopRequireDefault(require("chai-http")); - -require("chai/register-should"); - -var _dotenv = _interopRequireDefault(require("dotenv")); - -var _moment = _interopRequireDefault(require("moment")); - -var _v = _interopRequireDefault(require("uuid/v1")); - -var _server = _interopRequireDefault(require("../server")); - -var _gif = _interopRequireDefault(require("../models/gif")); - -var _user = _interopRequireDefault(require("../models/user")); - -var _article = _interopRequireDefault(require("../models/article")); - -var _comment = _interopRequireDefault(require("../models/comment")); - -var _helper = _interopRequireDefault(require("../controllers/helper")); - -_dotenv["default"].config(); - -process.env.NODE_ENV = 'test'; -var save = _user["default"].save, - deleteAllUsers = _user["default"].deleteAllUsers; -var saveArticle = _article["default"].saveArticle, - deleteAllArticles = _article["default"].deleteAllArticles; -var saveGif = _gif["default"].saveGif, - deleteAllGifs = _gif["default"].deleteAllGifs; -var deleteAllComments = _comment["default"].deleteAllComments; -var hashPassword = _helper["default"].hashPassword, - generateToken = _helper["default"].generateToken; - -_chai["default"].use(_chaiHttp["default"]); - -describe('comments', function () { - var id1 = (0, _v["default"])(); - var obj = generateToken({ - sub: id1, - role: 'ADMIN' - }); - var token = "Bearer ".concat(obj); - before(function _callee() { - var articleTitle, articleText, date, userValues, articleValues, gifTitle, gUrl, p_id, gifValues; - return _regenerator["default"].async(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - articleTitle = 'First test title'; - articleText = 'First test article test'; - date = (0, _moment["default"])().format('YYYY-MM-DD HH:mm:ss'); - userValues = [id1, 'Daniel', 'Mukuna', 'daniel@mukuna.com', hashPassword('DANIEL12345'), 'male', 'admin', 'I.T', 'thika']; - articleValues = [1, articleTitle, articleText, date, id1]; - gifTitle = 'First gif test value'; - gUrl = 'http://res.cloudinary.com/mukuna/image/upload/v1574479438/teamwork-api-gifs/utvsco0pt6suogvzfbu9.gif'; - p_id = 'teamwork-api-gifs/utvsco0pt6suogvzfbu9'; - gifValues = [1, gifTitle, gUrl, p_id, date, id1]; - _context.next = 11; - return _regenerator["default"].awrap(save(userValues)); - - case 11: - _context.next = 13; - return _regenerator["default"].awrap(saveGif(gifValues)); - - case 13: - _context.next = 15; - return _regenerator["default"].awrap(saveArticle(articleValues)); - - case 15: - case "end": - return _context.stop(); - } - } - }); - }); - after(function _callee2() { - return _regenerator["default"].async(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return _regenerator["default"].awrap(deleteAllGifs()); - - case 2: - _context2.next = 4; - return _regenerator["default"].awrap(deleteAllArticles()); - - case 4: - _context2.next = 6; - return _regenerator["default"].awrap(deleteAllUsers()); - - case 6: - case "end": - return _context2.stop(); - } - } - }); - }); - describe('GET /api/v1/feeds', function () { - it('should fetch all articles and gifs', function _callee3() { - var res; - return _regenerator["default"].async(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).get('/api/v1/feed').set('Authorization', token).set('Content-Type', 'application/json')); - - case 2: - res = _context3.sent; - (0, _chai.expect)(res).to.have.status(200); - (0, _chai.expect)(res.body.data).to.be.an('array'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 6: - case "end": - return _context3.stop(); - } - } - }); - }); - }); -}); -//# sourceMappingURL=feed.spec.js.map \ No newline at end of file diff --git a/build/test/feed.spec.js.map b/build/test/feed.spec.js.map deleted file mode 100644 index b4f24ee..0000000 --- a/build/test/feed.spec.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/test/feed.spec.js"],"names":["dotenv","config","process","env","NODE_ENV","save","User","deleteAllUsers","saveArticle","Article","deleteAllArticles","saveGif","Gif","deleteAllGifs","deleteAllComments","Comment","hashPassword","helper","generateToken","chai","use","chaiHttp","describe","id1","obj","sub","role","token","before","articleTitle","articleText","date","format","userValues","articleValues","gifTitle","gUrl","p_id","gifValues","after","it","request","server","get","set","res","to","have","status","body","data","be","an","equals"],"mappings":"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","sourcesContent":["import chai, { expect } from 'chai';\nimport chaiHttp from 'chai-http';\nimport 'chai/register-should';\nimport dotenv from 'dotenv';\nimport moment from 'moment';\nimport uuidv1 from 'uuid/v1';\nimport server from '../server';\nimport Gif from '../models/gif';\nimport User from '../models/user';\nimport Article from '../models/article';\nimport Comment from '../models/comment';\nimport helper from '../controllers/helper';\n\ndotenv.config();\n\nprocess.env.NODE_ENV = 'test';\n\nconst { save, deleteAllUsers } = User;\nconst { saveArticle, deleteAllArticles } = Article;\nconst { saveGif, deleteAllGifs } = Gif;\nconst { deleteAllComments } = Comment;\n\nconst { hashPassword, generateToken} = helper;\n\nchai.use(chaiHttp);\n\ndescribe('comments', () => {\n const id1 = uuidv1();\n const obj = generateToken({ sub: id1, role: 'ADMIN' });\n const token = `Bearer ${obj}`;\n before(async () => {\n const articleTitle = 'First test title';\n const articleText = 'First test article test';\n const date = moment().format('YYYY-MM-DD HH:mm:ss');\n\n const userValues = [id1, 'Daniel', 'Mukuna', 'daniel@mukuna.com', hashPassword('DANIEL12345'), 'male', 'admin', 'I.T', 'thika'];\n const articleValues = [1, articleTitle, articleText, date, id1];\n\n const gifTitle = 'First gif test value';\n const gUrl = 'http://res.cloudinary.com/mukuna/image/upload/v1574479438/teamwork-api-gifs/utvsco0pt6suogvzfbu9.gif';\n const p_id = 'teamwork-api-gifs/utvsco0pt6suogvzfbu9';\n\n const gifValues = [1, gifTitle, gUrl, p_id, date, id1];\n await save(userValues);\n await saveGif(gifValues);\n await saveArticle(articleValues);\n });\n\n after(async () => {\n await deleteAllGifs();\n await deleteAllArticles();\n await deleteAllUsers();\n });\n\n describe('GET /api/v1/feeds', () => {\n it('should fetch all articles and gifs', async () => {\n const res = await chai.request(server)\n .get('/api/v1/feed')\n .set('Authorization', token)\n .set('Content-Type', 'application/json');\n expect(res).to.have.status(200);\n expect(res.body.data).to.be.an('array');\n expect(res.body.status).to.be.equals('success');\n });\n });\n});\n"],"file":"feed.spec.js"} \ No newline at end of file diff --git a/build/test/gif.spec.js b/build/test/gif.spec.js deleted file mode 100644 index afaa9c6..0000000 --- a/build/test/gif.spec.js +++ /dev/null @@ -1,288 +0,0 @@ -"use strict"; - -var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); - -var _chai = _interopRequireWildcard(require("chai")); - -var _chaiHttp = _interopRequireDefault(require("chai-http")); - -require("chai/register-should"); - -var _dotenv = _interopRequireDefault(require("dotenv")); - -var _moment = _interopRequireDefault(require("moment")); - -var _v = _interopRequireDefault(require("uuid/v1")); - -var _server = _interopRequireDefault(require("../server")); - -var _gif = _interopRequireDefault(require("../models/gif")); - -var _user = _interopRequireDefault(require("../models/user")); - -var _helper = _interopRequireDefault(require("../controllers/helper")); - -_dotenv["default"].config(); - -process.env.NODE_ENV = 'test'; -var hashPassword = _helper["default"].hashPassword, - generateToken = _helper["default"].generateToken; -var save = _user["default"].save, - deleteAllUsers = _user["default"].deleteAllUsers; -var saveGif = _gif["default"].saveGif, - deleteAllGifs = _gif["default"].deleteAllGifs; - -_chai["default"].use(_chaiHttp["default"]); - -describe('Gifs', function () { - var id1 = (0, _v["default"])(); - var obj = generateToken({ - sub: id1, - role: 'ADMIN' - }); - var token = "Bearer ".concat(obj); - before(function _callee() { - var gifTitle, gUrl, p_id, date, userValues, gifValues; - return _regenerator["default"].async(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - gifTitle = 'First gif test value'; - gUrl = 'http://res.cloudinary.com/mukuna/image/upload/v1574479438/teamwork-api-gifs/utvsco0pt6suogvzfbu9.gif'; - p_id = 'teamwork-api-gifs/utvsco0pt6suogvzfbu9'; - date = (0, _moment["default"])().format('YYYY-MM-DD HH:mm:ss'); - userValues = [id1, 'Daniel', 'Mukuna', 'daniel@mukuna.com', hashPassword('DANIEL12345'), 'male', 'admin', 'I.T', 'thika']; - gifValues = [1, gifTitle, gUrl, p_id, date, id1]; - _context.next = 8; - return _regenerator["default"].awrap(save(userValues)); - - case 8: - _context.next = 10; - return _regenerator["default"].awrap(saveGif(gifValues)); - - case 10: - case "end": - return _context.stop(); - } - } - }); - }); - after(function _callee2() { - return _regenerator["default"].async(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return _regenerator["default"].awrap(deleteAllGifs()); - - case 2: - _context2.next = 4; - return _regenerator["default"].awrap(deleteAllUsers()); - - case 4: - case "end": - return _context2.stop(); - } - } - }); - }); - describe('POST /api/v1/gifs', function () { - it('should create a new gifs', function _callee3() { - var gif1, gifUrl, res; - return _regenerator["default"].async(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - gif1 = { - title: 'test title' - }; - gifUrl = './api/v1/test/211552610004202.gif'; - _context3.next = 4; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/gifs').set('Authorization', token).set('Content-Type', 'application/x-www-form-urlencoded').attach('image', gifUrl).field(gif1)); - - case 4: - res = _context3.sent; - (0, _chai.expect)(res).to.have.status(201); - (0, _chai.expect)(res.body.data).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 8: - case "end": - return _context3.stop(); - } - } - }); - }); - it('should fail if the gifs url is blank', function _callee4() { - var gif2, gifUrl2, res; - return _regenerator["default"].async(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - gif2 = { - title: 'test title' - }; - gifUrl2 = ''; - _context4.next = 4; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/gifs').set('Authorization', token).set('Content-Type', 'application/x-www-form-urlencoded').attach('image', gifUrl2).field(gif2)); - - case 4: - res = _context4.sent; - (0, _chai.expect)(res).to.have.status(400); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context4.stop(); - } - } - }); - }); - it('should fail if the gifs title is blank', function _callee5() { - var gif3, gifUrl3, res; - return _regenerator["default"].async(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - gif3 = { - title: '' - }; - gifUrl3 = './api/v1/test/211552610004202.gif'; - _context5.next = 4; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/gifs').set('Authorization', token).set('Content-Type', 'application/x-www-form-urlencoded').attach('image', gifUrl3).field(gif3)); - - case 4: - res = _context5.sent; - (0, _chai.expect)(res).to.have.status(400); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context5.stop(); - } - } - }); - }); - }); - describe('GET /api/v1/gifs', function () { - it('should fetch all gifs', function _callee6() { - var res; - return _regenerator["default"].async(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - _context6.next = 2; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).get('/api/v1/gifs').set('Authorization', token)); - - case 2: - res = _context6.sent; - (0, _chai.expect)(res).to.have.status(200); - (0, _chai.expect)(res.body.data).to.be.an('array'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 6: - case "end": - return _context6.stop(); - } - } - }); - }); - }); - describe('GET /api/v1/gifs/:gifId', function () { - it('should fetch get one gif', function _callee7() { - var res; - return _regenerator["default"].async(function _callee7$(_context7) { - while (1) { - switch (_context7.prev = _context7.next) { - case 0: - _context7.next = 2; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).get('/api/v1/gifs/1').set('Authorization', token)); - - case 2: - res = _context7.sent; - (0, _chai.expect)(res).to.have.status(200); - (0, _chai.expect)(res.body).to.be.an('object'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 6: - case "end": - return _context7.stop(); - } - } - }); - }); - it('should fail if gif does not exist', function _callee8() { - var res; - return _regenerator["default"].async(function _callee8$(_context8) { - while (1) { - switch (_context8.prev = _context8.next) { - case 0: - _context8.next = 2; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).get('/api/v1/gifs/5').set('Authorization', token)); - - case 2: - res = _context8.sent; - (0, _chai.expect)(res).to.have.status(500); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 6: - case "end": - return _context8.stop(); - } - } - }); - }); - }); - describe('DELETE /api/v1/gifs/:gifId', function () { - it('should delete one gif', function _callee9() { - var res; - return _regenerator["default"].async(function _callee9$(_context9) { - while (1) { - switch (_context9.prev = _context9.next) { - case 0: - _context9.next = 2; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"])["delete"]('/api/v1/gifs/1').set('Authorization', token).set('Content-Type', 'application/json')); - - case 2: - res = _context9.sent; - (0, _chai.expect)(res).to.have.status(200); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 6: - case "end": - return _context9.stop(); - } - } - }); - }); - it('should fail if gif does not exist', function _callee10() { - var res; - return _regenerator["default"].async(function _callee10$(_context10) { - while (1) { - switch (_context10.prev = _context10.next) { - case 0: - _context10.next = 2; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"])["delete"]('/api/v1/gifs/5').set('Authorization', token)); - - case 2: - res = _context10.sent; - (0, _chai.expect)(res).to.have.status(500); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 6: - case "end": - return _context10.stop(); - } - } - }); - }); - }); -}); -//# sourceMappingURL=gif.spec.js.map \ No newline at end of file diff --git a/build/test/gif.spec.js.map b/build/test/gif.spec.js.map deleted file mode 100644 index d3335d0..0000000 --- a/build/test/gif.spec.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/test/gif.spec.js"],"names":["dotenv","config","process","env","NODE_ENV","hashPassword","helper","generateToken","save","User","deleteAllUsers","saveGif","Gif","deleteAllGifs","chai","use","chaiHttp","describe","id1","obj","sub","role","token","before","gifTitle","gUrl","p_id","date","format","userValues","gifValues","after","it","gif1","title","gifUrl","request","server","post","set","attach","field","res","to","have","status","body","data","be","an","equals","gif2","gifUrl2","gif3","gifUrl3","get"],"mappings":"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","sourcesContent":["import chai, { expect } from 'chai';\nimport chaiHttp from 'chai-http';\nimport 'chai/register-should';\nimport dotenv from 'dotenv';\nimport moment from 'moment';\nimport uuidv1 from 'uuid/v1';\nimport server from '../server';\nimport Gif from '../models/gif';\nimport User from '../models/user';\nimport helper from '../controllers/helper';\n\ndotenv.config();\n\nprocess.env.NODE_ENV = 'test';\n\nconst { hashPassword, generateToken } = helper;\nconst { save, deleteAllUsers } = User;\nconst { saveGif, deleteAllGifs } = Gif;\n\nchai.use(chaiHttp);\n\ndescribe('Gifs', () => {\n const id1 = uuidv1();\n const obj = generateToken({ sub: id1, role: 'ADMIN' });\n const token = `Bearer ${obj}`;\n before(async () => {\n const gifTitle = 'First gif test value';\n const gUrl = 'http://res.cloudinary.com/mukuna/image/upload/v1574479438/teamwork-api-gifs/utvsco0pt6suogvzfbu9.gif';\n const p_id = 'teamwork-api-gifs/utvsco0pt6suogvzfbu9';\n const date = moment().format('YYYY-MM-DD HH:mm:ss');\n const userValues = [id1, 'Daniel', 'Mukuna', 'daniel@mukuna.com', hashPassword('DANIEL12345'), 'male', 'admin', 'I.T', 'thika'];\n const gifValues = [1, gifTitle, gUrl, p_id, date, id1];\n await save(userValues);\n await saveGif(gifValues);\n });\n\n after(async () => {\n await deleteAllGifs();\n await deleteAllUsers();\n });\n\n describe('POST /api/v1/gifs', () => {\n it('should create a new gifs', async () => {\n const gif1 = {\n title: 'test title'\n };\n const gifUrl = './api/v1/test/211552610004202.gif';\n const res = await chai.request(server)\n .post('/api/v1/gifs')\n .set('Authorization', token)\n .set('Content-Type', 'application/x-www-form-urlencoded')\n .attach('image', gifUrl)\n .field(gif1);\n expect(res).to.have.status(201);\n expect(res.body.data).to.be.an('Object');\n expect(res.body.status).to.be.equals('success');\n });\n\n it('should fail if the gifs url is blank', async () => {\n const gif2 = {\n title: 'test title'\n };\n const gifUrl2 = '';\n const res = await chai.request(server)\n .post('/api/v1/gifs')\n .set('Authorization', token)\n .set('Content-Type', 'application/x-www-form-urlencoded')\n .attach('image', gifUrl2)\n .field(gif2);\n expect(res).to.have.status(400);\n expect(res.body.status).to.be.equals('error');\n });\n\n it('should fail if the gifs title is blank', async () => {\n const gif3 = {\n title: ''\n };\n const gifUrl3 = './api/v1/test/211552610004202.gif';\n const res = await chai.request(server)\n .post('/api/v1/gifs')\n .set('Authorization', token)\n .set('Content-Type', 'application/x-www-form-urlencoded')\n .attach('image', gifUrl3)\n .field(gif3);\n expect(res).to.have.status(400);\n expect(res.body.status).to.be.equals('error');\n });\n });\n\n describe('GET /api/v1/gifs', () => {\n it('should fetch all gifs', async () => {\n const res = await chai.request(server)\n .get('/api/v1/gifs')\n .set('Authorization', token);\n expect(res).to.have.status(200);\n expect(res.body.data).to.be.an('array');\n expect(res.body.status).to.be.equals('success');\n });\n });\n\n describe('GET /api/v1/gifs/:gifId', () => {\n it('should fetch get one gif', async () => {\n const res = await chai.request(server)\n .get('/api/v1/gifs/1')\n .set('Authorization', token);\n expect(res).to.have.status(200);\n expect(res.body).to.be.an('object');\n expect(res.body.status).to.be.equals('success');\n });\n\n it('should fail if gif does not exist', async () => {\n const res = await chai.request(server)\n .get('/api/v1/gifs/5')\n .set('Authorization', token);\n expect(res).to.have.status(500);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n });\n\n describe('DELETE /api/v1/gifs/:gifId', () => {\n it('should delete one gif', async () => {\n const res = await chai.request(server)\n .delete('/api/v1/gifs/1')\n .set('Authorization', token)\n .set('Content-Type', 'application/json');\n expect(res).to.have.status(200);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('success');\n });\n\n it('should fail if gif does not exist', async () => {\n const res = await chai.request(server)\n .delete('/api/v1/gifs/5')\n .set('Authorization', token);\n expect(res).to.have.status(500);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n });\n});\n"],"file":"gif.spec.js"} \ No newline at end of file diff --git a/build/test/user.spec.js b/build/test/user.spec.js deleted file mode 100644 index cd67216..0000000 --- a/build/test/user.spec.js +++ /dev/null @@ -1,366 +0,0 @@ -"use strict"; - -var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); - -var _chai = _interopRequireWildcard(require("chai")); - -var _chaiHttp = _interopRequireDefault(require("chai-http")); - -require("chai/register-should"); - -var _v = _interopRequireDefault(require("uuid/v1")); - -var _dotenv = _interopRequireDefault(require("dotenv")); - -var _server = _interopRequireDefault(require("../server")); - -var _user = _interopRequireDefault(require("../models/user")); - -var _helper = _interopRequireDefault(require("../controllers/helper")); - -_dotenv["default"].config(); - -process.env.NODE_ENV = 'test'; -var deleteAllUsers = _user["default"].deleteAllUsers, - save = _user["default"].save; -var hashPassword = _helper["default"].hashPassword, - generateToken = _helper["default"].generateToken; - -_chai["default"].use(_chaiHttp["default"]); - -describe('auth', function () { - describe('POST /api/v1/auth/create-user', function () { - var id1 = (0, _v["default"])(); - var obj = generateToken({ - sub: id1, - role: 'ADMIN' - }); - var token = "Bearer ".concat(obj); // before(async () => { - // }); - - after(function _callee() { - return _regenerator["default"].async(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return _regenerator["default"].awrap(deleteAllUsers()); - - case 2: - case "end": - return _context.stop(); - } - } - }); - }); - it('should create a new user', function _callee2() { - var values, objt, autht, tokent, user1, res; - return _regenerator["default"].async(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - values = [id1, 'Daniel', 'Mukuna', 'daniel@mukuna.com', hashPassword('DANIEL12345'), 'male', 'admin', 'I.T', 'thika']; - _context2.next = 3; - return _regenerator["default"].awrap(save(values)); - - case 3: - objt = { - sub: id1, - role: 'ADMIN' - }; - autht = generateToken(objt); - tokent = "Bearer ".concat(autht); - user1 = { - firstName: 'Dante', - lastName: 'kamau', - email: 'danielmukuna@gmail.com', - password: "DANIEL12345", - gender: 'Male', - jobRole: 'admin', - department: 'I.T', - address: 'Thika' - }; - _context2.next = 9; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/auth/create-user').set('Authorization', tokent).set('Content-Type', 'application/json').send(user1)); - - case 9: - res = _context2.sent; - (0, _chai.expect)(res).to.have.status(201); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 13: - case "end": - return _context2.stop(); - } - } - }); - }); - it('should fail if email field is empty', function _callee3() { - var user2, res; - return _regenerator["default"].async(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - user2 = { - firstName: "Daniel", - lastName: "Mukuna", - email: "", - password: "DANIEL12345", - gender: "Male", - jobRole: "admin", - department: "I.T", - address: "Thika" - }; - _context3.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/auth/create-user').set('Authorization', token).set('Content-Type', 'application/json').send(user2)); - - case 3: - res = _context3.sent; - (0, _chai.expect)(res).to.have.status(400); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context3.stop(); - } - } - }); - }); - it('should fail if user supply invalid email', function _callee4() { - var user3, res; - return _regenerator["default"].async(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - user3 = { - firstName: "Daniel", - lastName: "Mukuna", - email: 'danielmukuna', - password: "DANIEL12345", - gender: "Male", - jobRole: "admin", - department: "I.T", - address: "Thika" - }; - _context4.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/auth/create-user').set('Authorization', token).set('Content-Type', 'application/json').send(user3)); - - case 3: - res = _context4.sent; - (0, _chai.expect)(res).to.have.status(400); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context4.stop(); - } - } - }); - }); - it('should fail if a duplicate email is found', function _callee5() { - var user4, res; - return _regenerator["default"].async(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - user4 = { - firstName: "Grace", - lastName: "Kamau", - email: "daniel@mukuna.com", - password: "DANIEL12345", - gender: "feMale", - jobRole: "admin", - department: "I.T", - address: "Thika" - }; - _context5.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/auth/create-user').set('Authorization', token).set('Content-Type', 'application/json').send(user4)); - - case 3: - res = _context5.sent; - (0, _chai.expect)(res).to.have.status(500); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context5.stop(); - } - } - }); - }); - }); - describe('POST /api/v1/auth/signin', function () { - var id2 = (0, _v["default"])(); - before(function _callee6() { - var values; - return _regenerator["default"].async(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - values = [id2, 'Daniel', 'Mukuna', 'daniel@mukuna.com', hashPassword('DANIEL12345'), 'male', 'admin', 'I.T', 'thika']; - _context6.next = 3; - return _regenerator["default"].awrap(save(values)); - - case 3: - case "end": - return _context6.stop(); - } - } - }); - }); - after(function _callee7() { - return _regenerator["default"].async(function _callee7$(_context7) { - while (1) { - switch (_context7.prev = _context7.next) { - case 0: - _context7.next = 2; - return _regenerator["default"].awrap(deleteAllUsers()); - - case 2: - case "end": - return _context7.stop(); - } - } - }); - }); - it('should login a user into the application', function _callee8() { - var user6, res; - return _regenerator["default"].async(function _callee8$(_context8) { - while (1) { - switch (_context8.prev = _context8.next) { - case 0: - user6 = { - email: "daniel@mukuna.com", - password: "DANIEL12345" - }; - _context8.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/auth/signin').set('Content-Type', 'application/json').send(user6)); - - case 3: - res = _context8.sent; - (0, _chai.expect)(res).to.have.status(200); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('success'); - - case 7: - case "end": - return _context8.stop(); - } - } - }); - }); - it('should fail if password is incorrect', function _callee9() { - var user7, res; - return _regenerator["default"].async(function _callee9$(_context9) { - while (1) { - switch (_context9.prev = _context9.next) { - case 0: - user7 = { - email: "daniel@mukuna.com", - password: "DANIEL12574345" - }; - _context9.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/auth/signin').set('Content-Type', 'application/json').send(user7)); - - case 3: - res = _context9.sent; - (0, _chai.expect)(res).to.have.status(400); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context9.stop(); - } - } - }); - }); - it('should fail if email field is empty', function _callee10() { - var user8, res; - return _regenerator["default"].async(function _callee10$(_context10) { - while (1) { - switch (_context10.prev = _context10.next) { - case 0: - user8 = { - email: "", - password: "DANIEL12345" - }; - _context10.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/auth/signin').set('Content-Type', 'application/json').send(user8)); - - case 3: - res = _context10.sent; - (0, _chai.expect)(res).to.have.status(400); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context10.stop(); - } - } - }); - }); - it('should fail if user supply invalid email', function _callee11() { - var user9, res; - return _regenerator["default"].async(function _callee11$(_context11) { - while (1) { - switch (_context11.prev = _context11.next) { - case 0: - user9 = { - email: "daniel.mukunacom", - password: "DANIEL1254345" - }; - _context11.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/auth/signin').set('Content-Type', 'application/json').send(user9)); - - case 3: - res = _context11.sent; - (0, _chai.expect)(res).to.have.status(400); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context11.stop(); - } - } - }); - }); - it('should fail if a password is not supplied', function _callee12() { - var user10, res; - return _regenerator["default"].async(function _callee12$(_context12) { - while (1) { - switch (_context12.prev = _context12.next) { - case 0: - user10 = { - email: "daniel.mukunacom", - password: "" - }; - _context12.next = 3; - return _regenerator["default"].awrap(_chai["default"].request(_server["default"]).post('/api/v1/auth/signin').set('Content-Type', 'application/json').send(user10)); - - case 3: - res = _context12.sent; - (0, _chai.expect)(res).to.have.status(400); - (0, _chai.expect)(res.body).to.be.an('Object'); - (0, _chai.expect)(res.body.status).to.be.equals('error'); - - case 7: - case "end": - return _context12.stop(); - } - } - }); - }); - }); -}); -//# sourceMappingURL=user.spec.js.map \ No newline at end of file diff --git a/build/test/user.spec.js.map b/build/test/user.spec.js.map deleted file mode 100644 index 5df27db..0000000 --- a/build/test/user.spec.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../api/v1/test/user.spec.js"],"names":["dotenv","config","process","env","NODE_ENV","deleteAllUsers","User","save","hashPassword","helper","generateToken","chai","use","chaiHttp","describe","id1","obj","sub","role","token","after","it","values","objt","autht","tokent","user1","firstName","lastName","email","password","gender","jobRole","department","address","request","server","post","set","send","res","to","have","status","body","be","an","equals","user2","user3","user4","id2","before","user6","user7","user8","user9","user10"],"mappings":"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","sourcesContent":["import chai, { expect } from 'chai';\nimport chaiHttp from 'chai-http';\nimport 'chai/register-should';\nimport uuidv1 from 'uuid/v1';\nimport dotenv from 'dotenv';\nimport server from '../server';\nimport User from '../models/user';\nimport helper from '../controllers/helper';\n\ndotenv.config();\n\nprocess.env.NODE_ENV = 'test';\n\n\nconst { deleteAllUsers, save } = User;\nconst { hashPassword, generateToken } = helper;\n\nchai.use(chaiHttp);\n\ndescribe('auth', () => {\n describe('POST /api/v1/auth/create-user', () => {\n const id1 = uuidv1();\n const obj = generateToken({ sub: id1, role: 'ADMIN' });\n const token = `Bearer ${obj}`;\n // before(async () => {\n\n\n // });\n\n after(async () => {\n await deleteAllUsers();\n });\n \n it('should create a new user', async () => {\n const values = [id1, 'Daniel', 'Mukuna', 'daniel@mukuna.com', hashPassword('DANIEL12345'), 'male', 'admin', 'I.T', 'thika'];\n await save(values);\n const objt = { sub: id1, role: 'ADMIN' };\n const autht = generateToken(objt);\n const tokent = `Bearer ${autht}`;\n\n const user1 = {\n firstName: 'Dante',\n lastName: 'kamau',\n email: 'danielmukuna@gmail.com', \n password: \"DANIEL12345\", \n gender: 'Male', \n jobRole: 'admin', \n department: 'I.T', \n address: 'Thika'\n };\n const res = await chai.request(server)\n .post('/api/v1/auth/create-user')\n .set('Authorization', tokent)\n .set('Content-Type', 'application/json')\n .send(user1);\n expect(res).to.have.status(201);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('success');\n });\n\n it('should fail if email field is empty', async () => {\n const user2 = {\n firstName: \"Daniel\",\n lastName: \"Mukuna\",\n email: \"\", \n password: \"DANIEL12345\", \n gender: \"Male\", \n jobRole: \"admin\", \n department: \"I.T\", \n address: \"Thika\"\n };\n const res = await chai.request(server)\n .post('/api/v1/auth/create-user')\n .set('Authorization', token)\n .set('Content-Type', 'application/json')\n .send(user2);\n expect(res).to.have.status(400);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n\n it('should fail if user supply invalid email', async () => {\n const user3 = {\n firstName: \"Daniel\",\n lastName: \"Mukuna\",\n email: 'danielmukuna', \n password: \"DANIEL12345\", \n gender: \"Male\", \n jobRole: \"admin\", \n department: \"I.T\", \n address: \"Thika\"\n };\n \n const res = await chai.request(server)\n .post('/api/v1/auth/create-user')\n .set('Authorization', token)\n .set('Content-Type', 'application/json')\n .send(user3);\n expect(res).to.have.status(400);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n\n it('should fail if a duplicate email is found', async () => {\n const user4 = {\n firstName: \"Grace\",\n lastName: \"Kamau\",\n email: \"daniel@mukuna.com\", \n password: \"DANIEL12345\", \n gender: \"feMale\", \n jobRole: \"admin\", \n department: \"I.T\", \n address: \"Thika\"\n };\n \n const res = await chai.request(server)\n .post('/api/v1/auth/create-user')\n .set('Authorization', token)\n .set('Content-Type', 'application/json')\n .send(user4);\n expect(res).to.have.status(500);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n\n });\n\n \n describe('POST /api/v1/auth/signin', () => {\n const id2 = uuidv1();\n before(async () => {\n const values = [id2, 'Daniel', 'Mukuna', 'daniel@mukuna.com', hashPassword('DANIEL12345'), 'male', 'admin', 'I.T', 'thika'];\n await save(values);\n });\n after(async () => {\n await deleteAllUsers();\n })\n it('should login a user into the application', async () => {\n const user6 = {\n email: \"daniel@mukuna.com\",\n password: \"DANIEL12345\"\n };\n const res = await chai.request(server)\n .post('/api/v1/auth/signin')\n .set('Content-Type', 'application/json')\n .send(user6);\n expect(res).to.have.status(200);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('success');\n });\n\n it('should fail if password is incorrect', async () => {\n const user7 = {\n email: \"daniel@mukuna.com\",\n password: \"DANIEL12574345\"\n };\n const res = await chai.request(server)\n .post('/api/v1/auth/signin')\n .set('Content-Type', 'application/json')\n .send(user7);\n expect(res).to.have.status(400);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n\n it('should fail if email field is empty', async () => {\n const user8 = {\n email: \"\",\n password: \"DANIEL12345\"\n };\n const res = await chai.request(server)\n .post('/api/v1/auth/signin')\n .set('Content-Type', 'application/json')\n .send(user8);\n expect(res).to.have.status(400);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n\n it('should fail if user supply invalid email', async () => {\n const user9 = {\n email: \"daniel.mukunacom\",\n password: \"DANIEL1254345\"\n };\n const res = await chai.request(server)\n .post('/api/v1/auth/signin')\n .set('Content-Type', 'application/json')\n .send(user9);\n expect(res).to.have.status(400);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n\n it('should fail if a password is not supplied', async () => {\n const user10 = {\n email: \"daniel.mukunacom\",\n password: \"\"\n };\n const res = await chai.request(server)\n .post('/api/v1/auth/signin')\n .set('Content-Type', 'application/json')\n .send(user10);\n expect(res).to.have.status(400);\n expect(res.body).to.be.an('Object');\n expect(res.body.status).to.be.equals('error');\n });\n });\n});\n"],"file":"user.spec.js"} \ No newline at end of file