11import express , { type Request , type Response } from 'express'
22import { env } from '~/config/env'
3+ import { redisService } from '~/config/redis'
34import { BASE_URL_SERVER } from '~/core/constants/baseURL'
4- import HttpResponse from '~/core/modules/response/HttpResponse'
55import ErrorResponse from '~/core/modules/response/ErrorResponse'
6+ import HttpResponse from '~/core/modules/response/HttpResponse'
67import { formatDateTime } from '~/core/utils/date'
8+ import db from '~/database/datasource'
79import v1Routes from '~/routes/v1'
810
911const route = express . Router ( )
12+ const expressVersion = require ( 'express/package' ) . version
13+ const sequelizeVersion = require ( 'sequelize/package.json' ) . version
14+ const appVersion = require ( `${ __dirname } /../../package.json` ) . version
1015
1116route . get ( '/' , function index ( req : Request , res : Response ) {
1217 let responseData : any = {
@@ -26,18 +31,25 @@ route.get('/', function index(req: Request, res: Response) {
2631 res . status ( 200 ) . json ( httpResponse )
2732} )
2833
29- route . get ( '/health' , function serverHealth ( req : Request , res : Response ) {
34+ route . get ( '/health' , async ( _req : Request , res : Response ) => {
3035 const startUsage = process . cpuUsage ( )
3136
37+ const isConnectedDB = await db . sequelize ?. query ( 'SELECT 1' )
38+ const connectedRedis = await redisService . ping ( )
39+
3240 const status = {
33- uptime : process . uptime ( ) ,
34- message : 'Ok' ,
3541 timezone : 'ID' ,
42+ database : isConnectedDB ? 'Ok' : 'Failed' ,
43+ redis : connectedRedis === 'PONG' ? 'Ok' : 'Failed' ,
3644 date : formatDateTime ( new Date ( ) ) ,
3745 node : process . version ,
38- memory : process . memoryUsage ,
46+ express : `v${ expressVersion } ` ,
47+ sequelize : `v${ sequelizeVersion } ` ,
48+ api : `v${ appVersion } ` ,
3949 platform : process . platform ,
50+ uptime : process . uptime ( ) ,
4051 cpu_usage : process . cpuUsage ( startUsage ) ,
52+ memory : process . memoryUsage ( ) ,
4153 }
4254
4355 const httpResponse = HttpResponse . get ( {
0 commit comments