Skip to content

Commit d9464b9

Browse files
author
Val Brodsky
committed
Get role id by name
1 parent 3af4500 commit d9464b9

File tree

2 files changed

+50
-1
lines changed

2 files changed

+50
-1
lines changed

libs/labelbox/src/labelbox/schema/user_group.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from collections import defaultdict
22
from enum import Enum
3-
from typing import Iterator, Set
3+
from typing import Iterator, List, Set
44

55
from lbox.exceptions import (
66
MalformedQueryException,
@@ -317,6 +317,9 @@ def delete(self) -> bool:
317317
)
318318
return result["deleteUserGroup"]["success"]
319319

320+
def import_members(self, role: str, emails: List[str]):
321+
pass
322+
320323
def get_user_groups(self) -> Iterator["UserGroup"]:
321324
"""
322325
Gets all user groups in Labelbox.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
from typing import List, Optional
2+
3+
from lbox.exceptions import ResourceNotFoundError
4+
5+
from labelbox.client import Client
6+
from labelbox.pagination import PaginatedCollection
7+
8+
9+
class UserGroupUpload:
10+
def __init__(self, client: Client):
11+
self.client = client
12+
13+
def upload_members(self, group_id: str, role: str, emails: List[str]):
14+
role_id = self._get_role_id(role)
15+
if role_id is None:
16+
raise ResourceNotFoundError(message="The role does not exist.")
17+
18+
def _get_role_id(self, role_name: str) -> Optional[str]:
19+
role_id = None
20+
query = """query GetAvailableUserRolesPyPi {
21+
roles(skip: %d, first: %d) {
22+
id
23+
organizationId
24+
name
25+
description
26+
}
27+
}
28+
"""
29+
30+
result = PaginatedCollection(
31+
client=self.client,
32+
query=query,
33+
params={},
34+
dereferencing=["roles"],
35+
obj_class=lambda _, data: data, # type: ignore
36+
)
37+
if result is None:
38+
raise ResourceNotFoundError(
39+
message="Could not find any valid roles."
40+
)
41+
for role in result:
42+
if role["name"].strip() == role_name.strip():
43+
role_id = role["id"]
44+
break
45+
46+
return role_id

0 commit comments

Comments
 (0)