Moved DB models into localdb adapter

This commit is contained in:
Chris Troutner
2021-07-06 18:16:39 -07:00
parent fd2cfe0b2f
commit 20cd77efa5
12 changed files with 59 additions and 31 deletions
+28 -18
View File
@@ -1,5 +1,5 @@
const passport = require('koa-passport')
const User = require('../src/models/users')
const User = require('../src/adapters/localdb/models/users')
const Strategy = require('passport-local')
passport.serializeUser((user, done) => {
@@ -15,24 +15,34 @@ passport.deserializeUser(async (id, done) => {
}
})
passport.use('local', new Strategy({
usernameField: 'email',
passwordField: 'password'
}, async (email, password, done) => {
try {
const user = await User.findOne({ email })
if (!user) { return done(null, false) }
passport.use(
'local',
new Strategy(
{
usernameField: 'email',
passwordField: 'password'
},
async (email, password, done) => {
try {
const user = await User.findOne({ email })
if (!user) {
return done(null, false)
}
try {
const isMatch = await user.validatePassword(password)
try {
const isMatch = await user.validatePassword(password)
if (!isMatch) { return done(null, false) }
if (!isMatch) {
return done(null, false)
}
done(null, user)
} catch (err) {
done(err)
done(null, user)
} catch (err) {
done(err)
}
} catch (err) {
return done(err)
}
}
} catch (err) {
return done(err)
}
}))
)
)
+7 -3
View File
@@ -4,8 +4,12 @@
https://troutsblog.com/blog/clean-architecture
*/
// Individual adapter libraries.
// Load individual adapter libraries.
const IPFSAdapter = require('./ipfs')
const ipfs = new IPFSAdapter()
const LocalDB = require('./localdb')
module.exports = { ipfs }
// Instantiate adapter libraries.
const ipfs = new IPFSAdapter()
const localdb = new LocalDB()
module.exports = { ipfs, localdb }
+15
View File
@@ -0,0 +1,15 @@
/*
This library encapsulates code concerned with MongoDB and Mongoose models.
*/
// Load Mongoose models.
const Users = require('./models/users')
class LocalDB {
constructor () {
// Encapsulate dependencies
this.Users = Users
}
}
module.exports = LocalDB
@@ -1,6 +1,6 @@
const mongoose = require('mongoose')
const bcrypt = require('bcryptjs')
const config = require('../../config')
const config = require('../../../../config')
const jwt = require('jsonwebtoken')
const User = new mongoose.Schema({
@@ -19,7 +19,6 @@ const User = new mongoose.Schema({
},
message: props => `${props.value} is not a valid Email format!`
}
}
})
+1 -1
View File
@@ -8,7 +8,7 @@ const jwt = require('jsonwebtoken')
// Local libraries
const config = require('../../../config')
const UserModel = require('../../models/users')
const UserModel = require('../../adapters/localdb/models/users')
class Validators {
constructor () {
@@ -2,7 +2,7 @@
REST API validator middleware.
*/
const User = require('../../../models/users')
const User = require('../../../adapters/localdb/models/users')
const config = require('../../../../config')
const getToken = require('../../../lib/auth')
const jwt = require('jsonwebtoken')
+1 -1
View File
@@ -3,7 +3,7 @@
*/
// User database model.
const UserModel = require('../../../models/users')
const UserModel = require('../../../adapters/localdb/models/users')
// User library for business logic.
const UserLib = require('../../../lib/users')
+1 -1
View File
@@ -12,7 +12,7 @@
'use strict'
const axios = require('axios').default
const mongoose = require('mongoose')
const User = require('../models/users')
const User = require('../adapters/localdb/models/users')
const config = require('../../config')
const JsonFiles = require('./utils/json-files')
const jsonFiles = new JsonFiles()
+1 -1
View File
@@ -3,7 +3,7 @@
functions are called by the /user REST API endpoints.
*/
const UserModel = require('../models/users')
const UserModel = require('../adapters/localdb/models/users')
const wlogger = require('./wlogger')
class UserLib {
+1 -1
View File
@@ -16,7 +16,7 @@ process.env.SVC_ENV = 'test'
const config = require('../../../config')
const UserRPC = require('../../../src/controllers/json-rpc/users')
const RateLimit = require('../../../src/controllers/json-rpc/rate-limit')
const UserModel = require('../../../src/models/users')
const UserModel = require('../../../src/adapters/localdb/models/users')
describe('#UserRPC', () => {
let uut
+1 -1
View File
@@ -10,7 +10,7 @@ const mongoose = require('mongoose')
// Local support libraries
const config = require('../../../config')
const testUtils = require('../../utils/test-utils')
const User = require('../../../src/models/users')
const User = require('../../../src/adapters/localdb/models/users')
const UserController = require('../../../src/controllers/rest-api/users/controller')
let uut
+1 -1
View File
@@ -8,7 +8,7 @@ const axios = require('axios').default
// Local libraries
const config = require('../../config')
const User = require('../../src/models/users')
const User = require('../../src/adapters/localdb/models/users')
const LOCALHOST = `http://localhost:${config.port}`