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.

membership.js 1.1KB

123456789101112131415161718192021222324252627282930313233
  1. const Objection = require('objection')
  2. const Schmervice = require('@hapipal/schmervice')
  3. const GroupingModel = require('../models/grouping')
  4. const MembershipModel = require('../models/membership')
  5. const MembershipService = require('../services/membership')
  6. const MembershipJoinRoute = require('../routes/membership/join')
  7. const MembershipLeaveRoute = require('../routes/membership/leave')
  8. const MembershipActiveRoute = require('../routes/membership/active')
  9. module.exports = {
  10. name: 'membership-plugin',
  11. version: '1.0.0',
  12. register: async (server, options) => {
  13. await server.registerModel(GroupingModel)
  14. await server.registerModel(MembershipModel)
  15. // Bind to global context
  16. // So we can use Objection transactions
  17. server.bind({
  18. transaction: fn => Objection.transaction(server.knex(), fn),
  19. })
  20. await server.register(Schmervice)
  21. server.registerService(MembershipService)
  22. await server.route(MembershipJoinRoute)
  23. await server.route(MembershipLeaveRoute)
  24. await server.route(MembershipActiveRoute)
  25. },
  26. }