feat(api): dont list proxies destroyed over 24 hours ago
This commit is contained in:
parent
1bc2960278
commit
8449a5a8c8
1 changed files with 7 additions and 4 deletions
|
@ -2,6 +2,7 @@ import base64
|
||||||
import binascii
|
import binascii
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
|
from datetime import datetime, timedelta, UTC
|
||||||
from typing import Optional, List, Callable, Any, Type, Dict, Union, Literal
|
from typing import Optional, List, Callable, Any, Type, Dict, Union, Literal
|
||||||
|
|
||||||
from flask import Blueprint, request, jsonify, abort
|
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],
|
model: Type[Any],
|
||||||
serialize_func: Callable[[Any], Dict[str, Any]],
|
serialize_func: Callable[[Any], Dict[str, Any]],
|
||||||
*,
|
*,
|
||||||
filters: Optional[List[ListFilter]] = None,
|
filters: List[ListFilter] = [],
|
||||||
order_by: Optional[ColumnElement[Any]] = None,
|
order_by: Optional[ColumnElement[Any]] = None,
|
||||||
resource_name: str = 'ResourceList',
|
resource_name: str = 'ResourceList',
|
||||||
max_items_param: str = 'MaxItems',
|
max_items_param: str = 'MaxItems',
|
||||||
|
@ -179,10 +180,10 @@ def list_origins() -> ResponseReturnValue:
|
||||||
|
|
||||||
@api.route('/web/mirror', methods=['GET'])
|
@api.route('/web/mirror', methods=['GET'])
|
||||||
def list_mirrors() -> ResponseReturnValue:
|
def list_mirrors() -> ResponseReturnValue:
|
||||||
status_filter = request.args.get('Status')
|
|
||||||
|
|
||||||
filters = []
|
filters = []
|
||||||
|
|
||||||
|
twenty_four_hours_ago = datetime.now(UTC) - timedelta(hours=24)
|
||||||
|
status_filter = request.args.get('Status')
|
||||||
if status_filter:
|
if status_filter:
|
||||||
if status_filter == "pending":
|
if status_filter == "pending":
|
||||||
filters.append(Proxy.url.is_(None))
|
filters.append(Proxy.url.is_(None))
|
||||||
|
@ -196,7 +197,9 @@ def list_mirrors() -> ResponseReturnValue:
|
||||||
filters.append(Proxy.deprecated.is_not(None))
|
filters.append(Proxy.deprecated.is_not(None))
|
||||||
filters.append(Proxy.destroyed.is_(None))
|
filters.append(Proxy.destroyed.is_(None))
|
||||||
if status_filter == "destroyed":
|
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(
|
return list_resources(
|
||||||
Proxy,
|
Proxy,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue