Crash bug: self.questdb_url → self.db_url, self.auth → DB_AUTH in delete_analytics_for_date()

Table name validation in get_existing_dates() and delete_analytics_for_date()
Exchange validation in calculate_custom_analytics_daily()
This commit is contained in:
Melchior Reimers
2026-02-16 11:58:14 +01:00
parent 80d8801728
commit 71f8614cb5

View File

@@ -5,6 +5,7 @@ import os
import requests
from typing import Dict, List, Tuple, Optional
import pandas as pd
from src.utils.validation import validate_table_name, validate_exchange
logging.basicConfig(
level=logging.INFO,
@@ -499,8 +500,12 @@ class AnalyticsWorker:
"""
if exchange_filter:
try:
exchange_filter = validate_exchange(exchange_filter)
except ValueError:
continue
query += f" and exchange = '{exchange_filter}'"
query += f" group by date_trunc('day', timestamp), {group_by_field}"
data = self.query_questdb(query)
@@ -764,6 +769,7 @@ class AnalyticsWorker:
def get_existing_dates(self, table_name: str) -> set:
"""Holt alle bereits berechneten Daten aus einer Analytics-Tabelle"""
table_name = validate_table_name(table_name)
query = f"select distinct date_trunc('day', timestamp) as date from {table_name}"
data = self.query_questdb(query)
if not data:
@@ -875,12 +881,13 @@ class AnalyticsWorker:
for table in tables:
try:
table = validate_table_name(table)
# QuestDB DELETE syntax
delete_query = f"DELETE FROM {table} WHERE timestamp >= '{date_str}' AND timestamp < '{next_day_str}'"
response = requests.get(
f"{self.questdb_url}/exec",
f"{self.db_url}/exec",
params={'query': delete_query},
auth=self.auth,
auth=DB_AUTH,
timeout=30
)
if response.status_code == 200: