events cluster updated with PageInfo
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -29,25 +29,29 @@ from Services.PostgresDb.Models.pagination import PaginationResult
|
||||
|
||||
class AccountListEventMethods(BaseRouteModel):
|
||||
"""
|
||||
Account records list by with full privileges.
|
||||
Accepts List Options
|
||||
{
|
||||
"data": {
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"order_field": ["uu_id",]
|
||||
"order_type": ["desc"],
|
||||
"query": {
|
||||
"process_date__gt": "2021-09-01",
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
Account records list by with full privileges.
|
||||
Accepts List Options
|
||||
{
|
||||
"data": {
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"order_field": ["uu_id",]
|
||||
"order_type": ["desc"],
|
||||
"query": {
|
||||
"process_date__gt": "2021-09-01",
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
|
||||
@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
|
||||
@@ -93,4 +94,4 @@ class ListAccountRecord(ListOptions):
|
||||
class AccountRequestValidators:
|
||||
InsertAccountRecord = InsertAccountRecord
|
||||
UpdateAccountRecord = UpdateAccountRecord
|
||||
ListAccountRecord = ListAccountRecord
|
||||
ListAccountRecord = ListAccountRecord
|
||||
|
||||
Reference in New Issue
Block a user