events imports are checked
This commit is contained in:
@@ -2,21 +2,24 @@ import typing
|
||||
|
||||
from fastapi import status, HTTPException
|
||||
|
||||
from api_events.events.events.events_bind_modules import ModulesBindOccupantEventMethods
|
||||
from databases import (
|
||||
BuildParts,
|
||||
Build,
|
||||
BuildLivingSpace,
|
||||
OccupantTypes,
|
||||
|
||||
People,
|
||||
)
|
||||
from api_events.events.abstract_class import MethodToEvent, ActionsSchema
|
||||
from api_objects.auth.token_objects import EmployeeTokenObject, OccupantTokenObject
|
||||
|
||||
from api_validations.core_response import return_json_response_from_alchemy
|
||||
from api_validations import (
|
||||
from api_validations.validations_request import (
|
||||
InsertBuildLivingSpace,
|
||||
ListOptions,
|
||||
)
|
||||
from databases.sql_models.event.event import Modules
|
||||
|
||||
|
||||
class BuildingLivingSpacesPartsListEventMethods(MethodToEvent):
|
||||
|
||||
@@ -86,24 +89,23 @@ class BuildingLivingSpacesPartsCreateEventMethods(MethodToEvent):
|
||||
data: InsertBuildLivingSpace,
|
||||
token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject],
|
||||
):
|
||||
from service_app.application import DateTimeLocal
|
||||
from database_sql_models import People
|
||||
from api_library.date_time_actions.date_functions import system_arrow
|
||||
from sqlalchemy.sql import select
|
||||
|
||||
data_dict = data.dump()
|
||||
build_id_list_query = Build.select_action(
|
||||
employee_id=token_dict.selected_company.employee_id
|
||||
)
|
||||
build_part = BuildParts.filter_active(
|
||||
build_part = BuildParts.filter_one(
|
||||
BuildParts.uu_id == data.build_parts_uu_id,
|
||||
BuildParts.build_id.in_([build.id for build in build_id_list_query.all()]),
|
||||
)
|
||||
if not build_part.get(1):
|
||||
if not build_part.data:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_418_IM_A_TEAPOT,
|
||||
detail=f"{data.build_parts_uu_id} - Build Part is not found in database. Check build part uu_id",
|
||||
)
|
||||
build_part = build_part.get(1)
|
||||
build_part = build_part.data
|
||||
|
||||
life_person = People.find_one(uu_id=data.person_uu_id or "")
|
||||
if not life_person:
|
||||
@@ -137,26 +139,33 @@ class BuildingLivingSpacesPartsCreateEventMethods(MethodToEvent):
|
||||
BuildLivingSpace.occupant_type == occupant_type.id,
|
||||
BuildLivingSpace.active == True,
|
||||
BuildLivingSpace.is_confirmed == True,
|
||||
str(DateTimeLocal.now()) < BuildLivingSpace.expiry_ends,
|
||||
str(DateTimeLocal.now()) >= BuildLivingSpace.expiry_starts,
|
||||
str(system_arrow.now()) < BuildLivingSpace.expiry_ends,
|
||||
str(system_arrow.now()) >= BuildLivingSpace.expiry_starts,
|
||||
]
|
||||
)
|
||||
.order_by(BuildLivingSpace.expiry_starts.desc())
|
||||
).first()
|
||||
|
||||
last_living_space = BuildLivingSpace.find_one(
|
||||
id=living_space_id[0] if living_space_id else None
|
||||
last_living_space = BuildLivingSpace.filter_one(
|
||||
BuildLivingSpace.id==living_space_id[0] if living_space_id else None
|
||||
)
|
||||
|
||||
data_dict["expiry_starts"] = str(DateTimeLocal.now())
|
||||
data_dict["expiry_starts"] = str(system_arrow.now())
|
||||
created_living_space = BuildLivingSpace.create_action(
|
||||
data=data_dict, token_dict=token_dict
|
||||
)
|
||||
|
||||
if last_living_space:
|
||||
if last_living_space.expiry_ends > DateTimeLocal.now():
|
||||
last_living_space.expiry_ends = str(DateTimeLocal.shift(minutes=-10))
|
||||
if last_living_space.expiry_ends > system_arrow.now():
|
||||
last_living_space.expiry_ends = str(system_arrow.shift(minutes=-10))
|
||||
last_living_space.save()
|
||||
|
||||
user_module = Modules.filter_one(Modules.module_code == "USR-PUB")
|
||||
ModulesBindOccupantEventMethods.modules_bind_occupant_system(
|
||||
build_living_space_id=created_living_space.id,
|
||||
modules_id=user_module.id,
|
||||
)
|
||||
created_living_space.save()
|
||||
return created_living_space
|
||||
|
||||
|
||||
@@ -164,13 +173,12 @@ class BuildingLivingSpacesPartsUpdateEventMethods(MethodToEvent):
|
||||
|
||||
event_type = "UPDATE"
|
||||
__event_keys__ = {
|
||||
"70b4666f-4ceb-46ec-b89e-24be8712f0e7": "building_build_parts_update"
|
||||
"70b4666f-4ceb-46ec-b89e-24be8712f0e7": "building_live_space_update",
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def building_build_parts_update(cls, build_uu_id: str, data, token_dict):
|
||||
from service_app.application import DateTimeLocal
|
||||
from database_sql_models import People
|
||||
def building_live_space_update(cls, build_uu_id: str, data, token_dict):
|
||||
from api_library.date_time_actions.date_functions import system_arrow
|
||||
from sqlalchemy.sql import select
|
||||
|
||||
data_dict = data.dump()
|
||||
@@ -200,11 +208,11 @@ class BuildingLivingSpacesPartsUpdateEventMethods(MethodToEvent):
|
||||
BuildLivingSpace.expiry_starts.desc()
|
||||
)
|
||||
living_space_id = BuildLivingSpace.session.execute(living_spaces).first()
|
||||
last_living_space = BuildLivingSpace.find_one(
|
||||
id=getattr(living_space_id[0], "id", None) if living_space_id else None
|
||||
last_living_space = BuildLivingSpace.filter_one(
|
||||
BuildLivingSpace.id==getattr(living_space_id[0], "id", None) if living_space_id else None
|
||||
)
|
||||
|
||||
data_dict["expiry_starts"] = DateTimeLocal.now()
|
||||
data_dict["expiry_starts"] = str(system_arrow.now())
|
||||
data_dict["is_tenant_live"] = bool(data.is_tenant_live)
|
||||
data_dict["build_parts_id"] = build_part.id
|
||||
if data_dict["is_tenant_live"]:
|
||||
|
||||
Reference in New Issue
Block a user