auth endpoints added

This commit is contained in:
2025-04-03 14:19:34 +03:00
parent 3583d178e9
commit ee405133be
37 changed files with 976 additions and 570 deletions

View File

@@ -244,7 +244,7 @@ class Build(CrudCollection):
livable_parts = BuildParts.filter_all(
BuildParts.build_id == self.id,
BuildParts.human_livable == True,
db=db_session
db=db_session,
)
if not livable_parts.data:
raise HTTPException(
@@ -260,8 +260,7 @@ class Build(CrudCollection):
for part in self.parts:
building_types = {}
build_type = BuildTypes.filter_by_one(
system=True, id=part.build_part_type_id,
db=db_session
system=True, id=part.build_part_type_id, db=db_session
).data
if build_type.type_code in building_types:
building_types[build_type.type_code]["list"].append(part.part_no)
@@ -354,7 +353,9 @@ class BuildParts(CrudCollection):
if build_type := BuildTypes.filter_by_one(
system=True, id=self.part_type_id, db=db_session
).data:
return f"{str(build_type.type_name).upper()} : {str(self.part_no).upper()}"
return (
f"{str(build_type.type_name).upper()} : {str(self.part_no).upper()}"
)
return f"Undefined:{str(build_type.type_name).upper()}"
@@ -430,7 +431,7 @@ class BuildLivingSpace(CrudCollection):
),
cls.start_date < formatted_date - timedelta(days=add_days),
cls.stop_date > formatted_date + timedelta(days=add_days),
db=db_session
db=db_session,
)
return living_spaces.data, living_spaces.count
@@ -625,4 +626,3 @@ class BuildPersonProviding(CrudCollection):
),
{"comment": "People providing services for building"},
)

View File

@@ -92,6 +92,7 @@ class BuildDecisionBook(CrudCollection):
@classmethod
def retrieve_active_rbm(cls):
from Schemas.building.build import Build
with cls.new_session() as db_session:
related_build = Build.find_one(id=cls.build_id)
related_date = arrow.get(related_build.build_date)
@@ -103,7 +104,7 @@ class BuildDecisionBook(CrudCollection):
cls.expiry_ends <= date_processed,
cls.decision_type == "RBM",
cls.build_id == related_build.id,
db=db_session
db=db_session,
).data
if not book:
cls.raise_http_exception(
@@ -220,7 +221,8 @@ class BuildDecisionBookInvitations(CrudCollection):
first_book_invitation = BuildDecisionBookInvitations.filter_one(
BuildDecisionBookInvitations.build_id
== token_dict.selected_occupant.build_id,
BuildDecisionBookInvitations.decision_book_id == selected_decision_book.id,
BuildDecisionBookInvitations.decision_book_id
== selected_decision_book.id,
BuildDecisionBookInvitations.invitation_attempt == 1,
db=db_session,
).data
@@ -247,11 +249,15 @@ class BuildDecisionBookInvitations(CrudCollection):
second_book_invitation = BuildDecisionBookInvitations.filter_one_system(
BuildDecisionBookInvitations.build_id
== token_dict.selected_occupant.build_id,
BuildDecisionBookInvitations.decision_book_id == selected_decision_book.id,
BuildDecisionBookInvitations.decision_book_id
== selected_decision_book.id,
BuildDecisionBookInvitations.invitation_attempt == 2,
db=db_session,
).data
if not valid_invite_count >= need_attend_count and not second_book_invitation:
if (
not valid_invite_count >= need_attend_count
and not second_book_invitation
):
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail=f"In order meeting to be held, {math.ceil(need_attend_count)} people must attend "
@@ -336,7 +342,7 @@ class BuildDecisionBookPerson(CrudCollection):
with self.new_session() as db_session:
all_decision_book_people = self.filter_all_system(
BuildDecisionBookPersonOccupants.invite_id == self.invite_id,
db=db_session
db=db_session,
)
BuildDecisionBookPersonOccupants.pre_query = all_decision_book_people.query
return BuildDecisionBookPersonOccupants.filter_all_system(
@@ -346,8 +352,9 @@ class BuildDecisionBookPerson(CrudCollection):
def get_occupant_types(self):
with self.new_session() as db_session:
if occupants := BuildDecisionBookPersonOccupants.filter_all(
BuildDecisionBookPersonOccupants.build_decision_book_person_id == self.id,
db=db_session
BuildDecisionBookPersonOccupants.build_decision_book_person_id
== self.id,
db=db_session,
).data:
return occupants
return
@@ -355,7 +362,8 @@ class BuildDecisionBookPerson(CrudCollection):
def check_occupant_type(self, occupant_type):
with self.new_session() as db_session:
book_person_occupant_type = BuildDecisionBookPersonOccupants.filter_one(
BuildDecisionBookPersonOccupants.build_decision_book_person_id == self.id,
BuildDecisionBookPersonOccupants.build_decision_book_person_id
== self.id,
BuildDecisionBookPersonOccupants.occupant_type_id == occupant_type.id,
BuildDecisionBookPersonOccupants.active == True,
BuildDecisionBookPersonOccupants.is_confirmed == True,