api added

This commit is contained in:
2025-05-30 21:10:44 +03:00
parent c44a724a05
commit e5829f0525
72 changed files with 5576 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
from .builds.cluster import BuildRouterCluster
from .areas.cluster import AreaRouterCluster
from .living_space.cluster import LivingSpaceRouterCluster
from .building_parts.cluster import PartsRouterCluster
__all__ = [
"BuildRouterCluster",
"AreaRouterCluster",
"LivingSpaceRouterCluster",
"PartsRouterCluster",
]

View File

@@ -0,0 +1,27 @@
from api_initializer.event_clusters import EventCluster, RouterCluster
from index import endpoints_index
from .supers_events import (
SuperAreaListEvent,
SuperAreaCreateEvent,
SuperAreaUpdateEvent,
SuperAreaDeleteEvent,
)
AreaRouterCluster = RouterCluster(name="AreaRouterCluster")
AreaListEventCluster = EventCluster(name="AreaListEventCluster", endpoint_uu_id=endpoints_index["AreaList"])
AreaListEventCluster.add_event(SuperAreaListEvent)
AreaCreateEventCluster = EventCluster(name="AreaCreateEventCluster", endpoint_uu_id=endpoints_index["AreaCreate"])
AreaCreateEventCluster.add_event(SuperAreaCreateEvent)
AreaUpdateEventCluster = EventCluster(name="AreaUpdateEventCluster", endpoint_uu_id=endpoints_index["AreaUpdate"])
AreaUpdateEventCluster.add_event(SuperAreaUpdateEvent)
AreaDeleteEventCluster = EventCluster(name="AreaDeleteEventCluster", endpoint_uu_id=endpoints_index["AreaDelete"])
AreaDeleteEventCluster.add_event(SuperAreaDeleteEvent)
AreaRouterCluster.set_event_cluster(AreaListEventCluster)
AreaRouterCluster.set_event_cluster(AreaCreateEventCluster)
AreaRouterCluster.set_event_cluster(AreaUpdateEventCluster)
AreaRouterCluster.set_event_cluster(AreaDeleteEventCluster)

View File

@@ -0,0 +1,122 @@
from typing import Any
from api_initializer.event_clusters import Event
from api_validations.response import (
PaginateOnly,
Pagination,
PaginationResult,
PostgresResponseSingle,
PostgresResponse,
EndpointResponse
)
from schemas import (
BuildArea,
Build,
BuildParts,
AccountRecords,
)
from api_validations.defaults.validations import CommonHeaders
# List all area Super User
SuperAreaListEvent = Event(
name="super_area_list",
key="0d5ba7be-028c-43ce-9a99-f495f812a835",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Area List all endpoint",
)
# Create area Super User
SuperAreaCreateEvent = Event(
name="super_area_create",
key="0ba2a06d-f4fa-47b9-a305-2225414ffc4a",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Area Create endpoint",
)
# Update area Super User
SuperAreaUpdateEvent = Event(
name="super_area_update",
key="ecec956a-eadf-4556-b4e1-4ee81a6b8fb2",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Area Update endpoint",
)
# Delete area Super User
SuperAreaDeleteEvent = Event(
name="super_area_delete",
key="4b2ca548-4113-4942-8a76-1f4337fba98a",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Area Delete endpoint",
)
def super_area_list_callable(list_options: PaginateOnly, headers: CommonHeaders):
list_options = PaginateOnly(**list_options.model_dump())
if token.is_employee:
raise Exception("Forbidden for employees")
# TODO: Pydantic Model must be implemnted for list_options.query
with AccountRecords.new_session() as db_session:
AccountRecords.set_session(db_session)
list_of_fields = [
AccountRecords.iban,
AccountRecords.bank_date,
AccountRecords.currency,
AccountRecords.currency_value,
AccountRecords.process_comment,
AccountRecords.add_comment_note,
AccountRecords.receive_debit,
AccountRecords.is_email_send,
AccountRecords.is_notification_send,
]
account_records_query = db_session.query(*list_of_fields
).join(BuildParts, BuildParts.id == AccountRecords.build_parts_id
).filter(BuildParts.id == token.selected_occupant.build_part_id)
if list_options.query:
account_records_query = account_records_query.filter(*AccountRecords.convert(list_options.query))
pagination = Pagination(data=account_records_query)
pagination.change(**list_options.model_dump())
pagination_result = PaginationResult(data=account_records_query, pagination=pagination)
return EndpointResponse(message="MSG0003-LIST", pagination_result=pagination_result).response
SuperAreaListEvent.event_callable = super_area_list_callable
def super_area_create_callable(data, headers: CommonHeaders):
return {
"message": "MSG0001-INSERT",
"data": data,
"completed": True,
}
SuperAreaCreateEvent.event_callable = super_area_create_callable
def super_area_update_callable(data, headers: CommonHeaders):
return {
"message": "MSG0002-UPDATE",
"data": data,
"completed": True,
}
SuperAreaUpdateEvent.event_callable = super_area_update_callable
def super_area_delete_callable(uu_id: str, headers: CommonHeaders):
return {
"message": "MSG0003-DELETE",
"data": data,
"completed": True,
}
SuperAreaDeleteEvent.event_callable = super_area_delete_callable

View File

@@ -0,0 +1,27 @@
from api_initializer.event_clusters import EventCluster, RouterCluster
from index import endpoints_index
from .supers_events import (
SuperPartsListEvent,
SuperPartsCreateEvent,
SuperPartsUpdateEvent,
SuperPartsDeleteEvent,
)
PartsRouterCluster = RouterCluster(name="PartsRouterCluster")
PartsListEventCluster = EventCluster(name="PartsListEventCluster", endpoint_uu_id=endpoints_index["PartsList"])
PartsListEventCluster.add_event(SuperPartsListEvent)
PartsCreateEventCluster = EventCluster(name="PartsCreateEventCluster", endpoint_uu_id=endpoints_index["PartsCreate"])
PartsCreateEventCluster.add_event(SuperPartsCreateEvent)
PartsUpdateEventCluster = EventCluster(name="PartsUpdateEventCluster", endpoint_uu_id=endpoints_index["PartsUpdate"])
PartsUpdateEventCluster.add_event(SuperPartsUpdateEvent)
PartsDeleteEventCluster = EventCluster(name="PartsDeleteEventCluster", endpoint_uu_id=endpoints_index["PartsDelete"])
PartsDeleteEventCluster.add_event(SuperPartsDeleteEvent)
PartsRouterCluster.set_event_cluster(PartsListEventCluster)
PartsRouterCluster.set_event_cluster(PartsCreateEventCluster)
PartsRouterCluster.set_event_cluster(PartsUpdateEventCluster)
PartsRouterCluster.set_event_cluster(PartsDeleteEventCluster)

View File

@@ -0,0 +1,98 @@
from typing import Any
from api_initializer.event_clusters import Event
from api_validations.response import (
PaginateOnly,
Pagination,
PaginationResult,
PostgresResponseSingle,
PostgresResponse,
EndpointResponse
)
from schemas import (
Build,
BuildParts,
AccountRecords,
)
from api_validations.defaults.validations import CommonHeaders
# List all endpoint Super Parts
SuperPartsListEvent = Event(
name="super_parts_list",
key="018e659d-380d-4b2a-b5a4-d77530cb8de0",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Parts List all endpoint",
)
# Create endpoint Super Parts
SuperPartsCreateEvent = Event(
name="super_parts_create",
key="fdfede54-f0e7-4d48-8eae-269479ad9abb",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Parts Create endpoint",
)
# Update endpoint Super Parts
SuperPartsUpdateEvent = Event(
name="super_parts_update",
key="ace6137c-fe8e-45bd-ae51-bc1c293f8373",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Parts Update endpoint",
)
# Delete endpoint Super Parts
SuperPartsDeleteEvent = Event(
name="super_parts_delete",
key="8fb7f505-7a3a-4260-9959-ae0e5c8f9bfe",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Parts Delete endpoint",
)
def super_parts_list_callable(list_options: PaginateOnly, headers: CommonHeaders):
return {
"message": "MSG0003-LIST",
"data": None,
"completed": True,
}
SuperPartsListEvent.event_callable = super_parts_list_callable
def super_parts_create_callable(data, headers: CommonHeaders):
return {
"message": "MSG0001-INSERT",
"data": None,
"completed": True,
}
SuperPartsCreateEvent.event_callable = super_parts_create_callable
def super_parts_update_callable(data, headers: CommonHeaders):
return {
"message": "MSG0002-UPDATE",
"data": None,
"completed": True,
}
SuperPartsUpdateEvent.event_callable = super_parts_update_callable
def super_parts_delete_callable(uu_id: str, headers: CommonHeaders):
return {
"message": "MSG0003-DELETE",
"data": None,
"completed": True,
}
SuperPartsDeleteEvent.event_callable = super_parts_delete_callable

View File

@@ -0,0 +1,27 @@
from api_initializer.event_clusters import EventCluster, RouterCluster
from index import endpoints_index
from .supers_events import (
SuperBuildListEvent,
SuperBuildCreateEvent,
SuperBuildUpdateEvent,
SuperBuildDeleteEvent,
)
BuildRouterCluster = RouterCluster(name="BuildRouterCluster")
BuildListEventCluster = EventCluster(name="BuildListEventCluster", endpoint_uu_id=endpoints_index["BuildList"])
BuildListEventCluster.add_event(SuperBuildListEvent)
BuildCreateEventCluster = EventCluster(name="BuildCreateEventCluster", endpoint_uu_id=endpoints_index["BuildCreate"])
BuildCreateEventCluster.add_event(SuperBuildCreateEvent)
BuildUpdateEventCluster = EventCluster(name="BuildUpdateEventCluster", endpoint_uu_id=endpoints_index["BuildUpdate"])
BuildUpdateEventCluster.add_event(SuperBuildUpdateEvent)
BuildDeleteEventCluster = EventCluster(name="BuildDeleteEventCluster", endpoint_uu_id=endpoints_index["BuildDelete"])
BuildDeleteEventCluster.add_event(SuperBuildDeleteEvent)
BuildRouterCluster.set_event_cluster(BuildListEventCluster)
BuildRouterCluster.set_event_cluster(BuildCreateEventCluster)
BuildRouterCluster.set_event_cluster(BuildUpdateEventCluster)
BuildRouterCluster.set_event_cluster(BuildDeleteEventCluster)

View File

@@ -0,0 +1,118 @@
from typing import Any
from api_initializer.event_clusters import Event
from api_validations.response import (
PaginateOnly,
Pagination,
PaginationResult,
PostgresResponseSingle,
PostgresResponse,
EndpointResponse
)
from schemas import (
Build,
BuildParts,
AccountRecords,
)
from api_validations.defaults.validations import CommonHeaders
# List all endpoint FL-REP
SuperBuildListEvent = Event(
name="build_list",
key="e8586858-db39-4520-bb1a-338ab9c5f043",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Build List all endpoint",
)
SuperBuildCreateEvent = Event(
name="build_create",
key="79519e0f-c4a6-4afc-a494-d0e547ba39bc",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Build Create endpoint",
)
SuperBuildUpdateEvent = Event(
name="build_update",
key="ca51080e-11f2-46f7-a1ba-caa1c40b3fd6",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Build Update endpoint",
)
SuperBuildDeleteEvent = Event(
name="build_delete",
key="a30d32cc-c931-41d6-8a66-d6c04479098f",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Build Delete endpoint",
)
def super_build_list_callable(list_options: PaginateOnly, headers: CommonHeaders):
list_options = PaginateOnly(**list_options.model_dump())
if token.is_employee:
raise Exception("Forbidden for employees")
# TODO: Pydantic Model must be implemnted for list_options.query
with AccountRecords.new_session() as db_session:
AccountRecords.set_session(db_session)
list_of_fields = [
AccountRecords.iban,
AccountRecords.bank_date,
AccountRecords.currency,
AccountRecords.currency_value,
AccountRecords.process_comment,
AccountRecords.add_comment_note,
AccountRecords.receive_debit,
AccountRecords.is_email_send,
AccountRecords.is_notification_send,
]
account_records_query = db_session.query(*list_of_fields
).join(BuildParts, BuildParts.id == AccountRecords.build_parts_id
).filter(BuildParts.id == token.selected_occupant.build_part_id)
if list_options.query:
account_records_query = account_records_query.filter(*AccountRecords.convert(list_options.query))
pagination = Pagination(data=account_records_query)
pagination.change(**list_options.model_dump())
pagination_result = PaginationResult(data=account_records_query, pagination=pagination)
return EndpointResponse(message="MSG0003-LIST", pagination_result=pagination_result).response
SuperBuildListEvent.event_callable = super_build_list_callable
def super_build_create_callable(data, headers: CommonHeaders):
return {
"message": "MSG0001-INSERT",
"data": None,
"completed": True,
}
SuperBuildCreateEvent.event_callable = super_build_create_callable
def super_build_update_callable(data, headers: CommonHeaders):
return {
"message": "MSG0002-UPDATE",
"data": None,
"completed": True,
}
SuperBuildUpdateEvent.event_callable = super_build_update_callable
def super_build_delete_callable(uu_id: str, headers: CommonHeaders):
return {
"message": "MSG0003-DELETE",
"data": None,
"completed": True,
}
SuperBuildDeleteEvent.event_callable = super_build_delete_callable

View File

@@ -0,0 +1,27 @@
from api_initializer.event_clusters import EventCluster, RouterCluster
from index import endpoints_index
from .supers_events import (
SuperLivingSpaceListEvent,
SuperLivingSpaceCreateEvent,
SuperLivingSpaceUpdateEvent,
SuperLivingSpaceDeleteEvent,
)
LivingSpaceRouterCluster = RouterCluster(name="LivingSpaceRouterCluster")
LivingSpaceListEventCluster = EventCluster(name="LivingSpaceListEventCluster", endpoint_uu_id=endpoints_index["LivingSpaceList"])
LivingSpaceListEventCluster.add_event(SuperLivingSpaceListEvent)
LivingSpaceCreateEventCluster = EventCluster(name="LivingSpaceCreateEventCluster", endpoint_uu_id=endpoints_index["LivingSpaceCreate"])
LivingSpaceCreateEventCluster.add_event(SuperLivingSpaceCreateEvent)
LivingSpaceUpdateEventCluster = EventCluster(name="LivingSpaceUpdateEventCluster", endpoint_uu_id=endpoints_index["LivingSpaceUpdate"])
LivingSpaceUpdateEventCluster.add_event(SuperLivingSpaceUpdateEvent)
LivingSpaceDeleteEventCluster = EventCluster(name="LivingSpaceDeleteEventCluster", endpoint_uu_id=endpoints_index["LivingSpaceDelete"])
LivingSpaceDeleteEventCluster.add_event(SuperLivingSpaceDeleteEvent)
LivingSpaceRouterCluster.set_event_cluster(LivingSpaceListEventCluster)
LivingSpaceRouterCluster.set_event_cluster(LivingSpaceCreateEventCluster)
LivingSpaceRouterCluster.set_event_cluster(LivingSpaceUpdateEventCluster)
LivingSpaceRouterCluster.set_event_cluster(LivingSpaceDeleteEventCluster)

View File

@@ -0,0 +1,95 @@
from typing import Any
from api_initializer.event_clusters import Event
from api_validations.response import (
PaginateOnly,
Pagination,
PaginationResult,
PostgresResponseSingle,
PostgresResponse,
EndpointResponse
)
from schemas import (
Build,
BuildParts,
AccountRecords,
)
from api_validations.defaults.validations import CommonHeaders
# List all endpoint FL-REP
SuperLivingSpaceListEvent = Event(
name="super_living_space_list",
key="e3eced11-c464-4893-8b49-d2858c160ed0",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Living Space List all endpoint",
)
SuperLivingSpaceCreateEvent = Event(
name="super_living_space_create",
key="9e26f770-3475-4831-9da9-4684119b13ae",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Living Space Create endpoint",
)
SuperLivingSpaceUpdateEvent = Event(
name="super_living_space_update",
key="ecd15d27-e5e8-4bd1-972b-9b4508cfac77",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Living Space Update endpoint",
)
SuperLivingSpaceDeleteEvent = Event(
name="super_living_space_delete",
key="4fcadb8c-2e26-4af3-acb5-bcbf87cae0c0",
request_validator=None, # TODO: Add request validator
response_validator=None, # TODO: Add response validator
description="Super Living Space Delete endpoint",
)
def super_living_space_list_callable(list_options: PaginateOnly, headers: CommonHeaders):
return {
"message": "MSG0003-LIST",
"data": None,
"completed": True,
}
SuperLivingSpaceListEvent.event_callable = super_living_space_list_callable
def super_living_space_create_callable(data, headers: CommonHeaders):
return {
"message": "MSG0001-INSERT",
"data": None,
"completed": True,
}
SuperLivingSpaceCreateEvent.event_callable = super_living_space_create_callable
def super_living_space_update_callable(data, headers: CommonHeaders):
return {
"message": "MSG0002-UPDATE",
"data": None,
"completed": True,
}
SuperLivingSpaceUpdateEvent.event_callable = super_living_space_update_callable
def super_living_space_delete_callable(uu_id: str, headers: CommonHeaders):
return {
"message": "MSG0003-DELETE",
"data": None,
"completed": True,
}
SuperLivingSpaceDeleteEvent.event_callable = super_living_space_delete_callable