fix: pass config to service loader
This commit is contained in:
@@ -49,7 +49,7 @@ export default async ({ directory: rootDirectory, expressApp }) => {
|
|||||||
await modelsLoader({ container })
|
await modelsLoader({ container })
|
||||||
Logger.info("Models initialized")
|
Logger.info("Models initialized")
|
||||||
|
|
||||||
await servicesLoader({ container })
|
await servicesLoader({ container, configModule })
|
||||||
Logger.info("Services initialized")
|
Logger.info("Services initialized")
|
||||||
|
|
||||||
await subscribersLoader({ container })
|
await subscribersLoader({ container })
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { Lifetime, asFunction } from "awilix"
|
|||||||
/**
|
/**
|
||||||
* Registers all services in the services directory
|
* Registers all services in the services directory
|
||||||
*/
|
*/
|
||||||
export default ({ container }) => {
|
export default ({ container, configModule }) => {
|
||||||
const isTest = process.env.NODE_ENV === "test"
|
const isTest = process.env.NODE_ENV === "test"
|
||||||
|
|
||||||
const corePath = isTest ? "../services/__mocks__/*.js" : "../services/*.js"
|
const corePath = isTest ? "../services/__mocks__/*.js" : "../services/*.js"
|
||||||
@@ -17,7 +17,9 @@ export default ({ container }) => {
|
|||||||
const loaded = require(fn).default
|
const loaded = require(fn).default
|
||||||
const name = formatRegistrationName(fn)
|
const name = formatRegistrationName(fn)
|
||||||
container.register({
|
container.register({
|
||||||
[name]: asFunction(cradle => new loaded(cradle)).singleton(),
|
[name]: asFunction(
|
||||||
|
cradle => new loaded(cradle, configModule)
|
||||||
|
).singleton(),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import Bull from "bull"
|
import Bull from "bull"
|
||||||
import Redis from "ioredis"
|
import Redis from "ioredis"
|
||||||
import config from "../config"
|
|
||||||
/**
|
/**
|
||||||
* Can keep track of multiple subscribers to different events and run the
|
* Can keep track of multiple subscribers to different events and run the
|
||||||
* subscribers when events happen. Events will run asynchronously.
|
* subscribers when events happen. Events will run asynchronously.
|
||||||
* @interface
|
* @interface
|
||||||
*/
|
*/
|
||||||
class EventBusService {
|
class EventBusService {
|
||||||
constructor({ logger, redisClient, redisSubscriber }) {
|
constructor({ logger, redisClient, redisSubscriber }, config) {
|
||||||
/** @private {logger} */
|
/** @private {logger} */
|
||||||
this.logger_ = logger
|
this.logger_ = logger
|
||||||
|
|
||||||
@@ -18,7 +18,10 @@ class EventBusService {
|
|||||||
this.cronHandlers_ = {}
|
this.cronHandlers_ = {}
|
||||||
|
|
||||||
/** @private {BullQueue} used for cron jobs */
|
/** @private {BullQueue} used for cron jobs */
|
||||||
this.cronQueue_ = new Bull(`cron-jobs:queue`, config.redisURI)
|
this.cronQueue_ = new Bull(
|
||||||
|
`cron-jobs:queue`,
|
||||||
|
config.projectConfig.redis_url
|
||||||
|
)
|
||||||
|
|
||||||
const opts = {
|
const opts = {
|
||||||
createClient: type => {
|
createClient: type => {
|
||||||
@@ -28,7 +31,7 @@ class EventBusService {
|
|||||||
case "subscriber":
|
case "subscriber":
|
||||||
return redisSubscriber
|
return redisSubscriber
|
||||||
default:
|
default:
|
||||||
return new Redis(config.redisURI)
|
return new Redis(config.projectConfig.redis_url)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user