Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions ayon_api/_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3245,13 +3245,16 @@ def get_events(
project_names: Optional[Iterable[str]] = None,
statuses: Optional[Iterable[EventStatus]] = None,
users: Optional[Iterable[str]] = None,
text_filter: Optional[str] = None,
include_logs: Optional[bool] = None,
has_children: Optional[bool] = None,
newer_than: Optional[str] = None,
older_than: Optional[str] = None,
fields: Optional[Iterable[str]] = None,
limit: Optional[int] = None,
order: Optional[SortOrder] = None,
first: Optional[int] = None,
last: Optional[int] = None,
states: Optional[Iterable[str]] = None,
) -> Generator[dict[str, Any], None, None]:
"""Get events from server with filtering options.
Expand All @@ -3267,6 +3270,7 @@ def get_events(
statuses (Optional[Iterable[EventStatus]]): Filtering by statuses.
users (Optional[Iterable[str]]): Filtering by users
who created/triggered an event.
text_filter (Optional[str]): Filtering by text in event payload.
include_logs (Optional[bool]): Query also log events.
has_children (Optional[bool]): Event is with/without children
events. If 'None' then all events are returned, default.
Expand All @@ -3280,6 +3284,8 @@ def get_events(
order (Optional[SortOrder]): Order events in ascending
or descending order. It is recommended to set 'limit'
when used descending.
first (Optional[int]): Get first n events.
last (Optional[int]): Get last n events.
states (Optional[Iterable[str]]): DEPRECATED Filtering by states.
Use 'statuses' instead.

Expand All @@ -3294,13 +3300,16 @@ def get_events(
project_names=project_names,
statuses=statuses,
users=users,
text_filter=text_filter,
include_logs=include_logs,
has_children=has_children,
newer_than=newer_than,
older_than=older_than,
fields=fields,
limit=limit,
order=order,
first=first,
last=last,
states=states,
)

Expand Down
15 changes: 15 additions & 0 deletions ayon_api/_api_helpers/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,16 @@ def get_events(
project_names: Optional[Iterable[str]] = None,
statuses: Optional[Iterable[EventStatus]] = None,
users: Optional[Iterable[str]] = None,
text_filter: Optional[str] = None,
include_logs: Optional[bool] = None,
has_children: Optional[bool] = None,
newer_than: Optional[str] = None,
older_than: Optional[str] = None,
fields: Optional[Iterable[str]] = None,
limit: Optional[int] = None,
order: Optional[SortOrder] = None,
first: Optional[int] = None,
last: Optional[int] = None,
states: Optional[Iterable[str]] = None,
) -> Generator[dict[str, Any], None, None]:
"""Get events from server with filtering options.
Expand All @@ -62,6 +65,7 @@ def get_events(
statuses (Optional[Iterable[EventStatus]]): Filtering by statuses.
users (Optional[Iterable[str]]): Filtering by users
who created/triggered an event.
text_filter (Optional[str]): Filtering by text in event payload.
include_logs (Optional[bool]): Query also log events.
has_children (Optional[bool]): Event is with/without children
events. If 'None' then all events are returned, default.
Expand All @@ -75,6 +79,8 @@ def get_events(
order (Optional[SortOrder]): Order events in ascending
or descending order. It is recommended to set 'limit'
when used descending.
first (Optional[int]): Get first n events.
last (Optional[int]): Get last n events.
states (Optional[Iterable[str]]): DEPRECATED Filtering by states.
Use 'statuses' instead.

Expand Down Expand Up @@ -111,6 +117,7 @@ def get_events(
("hasChildrenFilter", has_children),
("newerThanFilter", newer_than),
("olderThanFilter", older_than),
("textFilter", text_filter),
):
if filter_value is not None:
filters[filter_key] = filter_value
Expand All @@ -125,6 +132,14 @@ def get_events(
for attr, filter_value in filters.items():
query.set_variable_value(attr, filter_value)

events_field = query.get_field_by_path("events")
if last is not None:
events_field.set_limit(last)
events_field.set_order(SortOrder.descending)
elif first is not None:
events_field.set_limit(first)
events_field.set_order(SortOrder.ascending)

if limit:
events_field = query.get_field_by_path("events")
events_field.set_limit(limit)
Expand Down
2 changes: 2 additions & 0 deletions ayon_api/graphql_queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,7 @@ def events_graphql_query(fields, order, use_states=False):
has_children_var = query.add_variable("hasChildrenFilter", "Boolean!")
newer_than_var = query.add_variable("newerThanFilter", "String!")
older_than_var = query.add_variable("olderThanFilter", "String!")
text_filter_var = query.add_variable("textFilter", "String!")

statuses_filter_name = "statuses"
if use_states:
Expand All @@ -607,6 +608,7 @@ def events_graphql_query(fields, order, use_states=False):
events_field.set_filter("hasChildren", has_children_var)
events_field.set_filter("newerThan", newer_than_var)
events_field.set_filter("olderThan", older_than_var)
events_field.set_filter("filter", text_filter_var)

nested_fields = fields_to_dict(set(fields))

Expand Down
Loading