diff --git a/paperless-backend/src/agrarmonitor/agrarmonitor-polling.service.ts b/paperless-backend/src/agrarmonitor/agrarmonitor-polling.service.ts index 1702c11..55b1ee9 100644 --- a/paperless-backend/src/agrarmonitor/agrarmonitor-polling.service.ts +++ b/paperless-backend/src/agrarmonitor/agrarmonitor-polling.service.ts @@ -1,4 +1,5 @@ import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; +import axios from 'axios'; import { Cron } from '@nestjs/schedule'; import { InjectRepository } from '@nestjs/typeorm'; import { IsNull, Not, Repository } from 'typeorm'; @@ -14,6 +15,14 @@ const EXTERN_BELEGNUMMER_FIELD_ID = 3; const DOCS_PAGE_SIZE = 500; const AGRARMONITOR_BASE_URL = 'https://admin7.agrarmonitor.de'; +/** Fehlermeldung inkl. aufgerufener Seite (Methode + URL), falls es ein HTTP-Fehler ist. */ +function fehlerText(err: unknown): string { + const message = err instanceof Error ? err.message : String(err); + if (!axios.isAxiosError(err) || !err.config) return message; + const method = (err.config.method ?? 'get').toUpperCase(); + return `${message} (${method} ${axios.getUri(err.config)})`; +} + export interface PollingResult { processed: number; updated: number; @@ -234,7 +243,7 @@ export class AgrarmonitorPollingService implements OnModuleInit { await this.getOrCreateCorrespondent(customer, Number(customer.id)); } catch (err: unknown) { this.logger.warn( - `Korrespondenten-Sync fehlgeschlagen: ${err instanceof Error ? err.message : err}`, + `Korrespondenten-Sync fehlgeschlagen: ${fehlerText(err)}`, ); } } @@ -287,7 +296,7 @@ export class AgrarmonitorPollingService implements OnModuleInit { } const msg = `${interneBelegnummer}: Livesearch-Fehler`; this.logger.error( - `${msg}: ${err instanceof Error ? err.message : err}`, + `${msg}: ${fehlerText(err)}`, ); result.errors.push(msg); await this.delay(500); @@ -321,7 +330,7 @@ export class AgrarmonitorPollingService implements OnModuleInit { ); } catch (err: unknown) { this.logger.warn( - `${interneBelegnummer}: Lieferscheinnummer setzen fehlgeschlagen: ${err instanceof Error ? err.message : err}`, + `${interneBelegnummer}: Lieferscheinnummer setzen fehlgeschlagen: ${fehlerText(err)}`, ); } } @@ -384,7 +393,7 @@ export class AgrarmonitorPollingService implements OnModuleInit { } catch (err: unknown) { const msg = `${interneBelegnummer}: Update-Fehler`; this.logger.error( - `${msg}: ${err instanceof Error ? err.message : err}`, + `${msg}: ${fehlerText(err)}`, ); result.errors.push(msg); } @@ -517,7 +526,7 @@ export class AgrarmonitorPollingService implements OnModuleInit { } const msg = `${interneBelegnummer}: Vorhanden-Check fehlgeschlagen`; this.logger.error( - `${msg}: ${err instanceof Error ? err.message : err}`, + `${msg}: ${fehlerText(err)}`, ); result.errors.push(msg); await this.delay(500); @@ -544,7 +553,7 @@ export class AgrarmonitorPollingService implements OnModuleInit { // Bei Fehler vorsichtig: nicht verschieben const msg = `${interneBelegnummer}: Dateieingang-Check fehlgeschlagen`; this.logger.error( - `${msg}: ${err instanceof Error ? err.message : err}`, + `${msg}: ${fehlerText(err)}`, ); result.errors.push(msg); await this.delay(500); @@ -568,7 +577,7 @@ export class AgrarmonitorPollingService implements OnModuleInit { } catch (err: unknown) { // Vorsichtig: bei Notiz-Abruf-Fehler NICHT markieren, nächster Lauf prüft erneut this.logger.warn( - `${interneBelegnummer}: Notiz-Abruf fehlgeschlagen — nicht markiert: ${err instanceof Error ? err.message : err}`, + `${interneBelegnummer}: Notiz-Abruf fehlgeschlagen — nicht markiert: ${fehlerText(err)}`, ); result.skipped++; await this.delay(500); @@ -637,7 +646,7 @@ export class AgrarmonitorPollingService implements OnModuleInit { } const msg = `${interneBelegnummer}: Livesearch-Fehler`; this.logger.error( - `${msg}: ${err instanceof Error ? err.message : err}`, + `${msg}: ${fehlerText(err)}`, ); result.errors.push(msg); await this.delay(500); @@ -734,7 +743,7 @@ export class AgrarmonitorPollingService implements OnModuleInit { } catch (err: unknown) { const msg = `${interneBelegnummer}: Update-Fehler`; this.logger.error( - `${msg}: ${err instanceof Error ? err.message : err}`, + `${msg}: ${fehlerText(err)}`, ); result.errors.push(msg); }