Spaces:
Running
Running
Commit ·
a8b8ea2
1
Parent(s): d92d648
Update schedule_interval_minutes to DECIMAL type and adjust validation logic
Browse files- api_monitor.py +6 -7
- schema.sql +1 -1
api_monitor.py
CHANGED
|
@@ -153,12 +153,12 @@ def validate_api_configuration(
|
|
| 153 |
|
| 154 |
if (
|
| 155 |
not isinstance(schedule_interval_minutes, (int, float))
|
| 156 |
-
or schedule_interval_minutes <
|
| 157 |
or schedule_interval_minutes > 1440
|
| 158 |
):
|
| 159 |
return {
|
| 160 |
"success": False,
|
| 161 |
-
"message": "Schedule interval must be between
|
| 162 |
"config_id": None,
|
| 163 |
}
|
| 164 |
|
|
@@ -218,7 +218,7 @@ def validate_api_configuration(
|
|
| 218 |
|
| 219 |
# Calculate timestamps
|
| 220 |
created_at = datetime.now()
|
| 221 |
-
stop_at = parsed_start_time + timedelta(hours=stop_after_hours)
|
| 222 |
|
| 223 |
# Store configuration
|
| 224 |
try:
|
|
@@ -248,7 +248,7 @@ def validate_api_configuration(
|
|
| 248 |
json.dumps(api_client.parse_key_value_string(header_keys_values)),
|
| 249 |
additional_params,
|
| 250 |
False,
|
| 251 |
-
schedule_interval_minutes,
|
| 252 |
parsed_start_time,
|
| 253 |
stop_at.isoformat(),
|
| 254 |
created_at,
|
|
@@ -343,7 +343,6 @@ def activate_monitoring(config_id, mcp_api_key):
|
|
| 343 |
"""
|
| 344 |
try:
|
| 345 |
conn = connect_to_db()
|
| 346 |
-
# TODO: Implement activation logic here
|
| 347 |
conn.close()
|
| 348 |
|
| 349 |
return {
|
|
@@ -517,7 +516,7 @@ def retrieve_monitored_data(config_id, mcp_api_key, mode="summary"):
|
|
| 517 |
elapsed_minutes = (now - start_dt).total_seconds() / 60
|
| 518 |
if elapsed_minutes > 0:
|
| 519 |
total_expected_calls = max(
|
| 520 |
-
1, int(elapsed_minutes / config["schedule_interval_minutes"])
|
| 521 |
)
|
| 522 |
|
| 523 |
# Get success/failure counts
|
|
@@ -668,7 +667,7 @@ if __name__ == "__main__":
|
|
| 668 |
param_keys_values="",
|
| 669 |
header_keys_values="",
|
| 670 |
additional_params="{}",
|
| 671 |
-
schedule_interval_minutes=20,
|
| 672 |
stop_after_hours=24,
|
| 673 |
start_at="",
|
| 674 |
)
|
|
|
|
| 153 |
|
| 154 |
if (
|
| 155 |
not isinstance(schedule_interval_minutes, (int, float))
|
| 156 |
+
or schedule_interval_minutes <= 0
|
| 157 |
or schedule_interval_minutes > 1440
|
| 158 |
):
|
| 159 |
return {
|
| 160 |
"success": False,
|
| 161 |
+
"message": "Schedule interval must be between 0 and 1440 minutes",
|
| 162 |
"config_id": None,
|
| 163 |
}
|
| 164 |
|
|
|
|
| 218 |
|
| 219 |
# Calculate timestamps
|
| 220 |
created_at = datetime.now()
|
| 221 |
+
stop_at = parsed_start_time + timedelta(hours=float(stop_after_hours))
|
| 222 |
|
| 223 |
# Store configuration
|
| 224 |
try:
|
|
|
|
| 248 |
json.dumps(api_client.parse_key_value_string(header_keys_values)),
|
| 249 |
additional_params,
|
| 250 |
False,
|
| 251 |
+
float(schedule_interval_minutes),
|
| 252 |
parsed_start_time,
|
| 253 |
stop_at.isoformat(),
|
| 254 |
created_at,
|
|
|
|
| 343 |
"""
|
| 344 |
try:
|
| 345 |
conn = connect_to_db()
|
|
|
|
| 346 |
conn.close()
|
| 347 |
|
| 348 |
return {
|
|
|
|
| 516 |
elapsed_minutes = (now - start_dt).total_seconds() / 60
|
| 517 |
if elapsed_minutes > 0:
|
| 518 |
total_expected_calls = max(
|
| 519 |
+
1, int(elapsed_minutes / float(config["schedule_interval_minutes"]))
|
| 520 |
)
|
| 521 |
|
| 522 |
# Get success/failure counts
|
|
|
|
| 667 |
param_keys_values="",
|
| 668 |
header_keys_values="",
|
| 669 |
additional_params="{}",
|
| 670 |
+
schedule_interval_minutes=20.5,
|
| 671 |
stop_after_hours=24,
|
| 672 |
start_at="",
|
| 673 |
)
|
schema.sql
CHANGED
|
@@ -14,7 +14,7 @@ CREATE TABLE api_configurations (
|
|
| 14 |
headers JSONB,
|
| 15 |
additional_params JSONB,
|
| 16 |
is_active BOOLEAN DEFAULT FALSE,
|
| 17 |
-
schedule_interval_minutes
|
| 18 |
start_at TIMESTAMP,
|
| 19 |
stop_at TIMESTAMP,
|
| 20 |
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
|
|
| 14 |
headers JSONB,
|
| 15 |
additional_params JSONB,
|
| 16 |
is_active BOOLEAN DEFAULT FALSE,
|
| 17 |
+
schedule_interval_minutes DECIMAL(10,2),
|
| 18 |
start_at TIMESTAMP,
|
| 19 |
stop_at TIMESTAMP,
|
| 20 |
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|