updated route sites available

This commit is contained in:
2025-04-09 17:44:06 +03:00
parent 9b02620d1d
commit 531e8b2e39
11 changed files with 173 additions and 134 deletions

View File

@@ -431,3 +431,48 @@ def authentication_page_valid(
status_code=status.HTTP_202_ACCEPTED,
headers=headers,
)
@auth_route.get(
path="/sites/list",
summary="Verify if page is valid returns application avaliable",
description="Verify if page is valid returns application avaliable",
)
def authentication_page_valid(
request: Request,
language: str = Header(None, alias="language"),
domain: str = Header(None, alias="domain"),
tz: str = Header(None, alias="timezone"),
):
"""
Verify if page is valid returns application that can user reach
page: { url = /building/create}
result: { "sites": ['/dashboard', '/building/create'] }
"""
token = request.headers.get(api_config.ACCESS_TOKEN_TAG, None)
headers = {
"language": language or "",
"domain": domain or "",
"eys-ext": f"{str(uuid.uuid4())}",
"tz": tz or "GMT+3",
"token": token,
}
if not domain or not language:
return JSONResponse(
content={"error": "EYS_0003"},
status_code=status.HTTP_406_NOT_ACCEPTABLE,
headers=headers,
)
result = AuthHandlers.PageHandlers.retrieve_valid_sites_via_token(access_token=token)
if not result:
return JSONResponse(
content={"error": "EYS_0004"},
status_code=status.HTTP_406_NOT_ACCEPTABLE,
headers=headers,
)
return JSONResponse(
content={"sites": result},
status_code=status.HTTP_202_ACCEPTED,
headers=headers,
)

View File

@@ -367,12 +367,10 @@ class LoginHandler:
request: FastAPI request object
data: Request body containing login credentials
{
"data": {
"domain": "evyos.com.tr",
"access_key": "karatay.berkay.sup@evyos.com.tr",
"password": "string",
"remember_me": false
}
"domain": "evyos.com.tr",
"access_key": "karatay.berkay.sup@evyos.com.tr",
"password": "string",
"remember_me": false
}
Returns:
SuccessResponse containing authentication token and user info
@@ -709,7 +707,15 @@ class PasswordHandler:
class PageHandlers:
@classmethod
def retrieve_valid_page_via_token(cls, access_token: str, page_url: str):
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 application := result.selected_company.reachable_app_codes.get(page_url, None):
@@ -720,6 +726,23 @@ class PageHandlers:
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:
return result.selected_company.reachable_app_codes.keys()
elif result.is_occupant:
return result.selected_company.reachable_app_codes.keys()
raise ValueError("EYS_0013")
class AuthHandlers:
LoginHandler: LoginHandler = LoginHandler()