| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- const Objection = require('objection')
- const Schmervice = require('@hapipal/schmervice')
- const Schwifty = require('@hapipal/schwifty')
- const Jwt = require('hapi-auth-jwt2')
- const JwtStrategy = require('../auth/strategies/jwt')
-
- const UserModel = require('../models/user')
- const AuthModel = require('../models/authentication')
-
- const UserCurrentRoute = require('../routes/user/current')
- const UserProfileCreateRoute = require('../routes/user/create-profile')
- const UserProfilesListRoute = require('../routes/user/list-profiles')
- const UserLoginRoute = require('../routes/user/login')
- const UserSignupRoute = require('../routes/user/signup')
- const UserEmailRoute = require('../routes/user/send-email')
- const UserVerifyActiveRoute = require('../routes/user/verify-session')
- const UserCreateTokenRoute = require('../routes/user/token')
- const UserValidateSessionRoute = require('../routes/user/validate-session')
- const UserPassword = require('../routes/user/authentication')
-
- const UserService = require('../services/user')
- const DisplayService = require('../services/display')
- const HealthService = require('../services/health')
-
- module.exports = {
- name: 'user-plugin',
- version: '1.0.0',
- register: async (server, options) => {
- await server.register(Jwt)
- await server.register(Schwifty)
- await server.registerModel(UserModel)
- await server.registerModel(AuthModel)
-
- const mainApp = server.registrations['main-app-plugin']
- const jwtOptions = JwtStrategy(mainApp.options)
-
- server.auth.strategy('default_jwt', 'jwt', jwtOptions)
- server.auth.default('default_jwt')
-
- // Bind to global context
- // So we can use Objection transactions
- server.bind({
- transaction: fn => Objection.transaction(server.knex(), fn),
- })
-
- await server.register(Schmervice)
- server.registerService(UserService)
- server.registerService(DisplayService)
- server.registerService(HealthService)
-
- await server.route(UserCurrentRoute)
- await server.route(UserLoginRoute)
- await server.route(UserSignupRoute)
- await server.route(UserProfileCreateRoute)
- await server.route(UserProfilesListRoute)
- await server.route(UserEmailRoute)
- await server.route(UserVerifyActiveRoute)
- await server.route(UserCreateTokenRoute)
- await server.route(UserValidateSessionRoute)
- await server.route(UserPassword)
- },
- }
|