35 lines
1.9 KiB
Python
35 lines
1.9 KiB
Python
from Extensions.OnMemory.redis_handlers import RedisHandlers
|
|
|
|
|
|
class PageHandlers:
|
|
|
|
@classmethod
|
|
def retrieve_valid_page_via_token(cls, access_token: str, page_url: str) -> str:
|
|
"""
|
|
Retrieve valid page via token. {access_token: "string", page_url: "string"} | Results: str(application)
|
|
"""
|
|
if result := RedisHandlers.get_object_from_redis(access_token=access_token):
|
|
if result.is_employee:
|
|
if result.selected_company and result.selected_company.reachable_app_codes:
|
|
if application := result.selected_company.reachable_app_codes.get(page_url, None):
|
|
return application
|
|
elif result.is_occupant:
|
|
if result.selected_occupant and result.selected_occupant.reachable_app_codes:
|
|
if application := result.selected_occupant.reachable_app_codes.get(page_url, None):
|
|
return application
|
|
raise ValueError("EYS_0013")
|
|
|
|
@classmethod
|
|
def retrieve_valid_sites_via_token(cls, access_token: str) -> list:
|
|
""" Retrieve valid pages via token. {"access_token": "string"} | Results: list(sites) """
|
|
if result := RedisHandlers.get_object_from_redis(access_token=access_token):
|
|
if result.is_employee and result.selected_company:
|
|
employee_uuid = result.selected_company.get("employee_uu_id", "")
|
|
if reachable_app_codes_dict := result.reachable_app_codes:
|
|
return reachable_app_codes_dict.get(employee_uuid, {}).keys()
|
|
elif result.is_occupant and result.selected_occupant:
|
|
living_space_uu_id = result.selected_occupant.get("build_living_space_uu_id", "")
|
|
if reachable_app_codes_dict := result.reachable_app_codes:
|
|
return reachable_app_codes_dict.get(living_space_uu_id, {}).keys()
|
|
raise ValueError("EYS_0013")
|