const Objection = require('objection') const Schmervice = require('@hapipal/schmervice') const Schwifty = require('@hapipal/schwifty') const UserModel = require('../models/user') const UserService = require('../services/user') const GetUser = require('../routes/user/get-user') module.exports = { name: 'user-plugin', version: '1.0.0', register: async (server, options) => { await server.register(Schwifty) await server.registerModel(UserModel) // 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) await server.route(GetUser) }, }