444d2ca7dd
* Revert "Revert "feat(structured logging): implements structured logging for backend (#1217)" (#1227)"
This reverts commit 63e6581162.
* Use pino-http instead of express pino logger
* Use correct reference to knex and do not instantiate HttpLogger prematurely
* Adds missing dependency for pino to webhook-service
* Do not instantiate middleware when passed to express
* Refactor to move logging into shared
* Copy shared packages into dockerfiles
* Build shared workspace in docker build-stage for fileimport & webhook
58 lines
1.8 KiB
TypeScript
58 lines
1.8 KiB
TypeScript
import {
|
|
initializeQueue,
|
|
consumeIncomingNotifications,
|
|
registerNotificationHandlers,
|
|
shutdownQueue
|
|
} from '@/modules/notifications/services/queue'
|
|
import {
|
|
NotificationType,
|
|
NotificationTypeHandlers
|
|
} from '@/modules/notifications/helpers/types'
|
|
import { SpeckleModule } from '@/modules/shared/helpers/typeHelper'
|
|
import { shouldDisableNotificationsConsumption } from '@/modules/shared/helpers/envHelper'
|
|
import { moduleLogger } from '@/logging/logging'
|
|
|
|
export async function initializeConsumption(
|
|
customHandlers?: Partial<NotificationTypeHandlers>
|
|
) {
|
|
moduleLogger.info('📞 Initializing notification queue consumption...')
|
|
|
|
const allHandlers: Partial<NotificationTypeHandlers> = {
|
|
[NotificationType.MentionedInComment]: (
|
|
await import('@/modules/notifications/services/handlers/mentionedInComment')
|
|
).default,
|
|
[NotificationType.NewStreamAccessRequest]: (
|
|
await import('@/modules/notifications/services/handlers/newStreamAccessRequest')
|
|
).default,
|
|
[NotificationType.StreamAccessRequestApproved]: (
|
|
await import(
|
|
'@/modules/notifications/services/handlers/streamAccessRequestApproved'
|
|
)
|
|
).default,
|
|
[NotificationType.ActivityDigest]: (
|
|
await import('@/modules/notifications/services/handlers/activityDigest')
|
|
).default
|
|
}
|
|
|
|
registerNotificationHandlers(customHandlers || allHandlers)
|
|
|
|
initializeQueue()
|
|
|
|
if (shouldDisableNotificationsConsumption()) {
|
|
moduleLogger.info('Skipping notification consumption...')
|
|
} else {
|
|
await consumeIncomingNotifications()
|
|
}
|
|
}
|
|
|
|
export const init: SpeckleModule['init'] = async (_, isInitial) => {
|
|
moduleLogger.info('📞 Init notifications module')
|
|
if (isInitial) {
|
|
await initializeConsumption()
|
|
}
|
|
}
|
|
|
|
export const shutdown: SpeckleModule['shutdown'] = async () => {
|
|
await shutdownQueue()
|
|
}
|