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'); 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) } }