From 8449a5a8c8ef5aa8535b8ecb1ea16f10cd640d22 Mon Sep 17 00:00:00 2001 From: irl Date: Fri, 29 Nov 2024 18:39:08 +0000 Subject: [PATCH] feat(api): dont list proxies destroyed over 24 hours ago --- app/api/__init__.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/api/__init__.py b/app/api/__init__.py index 6407d7d..f1b3fc3 100644 --- a/app/api/__init__.py +++ b/app/api/__init__.py @@ -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,