From d0cb10309829a37c092b62f22118110fd255123b Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 7 Jul 2021 17:46:46 -0700 Subject: [PATCH] Moved user lib to use-cases dir --- src/controllers/json-rpc/auth/index.js | 2 +- src/controllers/json-rpc/users/index.js | 2 +- src/controllers/rest-api/users/controller.js | 2 +- src/entities/user.js | 24 ++++++++++++++++++++ src/{lib/users.js => use-cases/user.js} | 0 test/unit/biz-logic/a02-users.lib-unit.js | 13 ++++------- test/unit/json-rpc/a11-auth.unit.js | 2 +- test/unit/json-rpc/a12-validators.unit.js | 2 +- 8 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 src/entities/user.js rename src/{lib/users.js => use-cases/user.js} (100%) diff --git a/src/controllers/json-rpc/auth/index.js b/src/controllers/json-rpc/auth/index.js index 1ba6d6e..9221742 100644 --- a/src/controllers/json-rpc/auth/index.js +++ b/src/controllers/json-rpc/auth/index.js @@ -7,7 +7,7 @@ const jsonrpc = require('jsonrpc-lite') // Local libraries // const AuthLib = require('../../lib/auth') -const UserLib = require('../../../lib/users') +const UserLib = require('../../../use-cases/user') const wlogger = require('../../../adapters/wlogger') const RateLimit = require('../rate-limit') diff --git a/src/controllers/json-rpc/users/index.js b/src/controllers/json-rpc/users/index.js index 72545d8..6fdd7cc 100644 --- a/src/controllers/json-rpc/users/index.js +++ b/src/controllers/json-rpc/users/index.js @@ -6,7 +6,7 @@ const jsonrpc = require('jsonrpc-lite') // Local libraries -const UserLib = require('../../../lib/users') +const UserLib = require('../../../use-cases/user') const Validators = require('../validators') const RateLimit = require('../rate-limit') diff --git a/src/controllers/rest-api/users/controller.js b/src/controllers/rest-api/users/controller.js index f2e981b..d6c054c 100644 --- a/src/controllers/rest-api/users/controller.js +++ b/src/controllers/rest-api/users/controller.js @@ -6,7 +6,7 @@ const UserModel = require('../../../adapters/localdb/models/users') // User library for business logic. -const UserLib = require('../../../lib/users') +const UserLib = require('../../../use-cases/user') const wlogger = require('../../../adapters/wlogger') diff --git a/src/entities/user.js b/src/entities/user.js new file mode 100644 index 0000000..86114ea --- /dev/null +++ b/src/entities/user.js @@ -0,0 +1,24 @@ +/* + User Entity +*/ + +class User { + validate ({ name, email, password } = {}) { + // Input Validation + if (!email || typeof email !== 'string') { + throw new Error("Property 'email' must be a string!") + } + if (!password || typeof password !== 'string') { + throw new Error("Property 'password' must be a string!") + } + if (!name || typeof name !== 'string') { + throw new Error("Property 'name' must be a string!") + } + + const userData = { name, email, password } + + return userData + } +} + +module.exports = User diff --git a/src/lib/users.js b/src/use-cases/user.js similarity index 100% rename from src/lib/users.js rename to src/use-cases/user.js diff --git a/test/unit/biz-logic/a02-users.lib-unit.js b/test/unit/biz-logic/a02-users.lib-unit.js index 507b171..f1b9ef8 100644 --- a/test/unit/biz-logic/a02-users.lib-unit.js +++ b/test/unit/biz-logic/a02-users.lib-unit.js @@ -14,7 +14,7 @@ const config = require('../../../config') const testUtils = require('../../utils/test-utils') // Unit under test (uut) -const UserLib = require('../../../src/lib/users') +const UserLib = require('../../../src/use-cases/user') describe('#users', () => { let uut @@ -26,13 +26,10 @@ describe('#users', () => { console.log(`Connecting to database: ${config.database}`) mongoose.Promise = global.Promise mongoose.set('useCreateIndex', true) // Stop deprecation warning. - await mongoose.connect( - config.database, - { - useUnifiedTopology: true, - useNewUrlParser: true - } - ) + await mongoose.connect(config.database, { + useUnifiedTopology: true, + useNewUrlParser: true + }) // Delete all previous users in the database. await testUtils.deleteAllUsers() diff --git a/test/unit/json-rpc/a11-auth.unit.js b/test/unit/json-rpc/a11-auth.unit.js index 078e2dd..b99e6ef 100644 --- a/test/unit/json-rpc/a11-auth.unit.js +++ b/test/unit/json-rpc/a11-auth.unit.js @@ -16,7 +16,7 @@ process.env.SVC_ENV = 'test' const config = require('../../../config') const AuthRPC = require('../../../src/controllers/json-rpc/auth') const RateLimit = require('../../../src/controllers/json-rpc/rate-limit') -const UserLib = require('../../../src/lib/users') +const UserLib = require('../../../src/use-cases/user') const userLib = new UserLib() describe('#AuthRPC', () => { diff --git a/test/unit/json-rpc/a12-validators.unit.js b/test/unit/json-rpc/a12-validators.unit.js index 45c956a..25b1138 100644 --- a/test/unit/json-rpc/a12-validators.unit.js +++ b/test/unit/json-rpc/a12-validators.unit.js @@ -17,7 +17,7 @@ process.env.SVC_ENV = 'test' // Local libraries const config = require('../../../config') const Validators = require('../../../src/controllers/json-rpc/validators') -const UserLib = require('../../../src/lib/users') +const UserLib = require('../../../src/use-cases/user') const userLib = new UserLib() describe('#validators', () => {