You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

user.js 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. const Objection = require('objection')
  2. const Schmervice = require('@hapipal/schmervice')
  3. const Schwifty = require('@hapipal/schwifty')
  4. const Jwt = require('@hapi/jwt')
  5. const JwtStrategy = require('../auth/strategies/jwt')
  6. const UserModel = require('../models/user')
  7. const AuthModel = require('../models/authentication')
  8. const UserCurrentRoute = require('../routes/user/current')
  9. const UserProfileCreateRoute = require('../routes/user/create-profile')
  10. const UserProfilesListRoute = require('../routes/user/list-profiles')
  11. const UserLoginRoute = require('../routes/user/login')
  12. const UserSignupRoute = require('../routes/user/signup')
  13. const UserPassword = require('../routes/user/authentication')
  14. const UserOnlineStatusRoute = require('../routes/user/online-status')
  15. const UserService = require('../services/user')
  16. const DisplayService = require('../services/display')
  17. const HealthService = require('../services/health')
  18. module.exports = {
  19. name: 'user-plugin',
  20. version: '1.0.0',
  21. register: async (server, options) => {
  22. await server.register(Jwt)
  23. await server.register(Schwifty)
  24. await server.registerModel(UserModel)
  25. await server.registerModel(AuthModel)
  26. const mainApp = server.registrations['main-app-plugin']
  27. const jwtOptions = JwtStrategy(mainApp.options)
  28. server.auth.strategy('default_jwt', 'jwt', jwtOptions)
  29. server.auth.default('default_jwt')
  30. // Bind to global context
  31. // So we can use Objection transactions
  32. server.bind({
  33. transaction: fn => Objection.transaction(server.knex(), fn),
  34. })
  35. await server.register(Schmervice)
  36. server.registerService(UserService)
  37. server.registerService(DisplayService)
  38. server.registerService(HealthService)
  39. await server.route(UserCurrentRoute)
  40. await server.route(UserLoginRoute)
  41. await server.route(UserSignupRoute)
  42. await server.route(UserProfileCreateRoute)
  43. await server.route(UserProfilesListRoute)
  44. await server.route(UserPassword)
  45. await server.route(UserOnlineStatusRoute)
  46. },
  47. }