User

a class-based approach to interacting with Users

Class Errors


source

DownloadAvatar_NoAvatarKey

 DownloadAvatar_NoAvatarKey (domo_instance, user_id)

base exception


source

CreateUser_MissingRole

 CreateUser_MissingRole (domo_instance, email_address)

base exception

Domo User


source

DomoUser

 DomoUser (auth:domolibrary.client.DomoAuth.DomoAuth, id:str,
           display_name:str=None, email_address:str=None,
           role_id:str=None, department:str=None, title:str=None,
           avatar_key:str=None, password:str=None, phone_number:str=None,
           web_landing_page:str=None, web_mobile_landing_page:str=None,
           employee_id:str=None, employee_number:str=None,
           hire_date:str=None, reports_to:str=None,
           publisher_domain:str=None, subscriber_domain:str=None,
           virtual_user_id:str=None, created_dt:datetime.datetime=None,
           last_activity_dt:datetime.datetime=None,
           custom_attributes:dict=<factory>, role:Any=None,
           domo_api_clients:List[Any]=None,
           domo_access_tokens:List[Any]=None)

a class for interacting with a Domo User

sample implementation of get_by_id

domo_user = await DomoUser.get_by_id(user_id=user_id, auth=auth, return_raw=False)
domo_user
DomoUser(id='987822803', display_name='test_pdp2@sony.com - via dl 2023-05-05', email_address='test_pdp2@sony.com', role_id=2097317660, department=None, title=None, avatar_key='/api/content/v1/avatar/USER/987822803', phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2023, 5, 5, 17, 9, 33), last_activity_dt=datetime.datetime(2024, 1, 22, 21, 48, 7, 691000), custom_attributes={}, role=DomoRole(id=2097317660, name='Community_Default_Priviliged', description='Full access except for editing users and settings owners', is_system_role=0, is_default_role=None, grants=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None)
img = await domo_user.download_avatar(
    folder_path="../test/", img_name="cls_sample.png", return_raw=False
)

img

DomoUser CRUD

update properties

users = (await user_routes.get_all_users(auth=auth)).response
user = next((user for user in users if 'test' in user['displayName'] ))

domo_user = await DomoUser.get_by_id(user_id = user['id'], auth = auth)

property_ls = [
    UserProperty(UserProperty_Type.display_name, "test 3"),
    UserProperty(UserProperty_Type.email_address, "test33@test.com"),
    UserProperty(UserProperty_Type.role_id, 5),
]

try:
    await domo_user.update_properties(property_ls=property_ls)
except User_CrudError as e:
    print(e)
🛑  User_CrudError 🛑 - function: get_traceback || 1149821919 || status 400 || Bad Request at domo-community

CREATE and DELETE User

domo_user = None
try:
    domo_user = await DomoUser.create(
        auth = auth,
        email_address="test4@test.com",
        display_name = 'tony the tiger',
        role_id = 3,
        debug_api=False,
    )

    print(domo_user)

except User_CrudError as e:
    print(e)
🛑  User_CrudError 🛑 - function: get_traceback || status 400 || Bad Request - does this user test4@test.com already exist? at domo-community
1216550715
try:
    if domo_user:
        domo_user.delete()

except User_CrudError as e:
    print(e)

reset password

user_id = 1216550715

domo_user = await DomoUser.get_by_id(user_id = user_id , auth = auth)

avatar = Image.from_image_file("images/128618865.png")

await domo_user.upload_avatar(avatar=avatar, return_raw=False)

User Auth - DSO, access tokens and client_ids

await auth.who_am_i()
domo_user = await DomoUser.get_by_id(user_id = auth.user_id, auth = auth)

await domo_user.get_access_tokens(return_raw = False)
retry decorator attempt - 1 - Server disconnected without sending a response.
retry decorator attempt - 1 - Server disconnected without sending a response.
[DomoAccessToken(id=185855, name='jesus_github', owner=DomoUser(id='1893952720', display_name='Jae Wilson1', email_address='jae@datacrew.space', role_id=810756122, department='Business Improvement', title=None, avatar_key='/api/content/v1/avatar/USER/1893952720', phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2020, 5, 8, 17, 55, 18), last_activity_dt=datetime.datetime(2024, 11, 18, 20, 32, 27, 583000), custom_attributes={}, role=DomoRole(id=810756122, name='super_admin', description='all grants - updated on 2024-11-07', is_system_role=0, is_default_role=None, grants=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None), expiration_date=datetime.datetime(2033, 9, 23, 19, 35, 18)),
 DomoAccessToken(id=186039, name='dojo', owner=DomoUser(id='1893952720', display_name='Jae Wilson1', email_address='jae@datacrew.space', role_id=810756122, department='Business Improvement', title=None, avatar_key='/api/content/v1/avatar/USER/1893952720', phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2020, 5, 8, 17, 55, 18), last_activity_dt=datetime.datetime(2024, 11, 18, 20, 32, 27, 583000), custom_attributes={}, role=DomoRole(id=810756122, name='super_admin', description='all grants - updated on 2024-11-07', is_system_role=0, is_default_role=None, grants=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None), expiration_date=datetime.datetime(2033, 10, 15, 12, 6, 1)),
 DomoAccessToken(id=186722, name='tutorial', owner=DomoUser(id='1893952720', display_name='Jae Wilson1', email_address='jae@datacrew.space', role_id=810756122, department='Business Improvement', title=None, avatar_key='/api/content/v1/avatar/USER/1893952720', phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2020, 5, 8, 17, 55, 18), last_activity_dt=datetime.datetime(2024, 11, 18, 20, 32, 27, 583000), custom_attributes={}, role=DomoRole(id=810756122, name='super_admin', description='all grants - updated on 2024-11-07', is_system_role=0, is_default_role=None, grants=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None), expiration_date=datetime.datetime(2024, 3, 24, 3, 10, 4)),
 DomoAccessToken(id=187208, name='delete me', owner=DomoUser(id='1893952720', display_name='Jae Wilson1', email_address='jae@datacrew.space', role_id=810756122, department='Business Improvement', title=None, avatar_key='/api/content/v1/avatar/USER/1893952720', phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2020, 5, 8, 17, 55, 18), last_activity_dt=datetime.datetime(2024, 11, 18, 20, 32, 27, 583000), custom_attributes={}, role=DomoRole(id=810756122, name='super_admin', description='all grants - updated on 2024-11-07', is_system_role=0, is_default_role=None, grants=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None), expiration_date=datetime.datetime(2024, 4, 26, 22, 29, 50)),
 DomoAccessToken(id=187688, name='sudo_test', owner=DomoUser(id='1893952720', display_name='Jae Wilson1', email_address='jae@datacrew.space', role_id=810756122, department='Business Improvement', title=None, avatar_key='/api/content/v1/avatar/USER/1893952720', phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2020, 5, 8, 17, 55, 18), last_activity_dt=datetime.datetime(2024, 11, 18, 20, 32, 27, 583000), custom_attributes={}, role=DomoRole(id=810756122, name='super_admin', description='all grants - updated on 2024-11-07', is_system_role=0, is_default_role=None, grants=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None), expiration_date=datetime.datetime(2024, 7, 3, 22, 11, 19)),
 DomoAccessToken(id=188373, name='alpha_acess', owner=DomoUser(id='1893952720', display_name='Jae Wilson1', email_address='jae@datacrew.space', role_id=810756122, department='Business Improvement', title=None, avatar_key='/api/content/v1/avatar/USER/1893952720', phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2020, 5, 8, 17, 55, 18), last_activity_dt=datetime.datetime(2024, 11, 18, 20, 32, 27, 583000), custom_attributes={}, role=DomoRole(id=810756122, name='super_admin', description='all grants - updated on 2024-11-07', is_system_role=0, is_default_role=None, grants=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None), expiration_date=datetime.datetime(2034, 9, 17, 21, 33, 43))]

DomoUsers


source

DomoUsers

 DomoUsers (auth:domolibrary.client.DomoAuth.DomoAuth,
            users:List[__main__.DomoUser]=None,
            logger:Optional[domolibrary.client.Logger.Logger]=None)

a class for searching for Users

DomoUser_NoSearch

 DomoUser_NoSearch (message:str, domo_instance, cls_instance=None,
                    cls=None)

base exception

domo_users = DomoUsers(auth = auth)

await domo_users.search_by_email(
    email="jae@datacrew.space",
    only_allow_one=True,
    return_raw=False,
    debug_api=False,
    suppress_no_results_error= False
)
DomoUser(id='1893952720', display_name='Jae Wilson1', email_address='jae@datacrew.space', role_id=810756122, department='Business Improvement', title=None, avatar_key='/api/content/v1/avatar/USER/1893952720', phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2020, 5, 8, 17, 55, 18), last_activity_dt=datetime.datetime(2024, 11, 18, 20, 32, 27, 583000), custom_attributes={}, role=None, domo_api_clients=None, domo_access_tokens=None)
await DomoUsers.by_id(
    auth=auth,
    user_ids=[domo_user.id],
    only_allow_one=False,
    return_raw=False,
)
[DomoUser(id='1893952720', display_name='Jae Wilson1', email_address='jae@datacrew.space', role_id=810756122, department='Business Improvement', title=None, avatar_key='/api/content/v1/avatar/USER/1893952720', phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2020, 5, 8, 17, 55, 18), last_activity_dt=datetime.datetime(2024, 11, 18, 20, 32, 27, 583000), custom_attributes={}, role=None, domo_api_clients=None, domo_access_tokens=None)]
try:
    await DomoUsers.virtual_user_by_subscriber_instance(
        auth=auth,
        subscriber_instance_ls=[os.environ["DOMO_INSTANCE"], "test"],
        # return_raw=True,
        debug_api=False,
    )
except GetUser_Error as e:
    print(e)

CRUD Users

try:
    await DomoUsers.create_user(
        auth=auth,
        display_name="test_and_delete",
        email_address="test26@test.com",
        role_id=5,
    )
except User_CrudError as e:
    print(e)
🛑  User_CrudError 🛑 - function: get_traceback || status 400 || Bad Request - does this user test26@test.com already exist? at domo-community
domo_users = DomoUsers(auth = auth)

await domo_users.upsert(
    email_address="test4@test.com",
    display_name=f"test - updated via dl {dt.date.today()}",
    role_id=3,
)
DomoUser(id='233216585', display_name='test - updated via dl 2024-11-18', email_address='test4@test.com', role_id=3, department=None, title=None, avatar_key='/api/content/v1/avatar/USER/233216585', phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2024, 11, 18, 17, 26, 50), last_activity_dt=None, custom_attributes={}, role=DomoRole(id=3, name='Editor', description='Can edit Cards, Pages, DataSets, and Dataflows', is_system_role=True, is_default_role=None, grants=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None)