mirror of
https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-consumer.git
synced 2026-09-21 16:52:03 -07:00
Module intializer - generates routes and connects to controller
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import glob from 'glob'
|
||||
import Router from 'koa-router'
|
||||
|
||||
exports = module.exports = function initModules(app) {
|
||||
glob(`${__dirname}/*`, { ignore: '**/index.js' }, (err, matches) => {
|
||||
if (err) { throw err }
|
||||
|
||||
matches.forEach((mod) => {
|
||||
const routerConfig = require(`${mod}/router`).default
|
||||
const router = new Router({ prefix: routerConfig.base })
|
||||
|
||||
for (const [key, props] of Object.entries(routerConfig)) {
|
||||
if (key === 'base') { continue }
|
||||
|
||||
const {
|
||||
method = '',
|
||||
route = '',
|
||||
middleware = [],
|
||||
controller
|
||||
} = props
|
||||
|
||||
router[method.toLowerCase()](route, controller)
|
||||
|
||||
app
|
||||
.use(router.routes())
|
||||
.use(router.allowedMethods())
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import User from '../../models/users'
|
||||
import config from '../../../config'
|
||||
import jwt from 'jsonwebtoken'
|
||||
|
||||
export async function createUser(ctx) {
|
||||
const user = new User(ctx.request.body.user)
|
||||
try {
|
||||
await user.save()
|
||||
const token = jwt.sign({ id: user.id }, config.token)
|
||||
|
||||
const response = user.toJSON()
|
||||
|
||||
delete response.password
|
||||
delete response.salt
|
||||
|
||||
ctx.body = {
|
||||
user: response,
|
||||
token
|
||||
}
|
||||
} catch (err) {
|
||||
ctx.throw(422, err)
|
||||
}
|
||||
}
|
||||
@@ -41,8 +41,9 @@ export default {
|
||||
* "error": "Unprocessable Entity"
|
||||
* }
|
||||
*/
|
||||
'/': {
|
||||
'Create new users': {
|
||||
method: 'POST',
|
||||
route: '/',
|
||||
controller: createUser
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user