events cluster updated with PageInfo
This commit is contained in:
50
.idea/workspace.xml
generated
50
.idea/workspace.xml
generated
@@ -6,6 +6,56 @@
|
||||
<component name="ChangeListManager">
|
||||
<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$/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$/ApiLayers/ApiServices/Token/token_handler.py" beforeDir="false" afterPath="$PROJECT_DIR$/ApiLayers/ApiServices/Token/token_handler.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$/ApiLayers/LanguageModels/Response/accounts/accounts.py" beforeDir="false" afterPath="$PROJECT_DIR$/ApiLayers/LanguageModels/Response/accounts/accounts.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/__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/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/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/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/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/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/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/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/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/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>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
||||
@@ -50,6 +50,51 @@ class RedisCategoryKeys:
|
||||
MENU_MAPPER: str = "MENU_MAPPER"
|
||||
|
||||
|
||||
class RedisCategoryPageInfoKeys:
|
||||
"""
|
||||
### /create?site=BuildingCluster, #/update?site=BuildingCluster, #/dashboard?site=BuildingCluster
|
||||
PAGE_URL: /dashboard?site=BuildingCluster
|
||||
PAGE_NAME: BuildingCluster
|
||||
PAGE_INFO: {LANGUAGE_MODELS: "", ICON: "", URL: ""}
|
||||
PAGE_MENU_INDEX: 1 # {build_living_space: "uuid4", LAYER: 1, MENU_INDEX: 1}
|
||||
|
||||
PAGE_MENU_COMPONENT: {..., lang: {"tr"}: {...}, lang: {"en"}: {...}}
|
||||
PAGE_LANGUAGE: {{"tr"}: {...},{"en"}: {...}}
|
||||
"""
|
||||
|
||||
PAGE_URL: str = "PAGE_URL"
|
||||
PAGE_NAME: str = "PAGE_NAME"
|
||||
PAGE_INFO: str = "PAGE_INFO"
|
||||
PAGE_COMPONENT: str = "PAGE_COMPONENT"
|
||||
PAGE_MENU_INDEX: str = "PAGE_MENU_INDEX"
|
||||
PAGE_MENU_COMPONENT: str = "PAGE_MENU_COMPONENT"
|
||||
PAGE_LANGUAGE: str = "PAGE_LANGUAGE"
|
||||
|
||||
|
||||
class RedisCategoryPageInfoKeysAction:
|
||||
"""
|
||||
PAGE_MAPPER: {PAGE_URL: /dashboard?site=BuildingCluster, PAGE_NAME: BuildingCluster, PAGE_INFO: {LANGUAGE_MODELS: "", ICON: "", URL: ""}}
|
||||
value : {RedisCategoryPageInfoKeys.PAGE_INFO}
|
||||
MENU_MAPPER: {PAGE_MENU_INDEX: 1, PAGE_MENU_COMPONENT: {..., lang: {"tr"}: {...}, lang: {"en"}: {...}}}
|
||||
value : {RedisCategoryPageInfoKeys.PAGE_INFO}
|
||||
"""
|
||||
|
||||
page_index: str = f"{RedisCategoryPageInfoKeys.PAGE_MENU_INDEX}:{RedisCategoryPageInfoKeys.PAGE_URL}"
|
||||
|
||||
page_mapper_key: str = (
|
||||
f"{RedisCategoryPageInfoKeys.PAGE_MENU_INDEX}:{RedisCategoryPageInfoKeys.PAGE_URL}"
|
||||
)
|
||||
page_mapper_key: str = (
|
||||
f"{page_mapper_key}:{RedisCategoryPageInfoKeys.PAGE_LANGUAGE}"
|
||||
)
|
||||
menu_mapper_key: str = (
|
||||
f"{RedisCategoryPageInfoKeys.PAGE_URL}:{RedisCategoryPageInfoKeys.PAGE_MENU_INDEX}"
|
||||
)
|
||||
menu_mapper_key: str = (
|
||||
f"{menu_mapper_key}:{RedisCategoryPageInfoKeys.PAGE_MENU_COMPONENT}"
|
||||
)
|
||||
|
||||
|
||||
class RedisValidationKeysAction:
|
||||
# LANGUAGE_MODELS:DYNAMIC:VALIDATIONS:
|
||||
dynamic_validation_key: str = (
|
||||
|
||||
@@ -9,7 +9,9 @@ class CreateRouterFromCluster:
|
||||
self.prefix = kwargs.get("prefix")
|
||||
self.tags = kwargs.get("tags")
|
||||
self.include_in_schema = bool(kwargs.get("include_in_schema", True))
|
||||
self.router = APIRouter(prefix=self.prefix, tags=self.tags, include_in_schema=self.include_in_schema)
|
||||
self.router = APIRouter(
|
||||
prefix=self.prefix, tags=self.tags, include_in_schema=self.include_in_schema
|
||||
)
|
||||
|
||||
|
||||
class CreateEndpointFromCluster:
|
||||
|
||||
@@ -62,6 +62,7 @@ class TokenService:
|
||||
) -> Dict[str, Any]:
|
||||
"""Handle employee login process and return login information."""
|
||||
from ApiLayers.Schemas.identity.identity import UsersTokens, People
|
||||
|
||||
db_session = Employees.new_session()
|
||||
list_employee = Employees.filter_all(
|
||||
Employees.people_id == user.person_id, db=db_session
|
||||
|
||||
@@ -26,7 +26,13 @@ class EndpointSuccessListResponse(BaseEndpointResponse): # 200 OK
|
||||
def as_dict(self, data: Optional[dict] = None, pagination: Optional[dict] = None):
|
||||
return JSONResponse(
|
||||
status_code=status.HTTP_200_OK,
|
||||
content=dict(completed=True, **self.response, lang=self.lang, pagination=pagination, data=data),
|
||||
content=dict(
|
||||
completed=True,
|
||||
**self.response,
|
||||
lang=self.lang,
|
||||
pagination=pagination,
|
||||
data=data,
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
|
||||
|
||||
accountResponses = {
|
||||
"ACCOUNTS_LIST": {
|
||||
"tr": {
|
||||
|
||||
@@ -3,9 +3,9 @@ from Events.Engine.abstract_class import PageInfo
|
||||
|
||||
authentication_page_info = PageInfo(
|
||||
name="Authentication",
|
||||
title={"en": "Authentication", "tr": "Kimlik Doğrulama"},
|
||||
description={"en": "User&Event Authentication for users", "tr": "Kullanıcı ve Etkinlik Kimlik Doğrulama"},
|
||||
icon="",
|
||||
parent="",
|
||||
url="",
|
||||
language_models={},
|
||||
endpoints={},
|
||||
icon="Authentication",
|
||||
sub_components=[],
|
||||
)
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
"""
|
||||
Events package initialization.
|
||||
"""
|
||||
|
||||
from .account.cluster import AccountCluster
|
||||
from .address.cluster import AddressCluster
|
||||
|
||||
|
||||
__all__ = [
|
||||
"AccountCluster",
|
||||
"AddressCluster"
|
||||
]
|
||||
__all__ = ["AccountCluster", "AddressCluster"]
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
"""
|
||||
Account related API endpoints.
|
||||
"""
|
||||
|
||||
from typing import Any, Dict
|
||||
from fastapi import Request
|
||||
|
||||
from Events.Engine.abstract_class import MethodToEvent
|
||||
from Events.base_request_model import EndpointBaseRequestModel, ContextRetrievers
|
||||
from ApiLayers.Middleware.token_event_middleware import TokenEventMiddleware
|
||||
from ApiLayers.ApiValidations.Response.default_response import EndpointSuccessListResponse
|
||||
from ApiLayers.ApiValidations.Response.default_response import (
|
||||
EndpointSuccessListResponse,
|
||||
)
|
||||
|
||||
from .function_handlers import AccountListEventMethods
|
||||
from .api_events import SuperUserAccountEvents
|
||||
@@ -46,9 +49,7 @@ def account_list_event_endpoint(
|
||||
)
|
||||
|
||||
|
||||
AccountRecordsListEventMethods.endpoint_callable = (
|
||||
account_list_event_endpoint
|
||||
)
|
||||
AccountRecordsListEventMethods.endpoint_callable = account_list_event_endpoint
|
||||
|
||||
|
||||
AccountRecordsCreateEventMethods = MethodToEvent(
|
||||
@@ -84,9 +85,7 @@ def account_create_event_endpoint(
|
||||
)
|
||||
|
||||
|
||||
AccountRecordsCreateEventMethods.endpoint_callable = (
|
||||
account_create_event_endpoint
|
||||
)
|
||||
AccountRecordsCreateEventMethods.endpoint_callable = account_create_event_endpoint
|
||||
|
||||
|
||||
AccountRecordsUpdateEventMethods = MethodToEvent(
|
||||
@@ -122,7 +121,4 @@ def account_update_event_endpoint(
|
||||
)
|
||||
|
||||
|
||||
AccountRecordsUpdateEventMethods.endpoint_callable = (
|
||||
account_update_event_endpoint
|
||||
)
|
||||
|
||||
AccountRecordsUpdateEventMethods.endpoint_callable = account_update_event_endpoint
|
||||
|
||||
@@ -45,9 +45,13 @@ class AccountListEventMethods(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def account_records_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def account_records_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AccountRecords, list_options=data, model_query=None,
|
||||
table=AccountRecords,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -58,13 +62,14 @@ class AccountListEventMethods(BaseRouteModel):
|
||||
).query
|
||||
elif cls.context_retriever.token.is_employee:
|
||||
AccountRecords.pre_query = AccountRecords.filter_all(
|
||||
AccountRecords.company_id ==
|
||||
cls.context_retriever.token.selected_company.company_id,
|
||||
AccountRecords.company_id
|
||||
== cls.context_retriever.token.selected_company.company_id,
|
||||
db=db_session,
|
||||
).query
|
||||
records = AccountRecords.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
|
||||
# @classmethod
|
||||
@@ -212,7 +217,8 @@ class AccountCreateEventMethods(BaseRouteModel):
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
build_iban = BuildIbans.filter_one(
|
||||
BuildIbans.iban == data.iban,
|
||||
BuildIbans.build_id == cls.context_retriever.token.selected_occupant.build_id,
|
||||
BuildIbans.build_id
|
||||
== cls.context_retriever.token.selected_occupant.build_id,
|
||||
db=db_session,
|
||||
).data
|
||||
if not build_iban:
|
||||
@@ -266,7 +272,9 @@ class AccountCreateEventMethods(BaseRouteModel):
|
||||
data_dict["receive_debit"] = debit_type.id
|
||||
data_dict["receive_debit_uu_id"] = str(debit_type.uu_id)
|
||||
|
||||
account_record = AccountRecords.find_or_create(data_dict, db=db_session).data
|
||||
account_record = AccountRecords.find_or_create(
|
||||
data_dict, db=db_session
|
||||
).data
|
||||
# return AlchemyJsonResponse(
|
||||
# completed=True,
|
||||
# message="Account record created successfully",
|
||||
@@ -282,7 +290,9 @@ class AccountUpdateEventMethods(BaseRouteModel):
|
||||
pass
|
||||
elif cls.context_retriever.token.is_employee:
|
||||
pass
|
||||
AccountRecords.build_parts_id = cls.context_retriever.token.selected_occupant.build_part_id
|
||||
AccountRecords.build_parts_id = (
|
||||
cls.context_retriever.token.selected_occupant.build_part_id
|
||||
)
|
||||
account_record = AccountRecords.update_one(build_uu_id, data).data
|
||||
# return AlchemyJsonResponse(
|
||||
# completed=True,
|
||||
@@ -291,4 +301,3 @@ class AccountUpdateEventMethods(BaseRouteModel):
|
||||
# cls_object=AccountRecords,
|
||||
# response_model=UpdateAccountRecord,
|
||||
# )
|
||||
|
||||
|
||||
@@ -1,14 +1,169 @@
|
||||
from Events.Engine.abstract_class import PageInfo
|
||||
|
||||
|
||||
account_page_info = PageInfo(
|
||||
name="Accounts",
|
||||
title={"en": "Account Records", "tr": "Hesap Kayıtları"},
|
||||
description={
|
||||
"en": "Account Records for reaching user all types account information",
|
||||
"tr": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları"
|
||||
},
|
||||
icon="",
|
||||
parent="",
|
||||
url="",
|
||||
from .account_records import (
|
||||
AccountRecordsUpdateEventMethods,
|
||||
AccountRecordsCreateEventMethods,
|
||||
AccountRecordsListEventMethods,
|
||||
)
|
||||
|
||||
cluster_name = "AccountCluster"
|
||||
page_type=f"/dashboard?site={cluster_name}"
|
||||
|
||||
prefix = "/accounts"
|
||||
create_key = f"{prefix}{AccountRecordsCreateEventMethods.URL}"
|
||||
update_key = f"{prefix}{AccountRecordsUpdateEventMethods.URL}"
|
||||
list_key = f"{prefix}{AccountRecordsListEventMethods.URL}"
|
||||
|
||||
|
||||
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()
|
||||
|
||||
|
||||
dashboard_page_info = PageInfo(
|
||||
name=f"{cluster_name}",
|
||||
url=f"/dashboard?site={cluster_name}",
|
||||
icon="Building",
|
||||
instructions={
|
||||
"headers": {
|
||||
"store": True, "url": "/validations/header", "data": {"event_code": f"/accounts/list", "asked_field": "headers"},
|
||||
}
|
||||
},
|
||||
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={
|
||||
"validation": {
|
||||
"store": True, "url": "/validations/validation", "data": {"event_code": f"/accounts/create", "asked_field": "validation"},
|
||||
},
|
||||
"headers": {
|
||||
"store": True, "url": "/validations/header", "data": {"event_code": f"/accounts/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={
|
||||
"validation": {
|
||||
"store": True, "url": "/validations/validation", "data": {"event_code": f"/accounts/update", "asked_field": "validation"},
|
||||
},
|
||||
"headers": {
|
||||
"store": True, "url": "/validations/header", "data": {"event_code": f"/accounts/update", "asked_field": "headers"},
|
||||
},
|
||||
"data": {
|
||||
"store": True, "url": f"{prefix}/list", "data": dict(page= 1, limit= 1),
|
||||
}
|
||||
},
|
||||
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,
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
"""
|
||||
Account records request and response models.
|
||||
"""
|
||||
|
||||
from typing import Optional
|
||||
|
||||
from ApiLayers.ApiValidations.Request import PydanticBaseModel, ListOptions
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
"""
|
||||
Account related API endpoints.
|
||||
"""
|
||||
|
||||
from typing import Any, Dict
|
||||
from fastapi import Request
|
||||
|
||||
@@ -8,7 +9,9 @@ from Events.Engine.abstract_class import MethodToEvent
|
||||
from Events.base_request_model import EndpointBaseRequestModel, ContextRetrievers
|
||||
|
||||
from ApiLayers.Middleware.token_event_middleware import TokenEventMiddleware
|
||||
from ApiLayers.ApiValidations.Response.default_response import EndpointSuccessListResponse
|
||||
from ApiLayers.ApiValidations.Response.default_response import (
|
||||
EndpointSuccessListResponse,
|
||||
)
|
||||
|
||||
from .function_handlers import (
|
||||
AddressListFunctions,
|
||||
@@ -52,9 +55,7 @@ def account_list_event_endpoint(
|
||||
)
|
||||
|
||||
|
||||
AddressListEventMethods.endpoint_callable = (
|
||||
account_list_event_endpoint
|
||||
)
|
||||
AddressListEventMethods.endpoint_callable = account_list_event_endpoint
|
||||
|
||||
|
||||
AddressCreateEventMethods = MethodToEvent(
|
||||
@@ -90,9 +91,7 @@ def account_create_event_endpoint(
|
||||
)
|
||||
|
||||
|
||||
AddressCreateEventMethods.endpoint_callable = (
|
||||
account_create_event_endpoint
|
||||
)
|
||||
AddressCreateEventMethods.endpoint_callable = account_create_event_endpoint
|
||||
|
||||
|
||||
AddressUpdateEventMethods = MethodToEvent(
|
||||
@@ -128,9 +127,7 @@ def account_update_event_endpoint(
|
||||
)
|
||||
|
||||
|
||||
AddressUpdateEventMethods.endpoint_callable = (
|
||||
account_update_event_endpoint
|
||||
)
|
||||
AddressUpdateEventMethods.endpoint_callable = account_update_event_endpoint
|
||||
|
||||
|
||||
AddressSearchEventMethods = MethodToEvent(
|
||||
@@ -165,9 +162,5 @@ def address_search_event_endpoint(
|
||||
data=pagination_result.data, pagination=pagination_result.pagination.as_dict()
|
||||
)
|
||||
|
||||
AddressSearchEventMethods.endpoint_callable = (
|
||||
address_search_event_endpoint
|
||||
)
|
||||
|
||||
|
||||
|
||||
AddressSearchEventMethods.endpoint_callable = address_search_event_endpoint
|
||||
|
||||
@@ -77,6 +77,7 @@ address_search_super_user_event.endpoint_callable = (
|
||||
AddressSuperUserFunctions.AddressSearchFunctions.template_example_function_list
|
||||
)
|
||||
|
||||
|
||||
class AddressSuperUserEvents:
|
||||
AddressListEvents = address_list_super_user_event
|
||||
AddressCreateEvents = address_create_super_user_event
|
||||
|
||||
@@ -17,11 +17,14 @@ class Handlers:
|
||||
|
||||
class AddressListFunctions(BaseRouteModel):
|
||||
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -34,19 +37,27 @@ class AddressListFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
|
||||
|
||||
class AddressCreateFunctions(BaseRouteModel):
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -59,9 +70,12 @@ class AddressCreateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
|
||||
|
||||
@@ -72,12 +86,16 @@ class AddressSearchFunctions(BaseRouteModel):
|
||||
and filtering.
|
||||
"""
|
||||
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -90,19 +108,27 @@ class AddressSearchFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
|
||||
|
||||
class AddressUpdateFunctions(BaseRouteModel):
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -115,9 +141,12 @@ class AddressUpdateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,77 @@
|
||||
from Events.Engine.abstract_class import PageInfo
|
||||
|
||||
|
||||
address_page_info = PageInfo(
|
||||
name="template",
|
||||
title={"en": "template"},
|
||||
description={"en": "template"},
|
||||
icon="",
|
||||
parent="",
|
||||
url="",
|
||||
from .address import (
|
||||
AddressListEventMethods,
|
||||
AddressCreateEventMethods,
|
||||
AddressUpdateEventMethods,
|
||||
AddressSearchEventMethods,
|
||||
)
|
||||
|
||||
prefix = "/address"
|
||||
cluster_name = "AddressCluster"
|
||||
address_page_info = PageInfo(
|
||||
name=f"{cluster_name}",
|
||||
url=f"/dashboard?site={cluster_name}",
|
||||
icon="Building",
|
||||
endpoints={
|
||||
str(
|
||||
f"{prefix}{AddressUpdateEventMethods.URL}"
|
||||
): AddressUpdateEventMethods.retrieve_all_event_keys(),
|
||||
str(
|
||||
f"{prefix}{AddressCreateEventMethods.URL}"
|
||||
): AddressCreateEventMethods.retrieve_all_event_keys(),
|
||||
str(
|
||||
f"{prefix}{AddressSearchEventMethods.URL}"
|
||||
): AddressSearchEventMethods.retrieve_all_event_keys(),
|
||||
str(
|
||||
f"{prefix}{AddressListEventMethods.URL}"
|
||||
): AddressListEventMethods.retrieve_all_event_keys(),
|
||||
},
|
||||
language_models={
|
||||
"page_info": {
|
||||
"key": "pair", # key: pair, value: dict
|
||||
"description": {
|
||||
"en": "Account Records for reaching user all types account information",
|
||||
"tr": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları",
|
||||
},
|
||||
},
|
||||
f"{prefix}{AddressUpdateEventMethods.URL}": {
|
||||
"component": "Button",
|
||||
"site_url": f"/update?site={cluster_name}",
|
||||
"page_info": {
|
||||
"text": {
|
||||
"en": "Update Account Records",
|
||||
"tr": "Hesap Kayıdı Güncelle",
|
||||
},
|
||||
},
|
||||
},
|
||||
f"{prefix}{AddressCreateEventMethods.URL}": {
|
||||
"component": "Button",
|
||||
"site_url": f"/create?site={cluster_name}",
|
||||
"page_info": {
|
||||
"text": {
|
||||
"en": "Create Account Records",
|
||||
"tr": "Hesap Kayıdı Oluştur",
|
||||
},
|
||||
},
|
||||
},
|
||||
f"{prefix}{AddressSearchEventMethods.URL}": {
|
||||
"component": "Search",
|
||||
"page_info": {
|
||||
"text": {
|
||||
"en": "Search Account Records",
|
||||
"tr": "Hesap Kayıtlarını Ara",
|
||||
},
|
||||
},
|
||||
},
|
||||
f"{prefix}{AddressListEventMethods.URL}": {
|
||||
"component": "Table",
|
||||
"fetch_url": AddressListEventMethods.URL,
|
||||
"page_info": {
|
||||
"description": {
|
||||
"en": "Account Records for reaching user all types account information",
|
||||
"tr": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -8,7 +8,7 @@ from function_handlers import TemplateFunctions
|
||||
|
||||
|
||||
# Auth Login
|
||||
template_event = Event(
|
||||
building_event = Event(
|
||||
name="authentication_login_super_user_event",
|
||||
key="a5d2d0d1-3e9b-4b0f-8c7d-6d4a4b4c4d4e",
|
||||
# request_validator=TemplateRequestModels.TemplateRequestModelX,
|
||||
@@ -18,4 +18,8 @@ template_event = Event(
|
||||
)
|
||||
|
||||
|
||||
template_event.endpoint_callable = TemplateFunctions.template_example_function_list
|
||||
building_event.endpoint_callable = TemplateFunctions.template_example_function_list
|
||||
|
||||
|
||||
class BuildingSuperUserEvents:
|
||||
BuildingEvent = building_event
|
||||
|
||||
@@ -1,19 +1,58 @@
|
||||
"""
|
||||
request models.
|
||||
Account related API endpoints.
|
||||
"""
|
||||
|
||||
from typing import TYPE_CHECKING, Dict, Any, Literal, Optional, TypedDict, Union
|
||||
from pydantic import BaseModel, Field, model_validator, RootModel, ConfigDict
|
||||
from ApiEvents.base_request_model import BaseRequestModel, DictRequestModel
|
||||
from ApiValidations.Custom.token_objects import EmployeeTokenObject, OccupantTokenObject
|
||||
from ApiValidations.Request.base_validations import ListOptions
|
||||
from ErrorHandlers.Exceptions.api_exc import HTTPExceptionApi
|
||||
from Schemas.identity.identity import (
|
||||
AddressPostcode,
|
||||
Addresses,
|
||||
RelationshipEmployee2PostCode,
|
||||
from typing import Any, Dict
|
||||
from fastapi import Request
|
||||
|
||||
from Events.Engine.abstract_class import MethodToEvent
|
||||
from Events.base_request_model import EndpointBaseRequestModel, ContextRetrievers
|
||||
|
||||
from ApiLayers.Middleware.token_event_middleware import TokenEventMiddleware
|
||||
from ApiLayers.ApiValidations.Response.default_response import (
|
||||
EndpointSuccessListResponse,
|
||||
)
|
||||
|
||||
# from .function_handlers import (
|
||||
# AddressListFunctions,
|
||||
# AddressUpdateFunctions,
|
||||
# AddressSearchFunctions,
|
||||
# AddressCreateFunctions,
|
||||
# )
|
||||
from .api_events import BuildingSuperUserEvents
|
||||
|
||||
|
||||
BuildingListEventMethods = MethodToEvent(
|
||||
name="BuildingListEventMethods",
|
||||
events={
|
||||
BuildingSuperUserEvents.BuildingEvent.key: BuildingSuperUserEvents.BuildingEvent,
|
||||
},
|
||||
headers=[],
|
||||
errors=[],
|
||||
decorators_list=[TokenEventMiddleware.event_required],
|
||||
url="/list",
|
||||
method="POST",
|
||||
summary="List all accounts by given previligous",
|
||||
description="List all accounts by given previligous",
|
||||
)
|
||||
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from fastapi import Request
|
||||
def account_list_event_endpoint(
|
||||
request: Request, data: EndpointBaseRequestModel
|
||||
) -> Dict[str, Any]:
|
||||
context_retriever = ContextRetrievers(func=account_list_event_endpoint)
|
||||
event_2_catch = BuildingListEventMethods.retrieve_event(
|
||||
event_function_code=f"{BuildingSuperUserEvents.BuildingEvent.key}"
|
||||
)
|
||||
context_retriever.RESPONSE_VALIDATOR = event_2_catch.RESPONSE_VALIDATOR
|
||||
data = event_2_catch.REQUEST_VALIDATOR(**data.data)
|
||||
BuildingListFunctions.context_retriever = context_retriever
|
||||
pagination_result = event_2_catch.endpoint_callable(data=data)
|
||||
return EndpointSuccessListResponse(
|
||||
code=event_2_catch.static_key, lang=context_retriever.token.lang
|
||||
).as_dict(
|
||||
data=pagination_result.data, pagination=pagination_result.pagination.as_dict()
|
||||
)
|
||||
|
||||
|
||||
BuildingListEventMethods.endpoint_callable = account_list_event_endpoint
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from Events.Engine.abstract_class import CategoryCluster
|
||||
|
||||
from .info import building_page_info
|
||||
|
||||
|
||||
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -1,17 +1,42 @@
|
||||
from Events.Engine.abstract_class import PageInfo
|
||||
from Events.Engine.abstract_class import PageComponent
|
||||
|
||||
|
||||
create_building = PageComponent(
|
||||
name="CreateBuilding",
|
||||
url="/create",
|
||||
language_models={
|
||||
"en": "Create Building",
|
||||
"tr": "Bina Oluştur",
|
||||
},
|
||||
)
|
||||
|
||||
update_building = PageComponent(
|
||||
name="UpdateBuilding",
|
||||
url="/update",
|
||||
language_models={
|
||||
"en": "Update Building",
|
||||
"tr": "Bina Güncelle",
|
||||
},
|
||||
)
|
||||
|
||||
list_building = PageComponent(
|
||||
name="ListBuilding",
|
||||
url="/dashboard",
|
||||
language_models={
|
||||
"en": "List Building",
|
||||
"tr": "Bina Listele",
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
building_page_info = PageInfo(
|
||||
name="Building",
|
||||
title={
|
||||
"en": "Building Actions",
|
||||
"tr": "Bina İşlemleri"
|
||||
name="BuildingCluster",
|
||||
language_models={
|
||||
"en": {},
|
||||
"tr": {},
|
||||
},
|
||||
description={
|
||||
"en": "Building Actions to manage build updates",
|
||||
"tr": "Bina güncellemelerini yönetmek için Bina İşlemleri"
|
||||
},
|
||||
icon="",
|
||||
parent="",
|
||||
url="",
|
||||
icon="Building",
|
||||
sub_components=[create_building, update_building, list_building],
|
||||
url="/dashboard?site=AddressCluster",
|
||||
)
|
||||
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -48,10 +48,15 @@ class TemplateFunctions(BaseRouteModel):
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def template_example_function_list(cls, data: Optional[Union[dict, ListOptions]]) -> PaginationResult:
|
||||
def template_example_function_list(
|
||||
cls, data: Optional[Union[dict, ListOptions]]
|
||||
) -> PaginationResult:
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
|
||||
list_options_base = ListOptionsBase(
|
||||
table=AddressNeighborhood, list_options=data, model_query=None,
|
||||
table=AddressNeighborhood,
|
||||
list_options=data,
|
||||
model_query=None,
|
||||
)
|
||||
db_session, query_options = list_options_base.init_list_options()
|
||||
if cls.context_retriever.token.is_occupant:
|
||||
@@ -64,7 +69,10 @@ class TemplateFunctions(BaseRouteModel):
|
||||
AddressNeighborhood.neighborhood_code.icontains("9"),
|
||||
db=db_session,
|
||||
).query
|
||||
records = AddressNeighborhood.filter_all(*query_options.convert(), db=db_session)
|
||||
return list_options_base.paginated_result(
|
||||
records=records, response_model=getattr(cls.context_retriever, 'RESPONSE_VALIDATOR', None)
|
||||
records = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=db_session
|
||||
)
|
||||
return list_options_base.paginated_result(
|
||||
records=records,
|
||||
response_model=getattr(cls.context_retriever, "RESPONSE_VALIDATOR", None),
|
||||
)
|
||||
@@ -53,9 +53,7 @@ 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(
|
||||
event_function_code=f"{menu_event.key}"
|
||||
)
|
||||
@@ -63,4 +61,5 @@ def menu_endpoint(
|
||||
RetrieveValidation.context_retriever = ContextRetrievers(func=validations_endpoint)
|
||||
return function.endpoint_callable(request=request, data=data)
|
||||
|
||||
|
||||
MenuEventMethods.endpoint_callable = menu_endpoint
|
||||
|
||||
@@ -5,29 +5,106 @@ from uuid import UUID
|
||||
from ApiLayers.AllConfigs.Redis.configs import RedisCategoryKeys
|
||||
|
||||
|
||||
class PageInfo:
|
||||
class PageComponent:
|
||||
|
||||
NAME: str
|
||||
BUTTON_NAME: str
|
||||
PAGE_URL: str
|
||||
PAGEINFO: Dict[str, Any]
|
||||
URL: str = ""
|
||||
URL: str
|
||||
FETCH_URL: str
|
||||
LANGUAGE_MODELS: Dict[str, Any]
|
||||
TYPE_COMPONENT: Optional[str] = "Page"
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
name: str,
|
||||
title: Dict[str, Any],
|
||||
description: Dict[str, Any],
|
||||
icon: str,
|
||||
parent: str,
|
||||
url: str,
|
||||
# fetch_url: str,
|
||||
language_models: Dict[str, Any],
|
||||
):
|
||||
self.NAME = name
|
||||
self.TITLE = title
|
||||
self.DESCRIPTION = description
|
||||
self.ICON = icon
|
||||
self.PARENT = parent
|
||||
self.URL = url
|
||||
# self.FETCH_URL = fetch_url
|
||||
self.LANGUAGE_MODELS = language_models
|
||||
|
||||
def set_language_models(self, language_models: Dict[str, Any]):
|
||||
self.LANGUAGE_MODELS = language_models
|
||||
|
||||
@property
|
||||
def language_models(self):
|
||||
return self.LANGUAGE_MODELS
|
||||
|
||||
def as_dict(self):
|
||||
return {
|
||||
"name": self.NAME,
|
||||
"url": self.URL,
|
||||
"language_models": self.LANGUAGE_MODELS,
|
||||
# "fetch_url": self.FETCH_URL,
|
||||
}
|
||||
|
||||
|
||||
class PageInfo:
|
||||
"""
|
||||
match_page: {
|
||||
"/dashboard?site=AccountCluster": [
|
||||
"/accounts/create",
|
||||
"/accounts/update",
|
||||
"/accounts/list",
|
||||
],
|
||||
"/update?site=AccountCluster": ["/accounts/update"],
|
||||
"/create?site=AccountCluster": ["/accounts/create"],
|
||||
},
|
||||
"""
|
||||
NAME: str
|
||||
PAGE_URL: str
|
||||
PAGEINFO: Dict[str, Any]
|
||||
URL: str = ""
|
||||
ENDPOINTS: Dict[str, Any]
|
||||
LANGUAGE_MODELS: Dict[str, Any]
|
||||
SUB_COMPONENTS: Optional[list["PageComponent"]] = None
|
||||
INSTRUCTIONS: Optional[Dict[str, Any]] = None
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
name: str,
|
||||
icon: str,
|
||||
url: str,
|
||||
endpoints: Dict[str, Any],
|
||||
language_models: Dict[str, Any],
|
||||
page_info: Optional[Dict[str, Any]] = None,
|
||||
sub_components: Optional[list["PageComponent"]] = None,
|
||||
instructions: Optional[Dict[str, Any]] = None,
|
||||
):
|
||||
self.NAME = name
|
||||
self.LANGUAGE_MODELS = language_models
|
||||
self.ICON = icon
|
||||
self.URL = url
|
||||
self.SUB_COMPONENTS = sub_components
|
||||
self.ENDPOINTS = endpoints
|
||||
self.PAGEINFO = page_info
|
||||
self.INSTRUCTIONS = instructions
|
||||
|
||||
@property
|
||||
def endpoints(self):
|
||||
return self.ENDPOINTS
|
||||
|
||||
@property
|
||||
def sub_components(self):
|
||||
return self.SUB_COMPONENTS
|
||||
|
||||
@property
|
||||
def as_dict(self):
|
||||
as_dict = {
|
||||
"name": self.NAME,
|
||||
"icon": self.ICON,
|
||||
"url": self.URL,
|
||||
"endpoints": self.ENDPOINTS,
|
||||
"language_models": self.LANGUAGE_MODELS,
|
||||
"page_info": self.PAGEINFO,
|
||||
}
|
||||
if self.INSTRUCTIONS:
|
||||
as_dict["instructions"] = self.INSTRUCTIONS
|
||||
if self.SUB_COMPONENTS:
|
||||
as_dict["sub_components"] = [i.as_dict() for i in self.SUB_COMPONENTS]
|
||||
return as_dict
|
||||
|
||||
|
||||
class Event:
|
||||
@@ -185,7 +262,7 @@ class CategoryCluster:
|
||||
|
||||
TAGS: list
|
||||
PREFIX: str
|
||||
PAGEINFO: Optional[PageInfo]
|
||||
PAGEINFO: Optional[Dict['str', PageInfo]]
|
||||
DESCRIPTION: str
|
||||
ENDPOINTS: dict[str, MethodToEvent] # {"MethodToEvent": MethodToEvent, ...}
|
||||
SUBCATEGORY: Optional[List["CategoryCluster"]] # [CategoryCluster, ...]
|
||||
@@ -200,7 +277,7 @@ class CategoryCluster:
|
||||
description: str,
|
||||
endpoints: dict[str, MethodToEvent],
|
||||
sub_category: list,
|
||||
pageinfo: Optional[PageInfo] = None,
|
||||
pageinfo: Optional[Dict['str', PageInfo]] = None,
|
||||
include_in_schema: Optional[bool] = True,
|
||||
is_client: Optional[bool] = False,
|
||||
):
|
||||
@@ -262,7 +339,14 @@ class CategoryCluster:
|
||||
def retrieve_page_info(self):
|
||||
"""
|
||||
PAGE_INFO:ClusterToMethod = {"PageInfo": {...}, "subCategory": PAGE_INFO:ClusterToMethod}
|
||||
return {"prefix": self.PREFIX, **page_info}
|
||||
"""
|
||||
raise NotImplementedError(
|
||||
"CategoryCluster retrieve_page_info() method is not implemented"
|
||||
)
|
||||
page_infos = {}
|
||||
if isinstance(self.PAGEINFO, dict):
|
||||
for page_key, page_info in dict(self.PAGEINFO).items():
|
||||
if page_info_dict := getattr(page_info, 'as_dict', None):
|
||||
page_infos[page_key] = page_info_dict
|
||||
return {"prefix": self.PREFIX, **page_infos}
|
||||
if hasattr(self.PAGEINFO, 'as_dict'):
|
||||
return {"prefix": self.PREFIX, **self.PAGEINFO.as_dict}
|
||||
return
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from ApiLayers.AllConfigs.Redis.configs import RedisCategoryKeys
|
||||
from ApiLayers.AllConfigs.Redis.configs import RedisCategoryKeys, RedisCategoryPageInfoKeysAction
|
||||
|
||||
|
||||
class PrepareRedisItems:
|
||||
@@ -13,6 +13,8 @@ class PrepareRedisItems:
|
||||
METHOD_FUNCTION_CODES_VALUE: dict = {}
|
||||
ENDPOINT2CLASS_KEY: str = RedisCategoryKeys.ENDPOINT2CLASS
|
||||
ENDPOINT2CLASS_VALUE: dict = {}
|
||||
PAGE_INFO_KEY: str = RedisCategoryPageInfoKeysAction.page_index
|
||||
PAGE_INFO_VALUE: dict = {}
|
||||
|
||||
@property
|
||||
def as_dict(self):
|
||||
@@ -22,6 +24,7 @@ class PrepareRedisItems:
|
||||
self.CLUSTER_FUNCTION_CODES_KEY: self.CLUSTER_FUNCTION_CODES_VALUE,
|
||||
self.METHOD_FUNCTION_CODES_KEY: self.METHOD_FUNCTION_CODES_VALUE,
|
||||
self.ENDPOINT2CLASS_KEY: self.ENDPOINT2CLASS_VALUE,
|
||||
self.PAGE_INFO_KEY: self.PAGE_INFO_VALUE,
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ from ApiLayers.ApiServices.Cluster.create_router import (
|
||||
CreateRouterFromCluster,
|
||||
CreateEndpointFromCluster,
|
||||
)
|
||||
from ApiLayers.AllConfigs.Redis.configs import RedisCategoryKeys
|
||||
from ApiLayers.AllConfigs.Redis.configs import RedisCategoryKeys, RedisCategoryPageInfoKeys
|
||||
from Events.Engine.abstract_class import CategoryCluster
|
||||
from Services.Redis.Actions.actions import RedisActions
|
||||
from Services.Redis.Models.cluster import RedisList
|
||||
@@ -75,6 +75,18 @@ class PrepareEvents(DecoratorModule):
|
||||
self.cluster_controller_group = cluster_controller_group
|
||||
self.valid_redis_items: PrepareRedisItems = PrepareRedisItems()
|
||||
self.prepare_needs()
|
||||
self.prepare_page_info()
|
||||
|
||||
def prepare_page_info(self):
|
||||
"""
|
||||
[SAVE]REDIS => PAGE_MENU_INDEX:PAGE_URL= {...PageInfo}
|
||||
"""
|
||||
for cluster_control in self.cluster_controller_group.imports:
|
||||
cluster = cluster_control.category_cluster
|
||||
if retrieve_page_info := cluster.retrieve_page_info():
|
||||
self.valid_redis_items.PAGE_INFO_VALUE.update({
|
||||
f"{self.valid_redis_items.PAGE_INFO_KEY}:{cluster.name}": retrieve_page_info
|
||||
})
|
||||
|
||||
def prepare_needs(self):
|
||||
# @Pages iterate(ClusterToMethod)
|
||||
@@ -137,6 +149,15 @@ class SetItems2Redis:
|
||||
continue
|
||||
RedisActions.delete(list_keys=[f"{redis_values_to_delete}*"])
|
||||
|
||||
for (
|
||||
redis_values_to_delete,
|
||||
redis_key_type,
|
||||
) in RedisCategoryPageInfoKeys.__annotations__.items():
|
||||
if isinstance(redis_key_type, str):
|
||||
continue
|
||||
RedisActions.delete(list_keys=[f"{redis_values_to_delete}*"]
|
||||
)
|
||||
|
||||
# Save MENU_FIRST_LAYER to Redis
|
||||
redis_list = RedisList(redis_key=RedisCategoryKeys.MENU_FIRST_LAYER)
|
||||
RedisActions.set_json(
|
||||
@@ -193,3 +214,11 @@ class SetItems2Redis:
|
||||
f"{RedisCategoryKeys.ENDPOINT2CLASS}": True,
|
||||
},
|
||||
)
|
||||
|
||||
for redis_key, redis_value in dict_prep.get(
|
||||
PrepareRedisItems.PAGE_INFO_KEY
|
||||
).items():
|
||||
redis_list = RedisList(redis_key=redis_key)
|
||||
RedisActions.set_json(
|
||||
list_keys=redis_list.to_list(), value=redis_value
|
||||
)
|
||||
|
||||
@@ -14,7 +14,11 @@ from ApiLayers.ApiValidations.Custom.token_objects import (
|
||||
)
|
||||
from ApiLayers.ApiValidations.Custom.wrapper_contexts import AuthContext, EventContext
|
||||
from ApiLayers.AllConfigs.Token.config import Auth
|
||||
from Services.PostgresDb.Models.pagination import Pagination, PaginationResult, QueryOptions
|
||||
from Services.PostgresDb.Models.pagination import (
|
||||
Pagination,
|
||||
PaginationResult,
|
||||
QueryOptions,
|
||||
)
|
||||
|
||||
|
||||
TokenDictType = Union[EmployeeTokenObject, OccupantTokenObject]
|
||||
@@ -103,13 +107,19 @@ class ListOptionsBase:
|
||||
|
||||
def init_list_options(self) -> tuple:
|
||||
db_session = self.table.new_session()
|
||||
query_options = QueryOptions(table=self.table, data=self.list_options, model_query=self.model_query)
|
||||
query_options = QueryOptions(
|
||||
table=self.table, data=self.list_options, model_query=self.model_query
|
||||
)
|
||||
return db_session, query_options
|
||||
|
||||
def paginated_result(self, records, response_model: Optional[BaseModel] = None) -> PaginationResult:
|
||||
def paginated_result(
|
||||
self, records, response_model: Optional[BaseModel] = None
|
||||
) -> PaginationResult:
|
||||
pagination = Pagination(data=records)
|
||||
if isinstance(self.list_options, dict):
|
||||
pagination.change(**self.list_options)
|
||||
elif isinstance(self.list_options, BaseModel):
|
||||
pagination.change(**self.list_options.model_dump())
|
||||
return PaginationResult(data=records, pagination=pagination, response_model=response_model)
|
||||
return PaginationResult(
|
||||
data=records, pagination=pagination, response_model=response_model
|
||||
)
|
||||
|
||||
@@ -136,7 +136,9 @@ class PaginationResult:
|
||||
pagination: Pagination state
|
||||
"""
|
||||
|
||||
def __init__(self, data: PostgresResponse, pagination: Pagination, response_model: Any = None):
|
||||
def __init__(
|
||||
self, data: PostgresResponse, pagination: Pagination, response_model: Any = None
|
||||
):
|
||||
self._query = data.query
|
||||
self.pagination = pagination
|
||||
self.response_type = data.is_list
|
||||
@@ -192,7 +194,12 @@ class PaginationResult:
|
||||
|
||||
class QueryOptions:
|
||||
|
||||
def __init__(self, table, data: Union[dict, ListOptions] = None, model_query: Optional[Any] = None):
|
||||
def __init__(
|
||||
self,
|
||||
table,
|
||||
data: Union[dict, ListOptions] = None,
|
||||
model_query: Optional[Any] = None,
|
||||
):
|
||||
self.table = table
|
||||
self.data = data
|
||||
self.model_query = model_query
|
||||
@@ -214,7 +221,9 @@ class QueryOptions:
|
||||
cleaned_model = self.model_query(**cleaned_query)
|
||||
for i in cleaned_query:
|
||||
if hasattr(cleaned_model, i):
|
||||
last_dict[str(cleaned_query_by_model[str(i)][0])] = str(cleaned_query_by_model[str(i)][1])
|
||||
last_dict[str(cleaned_query_by_model[str(i)][0])] = str(
|
||||
cleaned_query_by_model[str(i)][1]
|
||||
)
|
||||
self.data.query = last_dict
|
||||
|
||||
def convert(self) -> tuple:
|
||||
|
||||
@@ -4,7 +4,11 @@ from ApiLayers.ApiValidations.Request import ListOptions
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
from Services.PostgresDb.Models.crud_alchemy import Credentials
|
||||
from Services.PostgresDb.Models.mixin import BasicMixin
|
||||
from Services.PostgresDb.Models.pagination import Pagination, PaginationResult, QueryOptions
|
||||
from Services.PostgresDb.Models.pagination import (
|
||||
Pagination,
|
||||
PaginationResult,
|
||||
QueryOptions,
|
||||
)
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
@@ -42,16 +46,22 @@ if listing:
|
||||
"neighborhood_code__contains": "3",
|
||||
"my_other_field__ilike": "B%",
|
||||
"other_other_field__ilike": "C%",
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
query_options = QueryOptions(table=AddressNeighborhood, data=list_options, model_query=QueryModel)
|
||||
address_neighborhoods = AddressNeighborhood.filter_all(*query_options.convert(), db=new_session)
|
||||
query_options = QueryOptions(
|
||||
table=AddressNeighborhood, data=list_options, model_query=QueryModel
|
||||
)
|
||||
address_neighborhoods = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=new_session
|
||||
)
|
||||
|
||||
pagination = Pagination(data=address_neighborhoods)
|
||||
pagination.change(**list_options)
|
||||
|
||||
pagination_result = PaginationResult(data=address_neighborhoods, pagination=pagination)
|
||||
pagination_result = PaginationResult(
|
||||
data=address_neighborhoods, pagination=pagination
|
||||
)
|
||||
print("as_dict", pagination_result.pagination.as_dict())
|
||||
for i, row in enumerate(pagination_result.data):
|
||||
print(i + 1, row)
|
||||
|
||||
Reference in New Issue
Block a user