events cluster updated with PageInfo

This commit is contained in:
2025-02-03 20:53:31 +03:00
parent f0613e96e8
commit b67090087a
51 changed files with 1041 additions and 286 deletions

View File

@@ -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

View File

@@ -77,8 +77,9 @@ 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
AddressUpdateEvents = address_update_super_user_event
AddressSearchEvents = address_search_super_user_event
AddressSearchEvents = address_search_super_user_event

View File

@@ -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),
)

View File

@@ -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ı",
},
},
},
},
)