const Objection = require('objection') const Schmervice = require('@hapipal/schmervice') const ProfileModel = require('../models/profile') const TagModel = require('../models/tag') const TagAssociationModel = require('../models/tag-association') const AspectModel = require('../models/aspect') const AspectLabelModel = require('../models/aspect_label') const ResponseModel = require('../models/response') const ZipCodeModel = require('../models/zip-code') const MatchQueueModel = require('../models/matchqueue') const ProfileService = require('../services/profile') const MatchQueueService = require('../services/matchqueue') const MatchService = require('../services/match') const ProfileScoreRoute = require('../routes/profile/score') const ProfileUpdateRoute = require('../routes/profile/update') const ProfileRespondRoute = require('../routes/profile/respond') const ProfileMatchRoute = require('../routes/profile/match') const ProfileQueueRoute = require('../routes/profile/queue') const ProfilePatchQueueRoute = require('../routes/profile/patch-queue') module.exports = { name: 'profile-plugin', version: '1.0.0', register: async (server, options) => { await server.registerModel(ProfileModel) await server.registerModel(TagModel) await server.registerModel(TagAssociationModel) await server.registerModel(AspectModel) await server.registerModel(AspectLabelModel) await server.registerModel(ResponseModel) await server.registerModel(ZipCodeModel) await server.registerModel(MatchQueueModel) // Bind to global context // So we can use Objection transactions server.bind({ transaction: fn => Objection.transaction(server.knex(), fn), }) await server.register(Schmervice) await server.registerService(ProfileService) await server.registerService(MatchQueueService) await server.registerService(MatchService) await server.route(ProfileScoreRoute) await server.route(ProfileRespondRoute) await server.route(ProfileUpdateRoute) await server.route(ProfileMatchRoute) await server.route(ProfileQueueRoute) await server.route(ProfilePatchQueueRoute) }, }