From 4fc67488214e25e093543c42c236e61308a4448b Mon Sep 17 00:00:00 2001 From: Collin Duncan <3679940+cgduncan7@users.noreply.github.com> Date: Thu, 19 Sep 2024 11:49:35 +0200 Subject: [PATCH] Adding a health module to use for podman healthchecks --- src/app.module.ts | 2 ++ src/health/controller.ts | 16 ++++++++++++++++ src/health/module.ts | 10 ++++++++++ 3 files changed, 28 insertions(+) create mode 100644 src/health/controller.ts create mode 100644 src/health/module.ts diff --git a/src/app.module.ts b/src/app.module.ts index cb2e614..9e7b610 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -6,6 +6,7 @@ import { TypeOrmModule } from '@nestjs/typeorm' import { resolve } from 'path' import { EmailModule } from './email/module' +import { HealthModule } from './health/module' import { LoggerMiddleware } from './logger/middleware' import { LoggerModule } from './logger/module' import { DatabaseLoggerService } from './logger/service.database_logger' @@ -57,6 +58,7 @@ import { WaitingListModule } from './waitingList/module' RunnerModule, LoggerModule, EmailModule, + HealthModule, MembersModule, WaitingListModule, NtfyModule, diff --git a/src/health/controller.ts b/src/health/controller.ts new file mode 100644 index 0000000..212b501 --- /dev/null +++ b/src/health/controller.ts @@ -0,0 +1,16 @@ +import { Controller, Get, Inject } from '@nestjs/common' + +import { EmailProvider } from '../email/provider' + +@Controller('health') +export class HealthController { + constructor( + @Inject(EmailProvider) + private emailProvider: EmailProvider, + ) {} + + @Get() + getHealth() { + return this.emailProvider.isConnected() + } +} diff --git a/src/health/module.ts b/src/health/module.ts new file mode 100644 index 0000000..58c8c5e --- /dev/null +++ b/src/health/module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common' + +import { EmailModule } from '../email/module' +import { HealthController } from './controller' + +@Module({ + imports: [EmailModule], + controllers: [HealthController], +}) +export class HealthModule {}