From 021c6e789ec6d37a17d95a661eeb48a5fa8ed5ea Mon Sep 17 00:00:00 2001 From: Till-JS <101404291+Till-JS@users.noreply.github.com> Date: Mon, 26 Jan 2026 11:14:52 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20fix(telegram-bot):=20improve=20d?= =?UTF-8?q?atabase=20connection=20logging=20and=20error=20messages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add connection test on startup (SELECT 1) - Log masked database URL on connection attempt - Better error messages for /users command --- .../telegram-stats-bot/src/bot/bot.update.ts | 22 +++++++++++++------ .../src/users/users.service.ts | 10 +++++++-- 2 files changed, 23 insertions(+), 9 deletions(-) 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');