const Objection = require('objection') const Schmervice = require('@hapipal/schmervice') const GroupingModel = require('../models/grouping') const MembershipModel = require('../models/membership') const MembershipService = require('../services/membership') const MembershipJoinRoute = require('../routes/membership/join') const MembershipLeaveRoute = require('../routes/membership/leave') const MembershipActiveRoute = require('../routes/membership/active') const MembershipRevealRoute = require('../routes/membership/reveal') module.exports = { name: 'membership-plugin', version: '1.0.0', register: async (server, options) => { await server.registerModel(GroupingModel) await server.registerModel(MembershipModel) // 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(MembershipService) await server.route(MembershipJoinRoute) await server.route(MembershipLeaveRoute) await server.route(MembershipActiveRoute) await server.route(MembershipRevealRoute) }, }