instructions and validations tested

This commit is contained in:
berkay 2025-02-06 00:22:15 +03:00
parent b67090087a
commit 378d016d0c
20 changed files with 631 additions and 143 deletions

View File

@ -7,55 +7,22 @@
<list default="true" id="b5202e0c-6ddf-4a56-a13a-e18798c4c7cf" name="Changes" comment=""> <list default="true" id="b5202e0c-6ddf-4a56-a13a-e18798c4c7cf" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ApiLayers/AllConfigs/Redis/configs.py" beforeDir="false" afterPath="$PROJECT_DIR$/ApiLayers/AllConfigs/Redis/configs.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/ApiLayers/AllConfigs/Redis/configs.py" beforeDir="false" afterPath="$PROJECT_DIR$/ApiLayers/AllConfigs/Redis/configs.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ApiLayers/ApiServices/Cluster/create_router.py" beforeDir="false" afterPath="$PROJECT_DIR$/ApiLayers/ApiServices/Cluster/create_router.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/DockerApiServices/AuthServiceApi/events_file.py" beforeDir="false" afterPath="$PROJECT_DIR$/DockerApiServices/AuthServiceApi/events_file.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ApiLayers/ApiServices/Token/token_handler.py" beforeDir="false" afterPath="$PROJECT_DIR$/ApiLayers/ApiServices/Token/token_handler.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/DockerApiServices/EventServiceApi/events_file.py" beforeDir="false" afterPath="$PROJECT_DIR$/DockerApiServices/EventServiceApi/events_file.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ApiLayers/ApiValidations/Response/default_response.py" beforeDir="false" afterPath="$PROJECT_DIR$/ApiLayers/ApiValidations/Response/default_response.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/DockerApiServices/ValidationServiceApi/Dockerfile" beforeDir="false" afterPath="$PROJECT_DIR$/DockerApiServices/ValidationServiceApi/Dockerfile" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ApiLayers/LanguageModels/Response/accounts/accounts.py" beforeDir="false" afterPath="$PROJECT_DIR$/ApiLayers/LanguageModels/Response/accounts/accounts.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/DockerApiServices/ValidationServiceApi/events_file.py" beforeDir="false" afterPath="$PROJECT_DIR$/DockerApiServices/ValidationServiceApi/events_file.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/authentication/auth/info.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/authentication/auth/info.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Events/AllEvents/events/account/api_events.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/account/api_events.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/__init__.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/__init__.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/account/account_records.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/account/account_records.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/account/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/account/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/account/info.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/account/info.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Events/AllEvents/events/account/info.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/account/info.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/account/models.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/account/models.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/address/address.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/address/address.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/address/api_events.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/address/api_events.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/address/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/address/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/address/info.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/address/info.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Events/AllEvents/events/address/info.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/address/info.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/building/build_area/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/building/build_area/function_handlers.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Events/AllEvents/events_file.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events_file.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/building/build_parts/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/building/build_parts/function_handlers.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Events/AllEvents/validations/validation/api_events.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/validations/validation/api_events.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/building/build_sites/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/building/build_sites/function_handlers.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Events/AllEvents/validations/validation/cluster.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/validations/validation/cluster.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/building/build_types/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/building/build_types/function_handlers.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Events/AllEvents/validations/validation/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/validations/validation/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/building/building/api_events.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/building/building/api_events.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Events/AllEvents/validations/validation/models.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/validations/validation/models.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/building/building/building.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/building/building/building.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/building/building/cluster.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/building/building/cluster.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/building/building/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/building/building/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/building/building/info.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/building/building/info.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/building/living_spaces/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/building/living_spaces/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/company/company/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/company/company/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/company/department/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/company/department/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/company/duties/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/company/duties/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/company/duty/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/company/duty/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/company/employee/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/company/employee/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/company/staff/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/company/staff/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/decision_book/book_payment/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/decision_book/book_payment/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/decision_book/decision_book/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/decision_book/decision_book/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/decision_book/decision_book_items/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/decision_book/decision_book_items/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/decision_book/decision_book_items_debits/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/decision_book/decision_book_items_debits/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/decision_book/decision_book_person/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/decision_book/decision_book_person/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/decision_book/invitations/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/decision_book/invitations/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/identity/people/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/identity/people/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/identity/users/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/identity/users/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/project_decision_book/project_decision_book/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/project_decision_book/project_decision_book/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/project_decision_book/project_decision_book_items/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/project_decision_book/project_decision_book_items/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/events/project_decision_book/project_decision_book_person/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/events/project_decision_book/project_decision_book_person/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/template/template/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/template/template/function_handlers.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/AllEvents/validations/validation/validation.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/validations/validation/validation.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Events/AllEvents/validations/validation/validation.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/validations/validation/validation.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/Engine/abstract_class.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/Engine/abstract_class.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Events/Engine/abstract_class.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/Engine/abstract_class.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/Engine/set_defaults/prepare_redis_items.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/Engine/set_defaults/prepare_redis_items.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Events/Engine/set_defaults/prepare_redis_items.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/Engine/set_defaults/prepare_redis_items.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/Engine/set_defaults/setClusters.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/Engine/set_defaults/setClusters.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Events/Engine/set_defaults/setClusters.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/Engine/set_defaults/setClusters.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Events/base_request_model.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/base_request_model.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Services/PostgresDb/Models/pagination.py" beforeDir="false" afterPath="$PROJECT_DIR$/Services/PostgresDb/Models/pagination.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Services/PostgresDb/how_to.py" beforeDir="false" afterPath="$PROJECT_DIR$/Services/PostgresDb/how_to.py" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@ -79,7 +79,9 @@ class RedisCategoryPageInfoKeysAction:
value : {RedisCategoryPageInfoKeys.PAGE_INFO} value : {RedisCategoryPageInfoKeys.PAGE_INFO}
""" """
page_index: str = f"{RedisCategoryPageInfoKeys.PAGE_MENU_INDEX}:{RedisCategoryPageInfoKeys.PAGE_URL}" page_index: str = (
f"{RedisCategoryPageInfoKeys.PAGE_MENU_INDEX}:{RedisCategoryPageInfoKeys.PAGE_URL}"
)
page_mapper_key: str = ( page_mapper_key: str = (
f"{RedisCategoryPageInfoKeys.PAGE_MENU_INDEX}:{RedisCategoryPageInfoKeys.PAGE_URL}" f"{RedisCategoryPageInfoKeys.PAGE_MENU_INDEX}:{RedisCategoryPageInfoKeys.PAGE_URL}"

View File

@ -0,0 +1,227 @@
from Events.Engine import MethodToEvent
from Events.Engine.abstract_class import PageInfo
# from .account_records import (
# AccountRecordsUpdateEventMethods,
# AccountRecordsCreateEventMethods,
# AccountRecordsListEventMethods,
# )
cluster_name = "AccountCluster"
prefix = "/accounts"
class AccountRecordsUpdateEventMethods(MethodToEvent):
pass
class AccountRecordsCreateEventMethods(MethodToEvent):
pass
class AccountRecordsListEventMethods(MethodToEvent):
pass
class LanguageModels:
SITE_URL: str
COMPONENT: str = "Table"
PREFIX_URL: str = ""
PAGE_INFO: dict
def as_dict(self):
return {
"SITE_URL": self.SITE_URL,
"COMPONENT": self.COMPONENT,
"PREFIX_URL": self.PREFIX_URL,
"PAGE_INFO": self.PAGE_INFO,
}
account_language_update_models = LanguageModels()
account_language_update_models.COMPONENT = "Link"
account_language_update_models.SITE_URL = f"/update?site={cluster_name}"
account_language_update_models.PREFIX_URL = (
f"{prefix}{AccountRecordsUpdateEventMethods.URL}"
)
account_language_update_models.PAGE_INFO = {
"en": {
"page": "Update Account Records",
},
"tr": {
"page": "Hesap Kayıdı Güncelle",
},
}
account_language_model_as_dict = account_language_update_models.as_dict()
account_language_created_models = LanguageModels()
account_language_created_models.COMPONENT = "Link"
account_language_created_models.SITE_URL = f"/create?site={cluster_name}"
account_language_created_models.PREFIX_URL = (
f"{prefix}{AccountRecordsCreateEventMethods.URL}"
)
account_language_created_models.PAGE_INFO = {
"en": {
"page": "Create Account Records",
},
"tr": {"page": "Hesap Kayıdı Oluştur"},
}
account_language_created_models_as_dict = account_language_created_models.as_dict()
account_language_list_models = LanguageModels()
account_language_list_models.COMPONENT = "Table"
account_language_list_models.SITE_URL = f"/list?site={cluster_name}"
account_language_list_models.PREFIX_URL = (
f"{prefix}{AccountRecordsListEventMethods.URL}"
)
account_language_list_models.PAGE_INFO = {
"en": {
"page": "List Account Records",
},
"tr": {
"page": "Hesap Kayıtlarını Listele",
},
}
account_language_list_models_as_dict = account_language_list_models.as_dict()
account_language_create_models = LanguageModels()
account_language_create_models.COMPONENT = "Form"
account_language_create_models.SITE_URL = f"/create?site={cluster_name}"
account_language_create_models.PREFIX_URL = (
f"{prefix}{AccountRecordsListEventMethods.URL}"
)
account_language_create_models.PAGE_INFO = {
"en": {"page": "List Account Records", "button:": "Create"},
"tr": {"page": "Hesap Kayıtlarını Listele", "button:": "Oluştur"},
}
account_language_create_models_as_dict = account_language_create_models.as_dict()
account_language_update_form_models = LanguageModels()
account_language_update_form_models.COMPONENT = "Form"
account_language_update_form_models.SITE_URL = f"/update?site={cluster_name}"
account_language_update_form_models.PREFIX_URL = (
f"{prefix}{AccountRecordsUpdateEventMethods.URL}"
)
account_language_update_form_models.PAGE_INFO = {
"en": {"page": "Update Account Records", "button:": "Update"},
"tr": {"page": "Hesap Kayıdı Güncelle", "button:": "Güncelle"},
}
account_language_update_form_models_as_dict = (
account_language_update_form_models.as_dict()
)
create_key = f"{prefix}{AccountRecordsCreateEventMethods.URL}"
update_key = f"{prefix}{AccountRecordsUpdateEventMethods.URL}"
list_key = f"{prefix}{AccountRecordsListEventMethods.URL}"
dashboard_page_info = PageInfo(
name=f"{cluster_name}",
url=f"/dashboard?site={cluster_name}",
icon="Building",
instructions={
str(list_key): {
"headers": {
"store": True,
"url": "/validations/header",
"data": {"event_code": f"{prefix}/list", "asked_field": "headers"},
},
"data": {
"store": True,
"url": f"{prefix}/list",
"data": dict(page=1, limit=1),
},
},
},
page_info={
"page": {
"en": "Account Records for reaching user all types account information",
"tr": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları",
},
},
endpoints={
str(update_key): AccountRecordsUpdateEventMethods.retrieve_all_event_keys(),
str(create_key): AccountRecordsCreateEventMethods.retrieve_all_event_keys(),
str(list_key): AccountRecordsListEventMethods.retrieve_all_event_keys(),
},
language_models={
account_language_update_models.PREFIX_URL: account_language_model_as_dict,
account_language_created_models.PREFIX_URL: account_language_created_models_as_dict,
account_language_list_models.PREFIX_URL: account_language_list_models_as_dict,
},
)
create_page_info = PageInfo(
name=f"{cluster_name}",
url=f"/create?site={cluster_name}",
icon="Building",
instructions={
str(create_key): {
"validation": {
"store": True,
"url": "/validations/validation",
"data": {"event_code": f"{prefix}/create", "asked_field": "validation"},
},
"headers": {
"store": True,
"url": "/validations/header",
"data": {"event_code": f"{prefix}/create", "asked_field": "headers"},
},
},
},
page_info={
"page": {
"en": "Account Records creating for user all types account information",
"tr": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları oluştur",
},
},
endpoints={
str(create_key): AccountRecordsCreateEventMethods.retrieve_all_event_keys(),
},
language_models={
account_language_create_models.PREFIX_URL: account_language_create_models_as_dict,
},
)
update_page_info = PageInfo(
name=f"{cluster_name}",
url=f"/update?site={cluster_name}",
icon="Building",
instructions={
str(update_key): {
"validation": {
"store": True,
"url": "/validations/validation",
"data": {"event_code": f"{prefix}/update", "asked_field": "validation"},
},
"headers": {
"store": True,
"url": "/validations/header",
"data": {"event_code": f"{prefix}/update", "asked_field": "headers"},
},
},
},
page_info={
"page": {
"en": "Account Records updating for user all types account information",
"tr": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları güncelle",
},
},
endpoints={
str(update_key): AccountRecordsUpdateEventMethods.retrieve_all_event_keys(),
},
language_models={
account_language_update_form_models.PREFIX_URL: account_language_update_form_models_as_dict,
},
)
account_page_info = {
f"/dashboard?site={cluster_name}": dashboard_page_info,
f"/create?site={cluster_name}": create_page_info,
f"/update?site={cluster_name}": update_page_info,
}

View File

@ -1,3 +1,11 @@
import Events.AllEvents.authentication as auths_events import Events.AllEvents.authentication as auths_events
events_list = (auths_events,) events_list = (auths_events,)
def retrieve_cluster_by_name(cluster_name: str):
for module in events_list:
if hasattr(module, cluster_name):
return getattr(module, cluster_name, None)
return

View File

@ -1,3 +1,11 @@
import Events.AllEvents.events as events_events import Events.AllEvents.events as events_events
events_list = (events_events,) events_list = (events_events,)
def retrieve_cluster_by_name(cluster_name: str):
for module in events_list:
if hasattr(module, cluster_name):
return getattr(module, cluster_name, None)
return

View File

@ -32,6 +32,8 @@ COPY Events/AllEvents/validations /app/Events/AllEvents/validations
COPY Events/base_request_model.py /app/Events/base_request_model.py COPY Events/base_request_model.py /app/Events/base_request_model.py
COPY DockerApiServices/ValidationServiceApi/events_file.py /app/Events/AllEvents/events_file.py COPY DockerApiServices/ValidationServiceApi/events_file.py /app/Events/AllEvents/events_file.py
COPY Events/AllEvents /app/Events/JustEvents
COPY Events/AllEvents/just_events_file.py /app/Events/JustEvents/events_file.py
# Set Python path to include app directory # Set Python path to include app directory
ENV PYTHONPATH=/app \ ENV PYTHONPATH=/app \

View File

@ -1,3 +1,10 @@
import Events.AllEvents.validations as validations_events import Events.AllEvents.validations as validations_events
events_list = (validations_events,) events_list = (validations_events,)
def retrieve_cluster_by_name(cluster_name: str):
for module in events_list:
if hasattr(module, cluster_name):
return getattr(module, cluster_name, None)
return

View File

@ -21,8 +21,8 @@ from .function_handlers import (
# Auth Login # Auth Login
account_list_super_user_event = Event( account_list_super_user_event = Event(
name="account_insert_super_user_event", name="account_list_super_user_event",
key="36a165fe-a2f3-437b-80ee-1ee44670fe70", key="7192c2aa-5352-4e36-98b3-dafb7d036a3d",
request_validator=AccountRequestValidators.ListAccountRecord, request_validator=AccountRequestValidators.ListAccountRecord,
# response_validator=SelectResponseAccount, # response_validator=SelectResponseAccount,
# language_models=[AccountRecords.__language_model__], # language_models=[AccountRecords.__language_model__],
@ -39,7 +39,7 @@ account_list_super_user_event.endpoint_callable = (
account_insert_super_user_event = Event( account_insert_super_user_event = Event(
name="account_insert_super_user_event", name="account_insert_super_user_event",
key="3aa46155-72bc-4370-b4e7-b937b0f9b893", key="31f4f32f-0cd4-4995-8a6a-f9f56335848a",
request_validator=AccountRequestValidators.InsertAccountRecord, request_validator=AccountRequestValidators.InsertAccountRecord,
# response_validator=SelectResponseAccount, # response_validator=SelectResponseAccount,
# language_models=[AccountRecords.__language_model__], # language_models=[AccountRecords.__language_model__],
@ -56,7 +56,7 @@ account_insert_super_user_event.endpoint_callable = (
account_update_super_user_event = Event( account_update_super_user_event = Event(
name="account_insert_super_user_event", name="account_insert_super_user_event",
key="204d3b21-1da6-4739-9f45-36492636c770", key="208e6273-17ef-44f0-814a-8098f816b63a",
request_validator=AccountRequestValidators.UpdateAccountRecord, request_validator=AccountRequestValidators.UpdateAccountRecord,
# response_validator=SelectResponseAccount, # response_validator=SelectResponseAccount,
# language_models=[AccountRecords.__language_model__], # language_models=[AccountRecords.__language_model__],
@ -65,6 +65,7 @@ account_update_super_user_event = Event(
description="Update a specific account by validation list options and queries.", description="Update a specific account by validation list options and queries.",
) )
account_update_super_user_event.endpoint_callable = ( account_update_super_user_event.endpoint_callable = (
AccountUpdateEventMethods.account_records_update AccountUpdateEventMethods.account_records_update
) )

View File

@ -5,13 +5,9 @@ from .account_records import (
AccountRecordsListEventMethods, AccountRecordsListEventMethods,
) )
cluster_name = "AccountCluster"
page_type=f"/dashboard?site={cluster_name}"
cluster_name = "AccountCluster"
prefix = "/accounts" prefix = "/accounts"
create_key = f"{prefix}{AccountRecordsCreateEventMethods.URL}"
update_key = f"{prefix}{AccountRecordsUpdateEventMethods.URL}"
list_key = f"{prefix}{AccountRecordsListEventMethods.URL}"
class LanguageModels: class LanguageModels:
@ -19,91 +15,135 @@ class LanguageModels:
COMPONENT: str = "Table" COMPONENT: str = "Table"
PREFIX_URL: str = "" PREFIX_URL: str = ""
PAGE_INFO: dict PAGE_INFO: dict
STATIC_PATH: str = "events"
def as_dict(self): def as_dict(self):
return { return {
"SITE_URL": self.SITE_URL, "SITE_URL": f"/{self.STATIC_PATH}{self.SITE_URL}",
"COMPONENT": self.COMPONENT, "COMPONENT": self.COMPONENT,
"PREFIX_URL": self.PREFIX_URL, "PREFIX_URL": self.PREFIX_URL,
"PAGE_INFO": self.PAGE_INFO, "PAGE_INFO": self.PAGE_INFO,
} }
create_key = f"{prefix}{AccountRecordsCreateEventMethods.URL}"
update_key = f"{prefix}{AccountRecordsUpdateEventMethods.URL}"
list_key = f"{prefix}{AccountRecordsListEventMethods.URL}"
account_language_update_models = LanguageModels() account_language_update_models = LanguageModels()
account_language_update_models.COMPONENT = "Link" account_language_update_models.COMPONENT = "Link"
account_language_update_models.SITE_URL=f"/update?site={cluster_name}" account_language_update_models.SITE_URL = f"/update?site={cluster_name}"
account_language_update_models.PREFIX_URL=f"{prefix}{AccountRecordsUpdateEventMethods.URL}" account_language_update_models.PREFIX_URL = (
update_key
)
account_language_update_models.PAGE_INFO = { account_language_update_models.PAGE_INFO = {
"en": {"page": "Update Account Records",}, "en": {
"tr": {"page": "Hesap Kayıdı Güncelle",}, "page": "Update Account Records",
} },
"tr": {
"page": "Hesap Kayıdı Güncelle",
},
}
account_language_model_as_dict = account_language_update_models.as_dict() account_language_model_as_dict = account_language_update_models.as_dict()
account_language_created_models = LanguageModels() account_language_created_models = LanguageModels()
account_language_created_models.COMPONENT = "Link" account_language_created_models.COMPONENT = "Link"
account_language_created_models.SITE_URL=f"/create?site={cluster_name}" account_language_created_models.SITE_URL = f"/create?site={cluster_name}"
account_language_created_models.PREFIX_URL=f"{prefix}{AccountRecordsCreateEventMethods.URL}" account_language_created_models.PREFIX_URL = (
create_key
)
account_language_created_models.PAGE_INFO = { account_language_created_models.PAGE_INFO = {
"en": {"page": "Create Account Records",}, "en": {
"tr": {"page": "Hesap Kayıdı Oluştur"}, "page": "Create Account Records",
} },
"tr": {"page": "Hesap Kayıdı Oluştur"},
}
account_language_created_models_as_dict = account_language_created_models.as_dict() account_language_created_models_as_dict = account_language_created_models.as_dict()
account_language_list_models = LanguageModels() account_language_list_models = LanguageModels()
account_language_list_models.COMPONENT = "Table" account_language_list_models.COMPONENT = "Table"
account_language_list_models.SITE_URL = f"/list?site={cluster_name}" account_language_list_models.SITE_URL = f"/dashboard?site={cluster_name}"
account_language_list_models.PREFIX_URL = f"{prefix}{AccountRecordsListEventMethods.URL}" account_language_list_models.PREFIX_URL = (
list_key
)
account_language_list_models.PAGE_INFO = { account_language_list_models.PAGE_INFO = {
"en": {"page": "List Account Records",}, "en": {
"tr": {"page": "Hesap Kayıtlarını Listele",}, "page": "List Account Records",
} },
"tr": {
"page": "Hesap Kayıtlarını Listele",
},
}
account_language_list_models_as_dict = account_language_list_models.as_dict() account_language_list_models_as_dict = account_language_list_models.as_dict()
account_language_create_models = LanguageModels() account_language_create_models = LanguageModels()
account_language_create_models.COMPONENT = "Form" account_language_create_models.COMPONENT = "Form"
account_language_create_models.SITE_URL = f"/create?site={cluster_name}" account_language_create_models.SITE_URL = f"/create?site={cluster_name}"
account_language_create_models.PREFIX_URL = f"{prefix}{AccountRecordsListEventMethods.URL}" account_language_create_models.PREFIX_URL = (
create_key
)
account_language_create_models.PAGE_INFO = { account_language_create_models.PAGE_INFO = {
"en": {"page": "List Account Records", "button:": "Create"}, "en": {"page": "List Account Records", "button:": "Create"},
"tr": {"page": "Hesap Kayıtlarını Listele", "button:": "Oluştur"}, "tr": {"page": "Hesap Kayıtlarını Listele", "button:": "Oluştur"},
} }
account_language_create_models_as_dict = account_language_create_models.as_dict() account_language_create_models_as_dict = account_language_create_models.as_dict()
account_language_update_form_models = LanguageModels() account_language_update_form_models = LanguageModels()
account_language_update_form_models.COMPONENT = "Form" account_language_update_form_models.COMPONENT = "Form"
account_language_update_form_models.SITE_URL=f"/update?site={cluster_name}" account_language_update_form_models.SITE_URL = f"/update?site={cluster_name}"
account_language_update_form_models.PREFIX_URL=f"{prefix}{AccountRecordsUpdateEventMethods.URL}" account_language_update_form_models.PREFIX_URL = (
update_key
)
account_language_update_form_models.PAGE_INFO = { account_language_update_form_models.PAGE_INFO = {
"en": {"page": "Update Account Records", "button:": "Update"}, "en": {"page": "Update Account Records", "button:": "Update"},
"tr": {"page": "Hesap Kayıdı Güncelle", "button:": "Güncelle"}, "tr": {"page": "Hesap Kayıdı Güncelle", "button:": "Güncelle"},
} }
account_language_update_form_models_as_dict = account_language_update_form_models.as_dict() account_language_update_form_models_as_dict = (
account_language_update_form_models.as_dict()
)
dashboard_page_info = PageInfo( dashboard_page_info = PageInfo(
name=f"{cluster_name}", name=f"{cluster_name}",
url=f"/dashboard?site={cluster_name}", url=f"/dashboard?site={cluster_name}",
icon="Building", icon="Building",
instructions={
"headers": {
"store": True, "url": "/validations/header", "data": {"event_code": f"/accounts/list", "asked_field": "headers"},
}
},
page_info={ page_info={
"page": { "en": {
"en": "Account Records for reaching user all types account information", "page": "Account Records for reaching user all types account information",
"tr": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları", },
"tr": {
"page": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları",
},
},
instructions={
str(list_key): {
"headers": {
"store": True,
"url": "/validations/header",
"data": {"event_code": f"{prefix}/list", "asked_field": "headers"},
},
"data": {
"store": True,
"url": f"{prefix}/list",
"data": dict(page=1, limit=1),
}, },
}, },
},
endpoints={ endpoints={
str(update_key): AccountRecordsUpdateEventMethods.retrieve_all_event_keys(), str(update_key): AccountRecordsUpdateEventMethods.retrieve_all_event_keys(),
str(create_key): AccountRecordsCreateEventMethods.retrieve_all_event_keys(), str(create_key): AccountRecordsCreateEventMethods.retrieve_all_event_keys(),
str(list_key): AccountRecordsListEventMethods.retrieve_all_event_keys(), str(list_key): AccountRecordsListEventMethods.retrieve_all_event_keys(),
}, },
language_models={ language_models={
account_language_update_models.PREFIX_URL: account_language_model_as_dict, str(list_key): {
account_language_created_models.PREFIX_URL: account_language_created_models_as_dict, str(update_key): account_language_model_as_dict,
account_language_list_models.PREFIX_URL: account_language_list_models_as_dict, str(create_key): account_language_created_models_as_dict,
str(list_key): account_language_list_models_as_dict,
}
}, },
) )
@ -112,24 +152,32 @@ create_page_info = PageInfo(
url=f"/create?site={cluster_name}", url=f"/create?site={cluster_name}",
icon="Building", icon="Building",
instructions={ instructions={
"validation": { str(create_key): {
"store": True, "url": "/validations/validation", "data": {"event_code": f"/accounts/create", "asked_field": "validation"}, "validation": {
}, "store": True,
"headers": { "url": "/validations/validation",
"store": True, "url": "/validations/header", "data": {"event_code": f"/accounts/create", "asked_field": "headers"}, "data": {"event_code": f"{prefix}/create", "asked_field": "validation"},
} },
}, "headers": {
page_info={ "store": True,
"page": { "url": "/validations/header",
"en": "Account Records creating for user all types account information", "data": {"event_code": f"{prefix}/create", "asked_field": "headers"},
"tr": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları oluştur",
}, },
}, },
},
page_info={
"en": {
"page": "Create Account Records for reaching user all types account information",
},
"tr": {
"page": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıt Oluştur",
},
},
endpoints={ endpoints={
str(create_key): AccountRecordsCreateEventMethods.retrieve_all_event_keys(), str(create_key): AccountRecordsCreateEventMethods.retrieve_all_event_keys(),
}, },
language_models={ language_models={
account_language_create_models.PREFIX_URL: account_language_create_models_as_dict, str(create_key): account_language_create_models_as_dict,
}, },
) )
@ -138,32 +186,38 @@ update_page_info = PageInfo(
url=f"/update?site={cluster_name}", url=f"/update?site={cluster_name}",
icon="Building", icon="Building",
instructions={ instructions={
"validation": { str(update_key): {
"store": True, "url": "/validations/validation", "data": {"event_code": f"/accounts/update", "asked_field": "validation"}, "validation": {
}, "store": True,
"headers": { "url": "/validations/validation",
"store": True, "url": "/validations/header", "data": {"event_code": f"/accounts/update", "asked_field": "headers"}, "data": {"event_code": f"{prefix}/update", "asked_field": "validation"},
}, },
"data": { "headers": {
"store": True, "url": f"{prefix}/list", "data": dict(page= 1, limit= 1), "store": True,
} "url": "/validations/header",
}, "data": {"event_code": f"{prefix}/update", "asked_field": "headers"},
page_info={
"page": {
"en": "Account Records updating for user all types account information",
"tr": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları güncelle",
}, },
}, },
},
page_info={
"en": {
"page": "Update Account Records via all types account information",
},
"tr": {
"page": "Tüm hesap bilgileri aracılığıyla Hesap Kayıtlarını Güncelle",
},
},
endpoints={ endpoints={
str(update_key): AccountRecordsUpdateEventMethods.retrieve_all_event_keys(), str(update_key): AccountRecordsUpdateEventMethods.retrieve_all_event_keys(),
}, },
language_models={ language_models={
account_language_update_form_models.PREFIX_URL: account_language_update_form_models_as_dict, str(update_key): account_language_update_form_models_as_dict,
}, },
) )
account_page_info = { account_page_info = {
f"/dashboard?site={cluster_name}" : dashboard_page_info, f"/dashboard?site={cluster_name}": dashboard_page_info,
f"/create?site={cluster_name}": create_page_info, f"/create?site={cluster_name}": create_page_info,
f"/update?site={cluster_name}": update_page_info, f"/update?site={cluster_name}": update_page_info,
} }

View File

@ -28,7 +28,7 @@ address_page_info = PageInfo(
}, },
language_models={ language_models={
"page_info": { "page_info": {
"key": "pair", # key: pair, value: dict "key": "pair", # key: pair, value: dict
"description": { "description": {
"en": "Account Records for reaching user all types account information", "en": "Account Records for reaching user all types account information",
"tr": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları", "tr": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları",
@ -74,4 +74,4 @@ address_page_info = PageInfo(
}, },
}, },
}, },
) )

View File

@ -8,5 +8,6 @@ events_list = (auths_events, events_events, validations_events)
def retrieve_cluster_by_name(cluster_name: str): def retrieve_cluster_by_name(cluster_name: str):
for module in events_list: for module in events_list:
if hasattr(module, cluster_name, None): if hasattr(module, cluster_name):
return getattr(module, cluster_name, None) return getattr(module, cluster_name, None)
return

View File

@ -0,0 +1,13 @@
import Events.JustEvents.authentication as auths_events
import Events.JustEvents.events as events_events
import Events.JustEvents.validations as validations_events
events_list = (auths_events, events_events, validations_events)
def retrieve_cluster_by_name(cluster_name: str):
for module in events_list:
if hasattr(module, cluster_name):
return getattr(module, cluster_name, None)
return

View File

@ -3,9 +3,8 @@ from fastapi import Request
from Events.Engine.abstract_class import Event from Events.Engine.abstract_class import Event
from .models import ValidationsPydantic from .models import ValidationsPydantic, ClusterPydantic, PagePydantic
from .function_handlers import RetrieveValidation from .function_handlers import RetrieveValidation, RetrievePage
# Validation Event # Validation Event
validation_event = Event( validation_event = Event(
@ -41,3 +40,39 @@ def get_menu_by_event_function_code(request: Request, data: Any):
menu_event.endpoint_callable = get_menu_by_event_function_code menu_event.endpoint_callable = get_menu_by_event_function_code
# Cluster Event
cluster_event = Event(
name="cluster_event",
key="eed3fe12-cec1-4f35-b43d-62fca0682f73",
request_validator=ClusterPydantic,
language_models=[],
statics=None,
description="Get Left Menu of the user",
)
def get_cluster_by_event_function_code(request: Request, data: Any):
return RetrievePage.retrieve_cluster(data=data)
cluster_event.endpoint_callable = get_cluster_by_event_function_code
# Page Event
page_event = Event(
name="page_event",
key="",
request_validator=PagePydantic,
language_models=[],
statics=None,
description="Get Left Menu of the user",
)
def get_page_by_event_function_code(request: Request, data: Any):
return RetrievePage.retrieve_page(data=data)
page_event.endpoint_callable = get_page_by_event_function_code

View File

@ -3,6 +3,8 @@ from Events.Engine.abstract_class import CategoryCluster
from .validation import ( from .validation import (
ValidationEventMethods, ValidationEventMethods,
MenuEventMethods, MenuEventMethods,
ClusterEventMethods,
PageEventMethods,
) )
@ -14,6 +16,8 @@ ValidationsCluster = CategoryCluster(
endpoints={ endpoints={
"ValidationEventMethods": ValidationEventMethods, "ValidationEventMethods": ValidationEventMethods,
"MenuEventMethods": MenuEventMethods, "MenuEventMethods": MenuEventMethods,
"ClusterEventMethods": ClusterEventMethods,
"PageEventMethods": PageEventMethods,
}, },
include_in_schema=True, include_in_schema=True,
sub_category=[], sub_category=[],

View File

@ -121,3 +121,94 @@ class RetrieveValidation(BaseRouteModel):
return RedisHeaderRetrieve(**validate_dict).header return RedisHeaderRetrieve(**validate_dict).header
elif data.asked_field == "validation": elif data.asked_field == "validation":
return RedisValidationRetrieve(**validate_dict).validation return RedisValidationRetrieve(**validate_dict).validation
class RetrievePage(BaseRouteModel):
@staticmethod
def get_site_cluster(page_name: str):
"""
/dashboard?site=clusterName retrieves clusterName
"""
if page_name:
return page_name.split("?")[1].split("=")[1]
raise ValueError("Page name not found")
@classmethod
def retrieve_cluster(cls, data: Any):
"""
Retrieve cluster by event function code
"""
reachable_codes = []
if cls.context_retriever.token.is_employee:
reachable_codes = (
cls.context_retriever.token.selected_company.reachable_event_codes
)
elif cls.context_retriever.token.is_occupant:
reachable_codes = (
cls.context_retriever.token.selected_occupant.reachable_event_codes
)
validate_dict = dict(url=data.url, reachable_code=reachable_codes)
print("validate_dict", validate_dict)
cluster_name = data.get("name")
print("cluster_name", cluster_name)
raise NotImplementedError("Cluster not found")
@classmethod
def retrieve_page(cls, data: Any):
"""
Retrieve page by event function code
"""
from Events.Engine import CategoryCluster
from Events.JustEvents.events_file import retrieve_cluster_by_name
reachable_codes = []
if cls.context_retriever.token.is_employee:
reachable_codes = (
cls.context_retriever.token.selected_company.reachable_event_codes
)
elif cls.context_retriever.token.is_occupant:
reachable_codes = (
cls.context_retriever.token.selected_occupant.reachable_event_codes
)
cluster_from_all_events = cls.get_site_cluster(page_name=data.page)
if not cluster_from_all_events:
raise ValueError(f"Cluster not found : {data.page}")
cluster_name: CategoryCluster = retrieve_cluster_by_name(cluster_from_all_events)
if not cluster_name:
raise ValueError("Cluster not found")
page_info = cluster_name.retrieve_page_info().get(data.page, None)
if not page_info:
raise ValueError("Page not found")
endpoints: dict = dict(page_info).get("endpoints", {})
if not endpoints:
raise ValueError("Endpoints not found")
new_page_info_dict = dict(
name=cluster_name.name,
prefix=cluster_name.PREFIX,
url=dict(page_info).get("url", None),
icon=dict(page_info).get("icon", None),
page_info=dict(page_info).get("page_info", None),
endpoints={},
language_models={},
instructions={},
)
for key, event_codes in dict(endpoints).items():
if set(event_codes) & set(reachable_codes):
language_models = dict(page_info).get("language_models", {})
instructions = dict(page_info).get("instructions", {})
new_page_info_dict["endpoints"][key] = True
if language_models.get(key, None):
if key in language_models[key].keys(): # key has sub key blocks inside lang model
for key_model, val_model in dict(language_models[key]).items():
if key_model in new_page_info_dict["endpoints"].keys():
new_page_info_dict["language_models"][key_model] = language_models[key][key_model]
else:
new_page_info_dict["language_models"][key] = language_models[key]
if instructions.get(key, None):
new_page_info_dict["instructions"][key] = instructions.get(key, None)
return new_page_info_dict

View File

@ -9,3 +9,11 @@ from pydantic import BaseModel
class ValidationsPydantic(BaseModel): class ValidationsPydantic(BaseModel):
event_code: str event_code: str
asked_field: Optional[str] = "all" asked_field: Optional[str] = "all"
class ClusterPydantic(BaseModel):
name: str
class PagePydantic(BaseModel):
page: str

View File

@ -9,8 +9,8 @@ from Events.Engine.abstract_class import MethodToEvent
from Events.base_request_model import EndpointBaseRequestModel, ContextRetrievers from Events.base_request_model import EndpointBaseRequestModel, ContextRetrievers
from ApiLayers.Middleware.auth_middleware import MiddlewareModule from ApiLayers.Middleware.auth_middleware import MiddlewareModule
from .api_events import validation_event, menu_event from .api_events import validation_event, menu_event, cluster_event, page_event
from .function_handlers import RetrieveValidation from .function_handlers import RetrieveValidation, RetrievePage
ValidationEventMethods = MethodToEvent( ValidationEventMethods = MethodToEvent(
@ -54,12 +54,66 @@ MenuEventMethods = MethodToEvent(
def menu_endpoint(request: Request, data: EndpointBaseRequestModel) -> Dict[str, Any]: def menu_endpoint(request: Request, data: EndpointBaseRequestModel) -> Dict[str, Any]:
function = ValidationEventMethods.retrieve_event( function = MenuEventMethods.retrieve_event(
event_function_code=f"{menu_event.key}" event_function_code=f"{menu_event.key}"
) )
data = function.REQUEST_VALIDATOR(**data.data) data = function.REQUEST_VALIDATOR(**data.data)
RetrieveValidation.context_retriever = ContextRetrievers(func=validations_endpoint) RetrieveValidation.context_retriever = ContextRetrievers(func=menu_endpoint)
return function.endpoint_callable(request=request, data=data) return function.endpoint_callable(request=request, data=data)
MenuEventMethods.endpoint_callable = menu_endpoint MenuEventMethods.endpoint_callable = menu_endpoint
# Cluster Event
ClusterEventMethods = MethodToEvent(
name="ClusterEventMethods",
events={cluster_event.key: cluster_event},
headers=[],
errors=[],
url="/cluster",
method="POST",
decorators_list=[MiddlewareModule.auth_required],
summary="Get Left Menu of the user",
description="Get Left Menu of the user",
)
def cluster_endpoint(
request: Request, data: EndpointBaseRequestModel
) -> Dict[str, Any]:
function = ClusterEventMethods.retrieve_event(
event_function_code=f"{cluster_event.key}"
)
data = function.REQUEST_VALIDATOR(**data.data)
RetrievePage.context_retriever = ContextRetrievers(func=cluster_endpoint)
return function.endpoint_callable(request=request, data=data)
ClusterEventMethods.endpoint_callable = cluster_endpoint
# Page Event
PageEventMethods = MethodToEvent(
name="PageEventMethods",
events={page_event.key: page_event},
headers=[],
errors=[],
url="/page",
method="POST",
decorators_list=[MiddlewareModule.auth_required],
summary="Get Left Menu of the user",
description="Get Left Menu of the user",
)
def page_endpoint(request: Request, data: EndpointBaseRequestModel) -> Dict[str, Any]:
function = PageEventMethods.retrieve_event(
event_function_code=f"{page_event.key}"
)
data = function.REQUEST_VALIDATOR(**data.data)
RetrievePage.context_retriever = ContextRetrievers(func=page_endpoint)
return function.endpoint_callable(request=request, data=data)
PageEventMethods.endpoint_callable = page_endpoint

View File

@ -53,6 +53,7 @@ class PageInfo:
"/create?site=AccountCluster": ["/accounts/create"], "/create?site=AccountCluster": ["/accounts/create"],
}, },
""" """
NAME: str NAME: str
PAGE_URL: str PAGE_URL: str
PAGEINFO: Dict[str, Any] PAGEINFO: Dict[str, Any]
@ -262,7 +263,7 @@ class CategoryCluster:
TAGS: list TAGS: list
PREFIX: str PREFIX: str
PAGEINFO: Optional[Dict['str', PageInfo]] PAGEINFO: Optional[Dict["str", PageInfo]]
DESCRIPTION: str DESCRIPTION: str
ENDPOINTS: dict[str, MethodToEvent] # {"MethodToEvent": MethodToEvent, ...} ENDPOINTS: dict[str, MethodToEvent] # {"MethodToEvent": MethodToEvent, ...}
SUBCATEGORY: Optional[List["CategoryCluster"]] # [CategoryCluster, ...] SUBCATEGORY: Optional[List["CategoryCluster"]] # [CategoryCluster, ...]
@ -277,7 +278,7 @@ class CategoryCluster:
description: str, description: str,
endpoints: dict[str, MethodToEvent], endpoints: dict[str, MethodToEvent],
sub_category: list, sub_category: list,
pageinfo: Optional[Dict['str', PageInfo]] = None, pageinfo: Optional[Dict["str", PageInfo]] = None,
include_in_schema: Optional[bool] = True, include_in_schema: Optional[bool] = True,
is_client: Optional[bool] = False, is_client: Optional[bool] = False,
): ):
@ -344,9 +345,9 @@ class CategoryCluster:
page_infos = {} page_infos = {}
if isinstance(self.PAGEINFO, dict): if isinstance(self.PAGEINFO, dict):
for page_key, page_info in dict(self.PAGEINFO).items(): for page_key, page_info in dict(self.PAGEINFO).items():
if page_info_dict := getattr(page_info, 'as_dict', None): if page_info_dict := getattr(page_info, "as_dict", None):
page_infos[page_key] = page_info_dict page_infos[page_key] = page_info_dict
return {"prefix": self.PREFIX, **page_infos} return {"prefix": self.PREFIX, **page_infos}
if hasattr(self.PAGEINFO, 'as_dict'): if hasattr(self.PAGEINFO, "as_dict"):
return {"prefix": self.PREFIX, **self.PAGEINFO.as_dict} return {"prefix": self.PREFIX, **self.PAGEINFO.as_dict}
return return

View File

@ -1,4 +1,7 @@
from ApiLayers.AllConfigs.Redis.configs import RedisCategoryKeys, RedisCategoryPageInfoKeysAction from ApiLayers.AllConfigs.Redis.configs import (
RedisCategoryKeys,
RedisCategoryPageInfoKeysAction,
)
class PrepareRedisItems: class PrepareRedisItems:

View File

@ -4,7 +4,10 @@ from ApiLayers.ApiServices.Cluster.create_router import (
CreateRouterFromCluster, CreateRouterFromCluster,
CreateEndpointFromCluster, CreateEndpointFromCluster,
) )
from ApiLayers.AllConfigs.Redis.configs import RedisCategoryKeys, RedisCategoryPageInfoKeys from ApiLayers.AllConfigs.Redis.configs import (
RedisCategoryKeys,
RedisCategoryPageInfoKeys,
)
from Events.Engine.abstract_class import CategoryCluster from Events.Engine.abstract_class import CategoryCluster
from Services.Redis.Actions.actions import RedisActions from Services.Redis.Actions.actions import RedisActions
from Services.Redis.Models.cluster import RedisList from Services.Redis.Models.cluster import RedisList
@ -79,14 +82,16 @@ class PrepareEvents(DecoratorModule):
def prepare_page_info(self): def prepare_page_info(self):
""" """
[SAVE]REDIS => PAGE_MENU_INDEX:PAGE_URL= {...PageInfo} [SAVE]REDIS => PAGE_MENU_INDEX:PAGE_URL= {...PageInfo}
""" """
for cluster_control in self.cluster_controller_group.imports: for cluster_control in self.cluster_controller_group.imports:
cluster = cluster_control.category_cluster cluster = cluster_control.category_cluster
if retrieve_page_info := cluster.retrieve_page_info(): if retrieve_page_info := cluster.retrieve_page_info():
self.valid_redis_items.PAGE_INFO_VALUE.update({ self.valid_redis_items.PAGE_INFO_VALUE.update(
f"{self.valid_redis_items.PAGE_INFO_KEY}:{cluster.name}": retrieve_page_info {
}) f"{self.valid_redis_items.PAGE_INFO_KEY}:{cluster.name}": retrieve_page_info
}
)
def prepare_needs(self): def prepare_needs(self):
# @Pages iterate(ClusterToMethod) # @Pages iterate(ClusterToMethod)
@ -155,8 +160,7 @@ class SetItems2Redis:
) in RedisCategoryPageInfoKeys.__annotations__.items(): ) in RedisCategoryPageInfoKeys.__annotations__.items():
if isinstance(redis_key_type, str): if isinstance(redis_key_type, str):
continue continue
RedisActions.delete(list_keys=[f"{redis_values_to_delete}*"] RedisActions.delete(list_keys=[f"{redis_values_to_delete}*"])
)
# Save MENU_FIRST_LAYER to Redis # Save MENU_FIRST_LAYER to Redis
redis_list = RedisList(redis_key=RedisCategoryKeys.MENU_FIRST_LAYER) redis_list = RedisList(redis_key=RedisCategoryKeys.MENU_FIRST_LAYER)
@ -219,6 +223,4 @@ class SetItems2Redis:
PrepareRedisItems.PAGE_INFO_KEY PrepareRedisItems.PAGE_INFO_KEY
).items(): ).items():
redis_list = RedisList(redis_key=redis_key) redis_list = RedisList(redis_key=redis_key)
RedisActions.set_json( RedisActions.set_json(list_keys=redis_list.to_list(), value=redis_value)
list_keys=redis_list.to_list(), value=redis_value
)