Skip to content

Commit 1d402b4

Browse files
committed
added emails filtering
1 parent e7813ea commit 1d402b4

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

ayon_api/graphql_queries.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -619,10 +619,12 @@ def events_graphql_query(fields, order, use_states=False):
619619
def users_graphql_query(fields):
620620
query = GraphQlQuery("Users")
621621
names_var = query.add_variable("userNames", "[String!]")
622+
emails_var = query.add_variable("emails", "[String!]")
622623
project_name_var = query.add_variable("projectName", "String!")
623624

624625
users_field = query.add_field_with_edges("users")
625626
users_field.set_filter("names", names_var)
627+
users_field.set_filter("emails", emails_var)
626628
users_field.set_filter("projectName", project_name_var)
627629

628630
nested_fields = fields_to_dict(set(fields))

ayon_api/server_api.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1143,6 +1143,7 @@ def get_users(
11431143
self,
11441144
project_name: Optional[str] = None,
11451145
usernames: Optional[Iterable[str]] = None,
1146+
emails: Optional[Iterable[str]] = None,
11461147
fields: Optional[Iterable[str]] = None,
11471148
) -> Generator[Dict[str, Any], None, None]:
11481149
"""Get Users.
@@ -1153,6 +1154,7 @@ def get_users(
11531154
Args:
11541155
project_name (Optional[str]): Project name.
11551156
usernames (Optional[Iterable[str]]): Filter by usernames.
1157+
emails (Optional[Iterable[str]]): Filter by emails.
11561158
fields (Optional[Iterable[str]]): Fields to be queried
11571159
for users.
11581160
@@ -1167,6 +1169,22 @@ def get_users(
11671169
return
11681170
filters["userNames"] = list(usernames)
11691171

1172+
if emails is not None:
1173+
emails = set(emails)
1174+
if not emails:
1175+
return
1176+
1177+
major, minor, patch, _, _ = self.server_version_tuple
1178+
emails_filter_available = (major, minor, patch) > (1, 7, 3)
1179+
if not emails_filter_available:
1180+
server_version = self.get_server_version()
1181+
raise ValueError(
1182+
"Filtering by emails is not supported by"
1183+
f" server version {server_version}."
1184+
)
1185+
1186+
filters["emails"] = list(emails)
1187+
11701188
if project_name is not None:
11711189
filters["projectName"] = project_name
11721190

0 commit comments

Comments
 (0)