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