41 lines
1.0 KiB
JavaScript
41 lines
1.0 KiB
JavaScript
import config from 'config'
|
|
import pino from 'pino'
|
|
import * as pinoExpress from 'pino-pretty-express'
|
|
import createError from 'http-errors'
|
|
import { MS } from '../message-service'
|
|
import { EmailHandlers } from './EmailHandlers'
|
|
import path from 'path'
|
|
import fs from 'fs'
|
|
|
|
const serviceName = 'dar-email'
|
|
const isProduction = (process.env.NODE_ENV == 'production')
|
|
let log = null
|
|
|
|
if (isProduction) {
|
|
log = pino( { name: serviceName },
|
|
fs.createWriteStream(path.join(config.get('logDir'), serviceName + '.log'))
|
|
)
|
|
} else {
|
|
const pretty = pinoExpress.pretty({})
|
|
pretty.pipe(process.stdout)
|
|
log = pino({ name: serviceName }, pretty)
|
|
}
|
|
|
|
const ms = new MS(serviceName, { durable: true }, log)
|
|
let container = { ms, log }
|
|
|
|
const amqpUri = config.get('uri.amqp')
|
|
|
|
ms.connect(amqpUri).then(() => {
|
|
log.info(`Connected to RabbitMQ at ${amqpUri}`)
|
|
|
|
container = {
|
|
...container,
|
|
handlers: new EmailHandlers(container)
|
|
}
|
|
|
|
ms.listen(container.handlers)
|
|
}).catch((err) => {
|
|
log.error(isProduction ? err.message : err)
|
|
})
|