Commit f53cc284 authored by Simon Bray's avatar Simon Bray
Browse files

specify time as datetime object in job queries

parent d3d51c27
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
import json
import logging
import typing
from datetime import datetime

from boltons.iterutils import remap
from pydantic import (
@@ -107,7 +108,7 @@ class JobManager:

        def build_and_apply_filters(query, objects, filter_func):
            if objects is not None:
                if isinstance(objects, str):
                if isinstance(objects, str) or isinstance(objects, datetime):
                    query = query.filter(filter_func(objects))
                elif isinstance(objects, list):
                    t = []
+1 −1
Original line number Diff line number Diff line
@@ -1109,7 +1109,7 @@ class JobIndexQueryPayload(Model):
    user_id: Optional[DecodedDatabaseIdField] = None
    tool_ids: Optional[List[str]] = None
    tool_ids_like: Optional[List[str]] = None
    date_range_min: Optional[str] = None
    date_range_min: Optional[datetime] = None
    date_range_max: Optional[str] = None
    history_id: Optional[DecodedDatabaseIdField] = None
    workflow_id: Optional[DecodedDatabaseIdField] = None
+5 −4
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ API operations on a jobs.
"""

import logging
from datetime import datetime
from typing import (
    Any,
    Dict,
@@ -98,13 +99,13 @@ ToolIdLikeQueryParam: Optional[str] = Query(
    description="Limit listing of jobs to those that match one of the included tool ID sql-like patterns. If none, all are returned",
)

DateRangeMinQueryParam: Optional[str] = Query(
DateRangeMinQueryParam: Optional[datetime] = Query(
    default=None,
    title="Date Range Minimum",
    description="Limit listing of jobs to those that are updated after specified date (e.g. '2014-01-01')",
)

DateRangeMaxQueryParam: Optional[str] = Query(
DateRangeMaxQueryParam: Optional[datetime] = Query(
    default=None,
    title="Date Range Maximum",
    description="Limit listing of jobs to those that are updated before specified date (e.g. '2014-01-01')",
@@ -186,8 +187,8 @@ class FastAPIJobs:
        view: JobIndexViewEnum = ViewQueryParam,
        tool_id: Optional[str] = ToolIdQueryParam,
        tool_id_like: Optional[str] = ToolIdLikeQueryParam,
        date_range_min: Optional[str] = DateRangeMinQueryParam,
        date_range_max: Optional[str] = DateRangeMaxQueryParam,
        date_range_min: Optional[datetime] = DateRangeMinQueryParam,
        date_range_max: Optional[datetime] = DateRangeMaxQueryParam,
        history_id: Optional[EncodedDatabaseIdField] = HistoryIdQueryParam,
        workflow_id: Optional[EncodedDatabaseIdField] = WorkflowIdQueryParam,
        invocation_id: Optional[EncodedDatabaseIdField] = InvocationIdQueryParam,