diff --git a/services/telegram-stats-bot/src/bot/bot.update.ts b/services/telegram-stats-bot/src/bot/bot.update.ts index 31a906872..8cb5b47b8 100644 --- a/services/telegram-stats-bot/src/bot/bot.update.ts +++ b/services/telegram-stats-bot/src/bot/bot.update.ts @@ -67,13 +67,21 @@ export class BotUpdate { this.logger.log(`/users command from ${ctx.from?.id}`); await ctx.reply('đŸ‘„ Lade User-Statistiken...'); - const stats = await this.usersService.getUserStats(); - if (!stats) { - await ctx.reply('❌ Datenbank nicht verfĂŒgbar'); - return; - } + try { + const stats = await this.usersService.getUserStats(); + if (!stats) { + this.logger.warn('User stats returned null - database may not be configured'); + await ctx.reply('❌ Datenbank nicht verfĂŒgbar. PrĂŒfe DATABASE_URL Konfiguration.'); + return; + } - const report = formatUsersReport(stats); - await ctx.replyWithHTML(report); + const report = formatUsersReport(stats); + await ctx.replyWithHTML(report); + } catch (error) { + this.logger.error('Failed to get user stats:', error); + await ctx.reply( + `❌ Fehler beim Laden der User-Statistiken: ${error instanceof Error ? error.message : 'Unbekannter Fehler'}` + ); + } } } diff --git a/services/telegram-stats-bot/src/users/users.service.ts b/services/telegram-stats-bot/src/users/users.service.ts index 58b903ba8..c87479c51 100644 --- a/services/telegram-stats-bot/src/users/users.service.ts +++ b/services/telegram-stats-bot/src/users/users.service.ts @@ -31,10 +31,16 @@ export class UsersService implements OnModuleInit { async onModuleInit() { if (this.databaseUrl) { try { + // Mask password in logs + const maskedUrl = this.databaseUrl.replace(/:([^@]+)@/, ':****@'); + this.logger.log(`Connecting to database: ${maskedUrl}`); this.sql = postgres(this.databaseUrl); - this.logger.log('Database connection initialized'); + // Test connection + await this.sql`SELECT 1`; + this.logger.log('Database connection initialized and tested successfully'); } catch (error) { - this.logger.warn('Failed to initialize database connection:', error); + this.logger.error('Failed to initialize database connection:', error); + this.sql = null; } } else { this.logger.warn('DATABASE_URL not configured, user stats will be unavailable');