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

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

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

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

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

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

View File

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

View File

@@ -1,4 +1,5 @@
from Events.Engine.abstract_class import CategoryCluster
from .info import building_page_info

View File

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

View File

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