All files / src app.service.ts

0% Statements 0/8
100% Branches 0/0
0% Functions 0/3
0% Lines 0/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48                                                                                               
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
 
@Injectable()
export class AppService {
  constructor(private readonly configService: ConfigService) {}
 
  getHealth() {
    return {
      message: 'SavePal API is running successfully! 🚀',
      timestamp: new Date().toISOString(),
      version: this.configService.get<string>('APP_VERSION', '1.0.0'),
      environment: this.configService.get<string>('NODE_ENV', 'development'),
    };
  }
 
  getStatus() {
    return {
      api: {
        name: this.configService.get<string>('APP_NAME', 'SavePal Backend'),
        version: this.configService.get<string>('APP_VERSION', '1.0.0'),
        environment: this.configService.get<string>('NODE_ENV', 'development'),
        uptime: process.uptime(),
        timestamp: new Date().toISOString(),
      },
      system: {
        nodeVersion: process.version,
        platform: process.platform,
        architecture: process.arch,
        memory: {
          used: Math.round((process.memoryUsage().heapUsed / 1024 / 1024) * 100) / 100,
          total: Math.round((process.memoryUsage().heapTotal / 1024 / 1024) * 100) / 100,
        },
      },
      features: {
        authentication: true,
        aiRecommendations: true,
        couponSystem: true,
        socialFeatures: this.configService.get<boolean>('ENABLE_SOCIAL_FEATURES', true),
        voiceSearch: this.configService.get<boolean>('ENABLE_VOICE_SEARCH', true),
        arFeatures: this.configService.get<boolean>('ENABLE_AR_FEATURES', true),
        sustainabilityScoring: this.configService.get<boolean>('ENABLE_SUSTAINABILITY_SCORING', true),
        resaleMarketplace: this.configService.get<boolean>('ENABLE_RESALE_MARKETPLACE', true),
      },
    };
  }
}