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")