feat(api): dont list proxies destroyed over 24 hours ago

This commit is contained in:
Iain Learmonth 2024-11-29 18:39:08 +00:00
parent 1bc2960278
commit 8449a5a8c8

View file

@ -2,6 +2,7 @@ import base64
import binascii
import logging
import re
from datetime import datetime, timedelta, UTC
from typing import Optional, List, Callable, Any, Type, Dict, Union, Literal
from flask import Blueprint, request, jsonify, abort
@ -85,7 +86,7 @@ def list_resources( # pylint: disable=too-many-arguments,too-many-locals
model: Type[Any],
serialize_func: Callable[[Any], Dict[str, Any]],
*,
filters: Optional[List[ListFilter]] = None,
filters: List[ListFilter] = [],
order_by: Optional[ColumnElement[Any]] = None,
resource_name: str = 'ResourceList',
max_items_param: str = 'MaxItems',
@ -179,10 +180,10 @@ def list_origins() -> ResponseReturnValue:
@api.route('/web/mirror', methods=['GET'])
def list_mirrors() -> ResponseReturnValue:
status_filter = request.args.get('Status')
filters = []
twenty_four_hours_ago = datetime.now(UTC) - timedelta(hours=24)
status_filter = request.args.get('Status')
if status_filter:
if status_filter == "pending":
filters.append(Proxy.url.is_(None))
@ -196,7 +197,9 @@ def list_mirrors() -> ResponseReturnValue:
filters.append(Proxy.deprecated.is_not(None))
filters.append(Proxy.destroyed.is_(None))
if status_filter == "destroyed":
filters.append(Proxy.destroyed.is_not(None))
filters.append(Proxy.destroyed > twenty_four_hours_ago)
else:
filters.append((Proxy.destroyed.is_(None)) | (Proxy.destroyed > twenty_four_hours_ago))
return list_resources(
Proxy,