2 chained application designed and new stage inited
This commit is contained in:
@@ -13,6 +13,9 @@ from Validations.defaults.validations import CommonHeaders
|
||||
from Schemas import (
|
||||
Build,
|
||||
BuildParts,
|
||||
ApiEnumDropdown,
|
||||
BuildTypes,
|
||||
BuildParts,
|
||||
AccountRecords,
|
||||
)
|
||||
|
||||
@@ -55,17 +58,43 @@ SuperPartsDeleteEvent = Event(
|
||||
|
||||
|
||||
def super_parts_list_callable(list_options: PaginateOnly, headers: CommonHeaders):
|
||||
return {
|
||||
"message": "MSG0003-LIST",
|
||||
"data": None,
|
||||
"completed": True,
|
||||
}
|
||||
list_options = PaginateOnly(**list_options.model_dump())
|
||||
# TODO: Pydantic Model must be implemnted for list_options.query
|
||||
with Build.new_session() as db_session:
|
||||
BuildParts.set_session(db_session)
|
||||
base_query = BuildParts.query.filter()
|
||||
build_parts_records_query = base_query
|
||||
if list_options.query:
|
||||
build_parts_records_query = BuildParts.query.filter(*BuildParts.convert(list_options.query))
|
||||
pagination = Pagination(data=build_parts_records_query, base_query=base_query)
|
||||
pagination.change(**list_options.model_dump())
|
||||
pagination_result = PaginationResult(data=build_parts_records_query, pagination=pagination, response_model=None)
|
||||
return EndpointResponse(message="MSG0003-LIST", pagination_result=pagination_result).response
|
||||
|
||||
|
||||
SuperPartsListEvent.event_callable = super_parts_list_callable
|
||||
|
||||
|
||||
def super_parts_create_callable(data, headers: CommonHeaders):
|
||||
|
||||
with Build.new_session() as db_session:
|
||||
|
||||
Build.set_session(db_session)
|
||||
BuildParts.set_session(db_session)
|
||||
BuildTypes.set_session(db_session)
|
||||
ApiEnumDropdown.set_session(db_session)
|
||||
|
||||
build = Build.query.filter(Build.uu_id == data.build_uu_id).first()
|
||||
part_direction = ApiEnumDropdown.query.filter(ApiEnumDropdown.uu_id == data.part_direction_uu_id).first()
|
||||
part_type = BuildTypes.query.filter(BuildTypes.uu_id == data.part_type_uu_id).first()
|
||||
|
||||
build_parts_created = BuildParts.create(
|
||||
**data.model_dump(),
|
||||
build_id=getattr(build, "id", None),
|
||||
part_direction_id=getattr(part_direction, "id", None),
|
||||
part_type_id=getattr(part_type, "id", None)
|
||||
)
|
||||
build_parts_created.save()
|
||||
return {
|
||||
"message": "MSG0001-INSERT",
|
||||
"data": None,
|
||||
@@ -77,6 +106,25 @@ SuperPartsCreateEvent.event_callable = super_parts_create_callable
|
||||
|
||||
|
||||
def super_parts_update_callable(data, headers: CommonHeaders):
|
||||
with Build.new_session() as db_session:
|
||||
|
||||
Build.set_session(db_session)
|
||||
BuildParts.set_session(db_session)
|
||||
BuildTypes.set_session(db_session)
|
||||
ApiEnumDropdown.set_session(db_session)
|
||||
|
||||
build = Build.query.filter(Build.uu_id == data.build_uu_id).first()
|
||||
part_direction = ApiEnumDropdown.query.filter(ApiEnumDropdown.uu_id == data.part_direction_uu_id).first()
|
||||
part_type = BuildTypes.query.filter(BuildTypes.uu_id == data.part_type_uu_id).first()
|
||||
|
||||
build_parts_updated = BuildParts.query.filter(BuildParts.uu_id == data.uu_id).first()
|
||||
build_parts_updated.update(
|
||||
**data.model_dump(exclude_unset=True, exclude_none=True),
|
||||
build_id=getattr(build, "id", None),
|
||||
part_direction_id=getattr(part_direction, "id", None),
|
||||
part_type_id=getattr(part_type, "id", None)
|
||||
)
|
||||
build_parts_updated.save()
|
||||
return {
|
||||
"message": "MSG0002-UPDATE",
|
||||
"data": None,
|
||||
|
||||
Reference in New Issue
Block a user