"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.HealthService = void 0; const common_1 = require("@nestjs/common"); const prisma_service_1 = require("../prisma/prisma.service"); let HealthService = class HealthService { constructor(prisma) { this.prisma = prisma; this.startTime = Date.now(); } async getOverallHealth() { const timestamp = new Date().toISOString(); const uptime = Date.now() - this.startTime; const dbStart = Date.now(); let dbStatus = 'ok'; let dbResponseTime = 0; let dbDetails; try { await this.prisma.$queryRaw `SELECT 1`; dbResponseTime = Date.now() - dbStart; } catch (error) { dbStatus = 'error'; dbResponseTime = Date.now() - dbStart; dbDetails = error instanceof Error ? error.message : 'Unknown database error'; } let overallStatus = 'healthy'; if (dbStatus === 'error') { overallStatus = 'unhealthy'; } const statusCode = overallStatus === 'unhealthy' ? 503 : 200; return { status: overallStatus, statusCode, service: 'recipe-api', timestamp, uptime, checks: { database: { status: dbStatus, responseTime: dbResponseTime, details: dbDetails, }, }, }; } async getDatabaseHealth() { const timestamp = new Date().toISOString(); const startTime = Date.now(); try { await this.prisma.$queryRaw `SELECT 1`; const responseTime = Date.now() - startTime; return { status: 'ok', database: 'connected', responseTime, timestamp, statusCode: 200, }; } catch (error) { const responseTime = Date.now() - startTime; const details = error instanceof Error ? error.message : 'Unknown database error'; return { status: 'error', database: 'not reachable', responseTime, timestamp, details, statusCode: 503, }; } } }; exports.HealthService = HealthService; exports.HealthService = HealthService = __decorate([ (0, common_1.Injectable)(), __metadata("design:paramtypes", [prisma_service_1.PrismaService]) ], HealthService); //# sourceMappingURL=health.service.js.map