events updated
This commit is contained in:
parent
4199cc16b4
commit
83b3a5989e
|
|
@ -1,6 +1,7 @@
|
|||
from fastapi import status
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
from api_validations.core_response import AlchemyJsonResponse
|
||||
from api_validations.validations_request import (
|
||||
InsertDuties,
|
||||
UpdateDuties,
|
||||
|
|
@ -32,12 +33,11 @@ class DutiesListEventMethods(MethodToEvent):
|
|||
records = Duties.filter_all(
|
||||
Duties.company_id == token_dict.selected_company.company_id,
|
||||
)
|
||||
return {
|
||||
"completed": True if records.count else False,
|
||||
"status": "success",
|
||||
"data": records.get_dict(),
|
||||
}
|
||||
|
||||
return AlchemyJsonResponse(
|
||||
completed=True,
|
||||
result=records,
|
||||
message="List of Duties records",
|
||||
)
|
||||
|
||||
class DutiesGetByUUIDEventMethods(MethodToEvent):
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent):
|
|||
decision_book = BuildDecisionBook.filter_one(
|
||||
BuildDecisionBook.uu_id == data.build_decision_book_uu_id,
|
||||
*BuildDecisionBook.valid_record_args(BuildDecisionBook),
|
||||
)
|
||||
).data
|
||||
if not decision_book:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
|
|
@ -55,7 +55,7 @@ class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent):
|
|||
Build.pre_query = Build.select_action(
|
||||
employee_id=token_dict.selected_company.employee_id,
|
||||
filter_expr=[
|
||||
Build.uu_id == decision_book.build_decision_book_uu_id,
|
||||
Build.uu_id == str(decision_book.uu_id),
|
||||
],
|
||||
)
|
||||
reachable_building = Build.filter_all()
|
||||
|
|
@ -70,7 +70,7 @@ class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent):
|
|||
token_dict.selected_company.duty_id,
|
||||
token_dict.selected_company.bulk_duties_id,
|
||||
],
|
||||
filter_expr=[Companies.id == decision_book.company_id],
|
||||
filter_expr=[Companies.id == decision_book.resp_company_id],
|
||||
)
|
||||
reachable_companies = Companies.filter_all()
|
||||
if not reachable_companies.data:
|
||||
|
|
|
|||
|
|
@ -34,10 +34,13 @@ class UserListEventMethods(MethodToEvent):
|
|||
list_options: ListOptions,
|
||||
token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject],
|
||||
):
|
||||
# Users.pre_query = Users.select_action(duty_id_list=[
|
||||
# token_dict.selected_company.duty_id,
|
||||
# token_dict.selected_company.bulk_duties_id
|
||||
# ])
|
||||
if isinstance(token_dict, OccupantTokenObject):
|
||||
raise Users.raise_http_exception(
|
||||
status_code="HTTP_403_FORBIDDEN",
|
||||
message="Occupant object can not list users",
|
||||
error_case="NOTAUTHORIZED",
|
||||
data={},
|
||||
)
|
||||
if "user_uu_id_list" in list_options.query:
|
||||
people_ids = list_options.query.pop("user_uu_id_list")
|
||||
people_id_list = (
|
||||
|
|
@ -46,11 +49,11 @@ class UserListEventMethods(MethodToEvent):
|
|||
Users.uu_id.in_(people_ids), *Users.valid_record_args(Users)
|
||||
).data
|
||||
)
|
||||
People.filter_attr = list_options
|
||||
records = People.filter_all(
|
||||
People.id.in_(people_id_list),
|
||||
*People.valid_record_args(People),
|
||||
).data
|
||||
Users.filter_attr = list_options
|
||||
records = Users.filter_all(
|
||||
Users.person_id.in_(people_id_list),
|
||||
*Users.valid_record_args(Users),
|
||||
)
|
||||
return AlchemyJsonResponse(
|
||||
completed=True,
|
||||
message="Users are listed successfully",
|
||||
|
|
@ -59,7 +62,7 @@ class UserListEventMethods(MethodToEvent):
|
|||
Users.filter_attr = list_options
|
||||
records = Users.filter_all(
|
||||
*Users.valid_record_args(Users),
|
||||
).data
|
||||
)
|
||||
return AlchemyJsonResponse(
|
||||
completed=True,
|
||||
message="Users are listed successfully",
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ def parse_token_object_to_dict(request): # from requests import Request
|
|||
return valid_token
|
||||
endpoint_active = EndpointRestriction.filter_one(
|
||||
EndpointRestriction.endpoint_name.ilike(f"%{endpoint_name}%"),
|
||||
*EndpointRestriction.valid_record_args(EndpointRestriction),
|
||||
system=True,
|
||||
).data
|
||||
if not endpoint_active:
|
||||
raise HTTPException(
|
||||
|
|
@ -24,7 +24,7 @@ def parse_token_object_to_dict(request): # from requests import Request
|
|||
if valid_token.user_type == 1:
|
||||
if not valid_token.selected_company:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_418_IM_A_TEAPOT,
|
||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
detail="Selected company is not found in the token object.",
|
||||
)
|
||||
selected_event = Events.filter_one(
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ class AlchemyJsonResponse:
|
|||
|
||||
filter_model = first_item.filter_attr
|
||||
total_count = cls.result.query.limit(None).offset(None).count()
|
||||
total_page_number = round(total_count / int(first_item.filter_attr.size), 0) + 1
|
||||
total_page_number = round(total_count / int(first_item.filter_attr.size), 0)
|
||||
|
||||
pagination_dict = {
|
||||
"size/total_count": [cls.result.count, total_count],
|
||||
|
|
|
|||
|
|
@ -10,13 +10,12 @@ engine_config = {
|
|||
"pool_size": 10,
|
||||
"max_overflow": 0,
|
||||
"echo": False,
|
||||
"isolation_level": "READ COMMITTED"
|
||||
}
|
||||
|
||||
engine = create_engine(**engine_config)
|
||||
session_config = {"autoflush": True, "bind": engine, "echo": True}
|
||||
SessionLocal = sessionmaker(**session_config)
|
||||
SessionLocal = sessionmaker(bind=engine, autoflush=False, autocommit=False, echo=True)
|
||||
session = scoped_session(sessionmaker(bind=engine))
|
||||
session.expunge_all()
|
||||
|
||||
Base = declarative_base()
|
||||
Base.session = session
|
||||
|
|
|
|||
|
|
@ -19,8 +19,18 @@ class AlchemyResponse:
|
|||
@property
|
||||
def data(self):
|
||||
if self.first:
|
||||
return self.__query.first()
|
||||
return self.__query.all()
|
||||
try:
|
||||
return self.__query.first()
|
||||
except Exception as e:
|
||||
err = e
|
||||
self.__query.session.expunge_all()
|
||||
return None
|
||||
try:
|
||||
return self.__query.all()
|
||||
except Exception as e:
|
||||
err = e
|
||||
self.__query.session.expunge_all()
|
||||
return []
|
||||
|
||||
@property
|
||||
def count(self):
|
||||
|
|
|
|||
|
|
@ -21,10 +21,13 @@ def exception_handler_http(request: Request, exc: HTTPException):
|
|||
},
|
||||
)
|
||||
except Exception as e:
|
||||
err = e
|
||||
return JSONResponse(
|
||||
status_code=exc.status_code,
|
||||
content={"detail": str(exc_detail), "mesasage": f"{e}"},
|
||||
content={
|
||||
"Error": str(exc_detail),
|
||||
"Message": f"{str(e)}",
|
||||
"Data": {}
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -16,39 +16,27 @@ modules_route.include_router(modules_route, include_in_schema=True)
|
|||
|
||||
@modules_route.post(path="/list", summary="List Active/Delete/Confirm Modules")
|
||||
def modules_list(request: Request, list_options: ListOptions):
|
||||
from events.events_modules import ModulesEvents
|
||||
|
||||
token_dict = parse_token_object_to_dict(request=request)
|
||||
active_function = getattr(ModulesEvents, "modules_list")
|
||||
return active_function(list_options=list_options, token_dict=token_dict)
|
||||
return token_dict.available_event(list_options=list_options, token_dict=token_dict)
|
||||
|
||||
|
||||
@modules_route.post(path="/create", summary="Create Modules with given auth levels")
|
||||
def modules_create(request: Request, data: DepartmentsPydantic):
|
||||
from events.events_modules import ModulesEvents
|
||||
|
||||
token_dict = parse_token_object_to_dict(request=request)
|
||||
active_function = getattr(ModulesEvents, "modules_create")
|
||||
return active_function(data=data, token_dict=token_dict)
|
||||
return token_dict.available_event(data=data, token_dict=token_dict)
|
||||
|
||||
|
||||
@modules_route.post(
|
||||
path="/update/{module_uu_id}", summary="Update Modules with given auth levels"
|
||||
)
|
||||
def modules_update(request: Request, module_uu_id: str, data: DepartmentsPydantic):
|
||||
from events.events_modules import ModulesEvents
|
||||
|
||||
token_dict = parse_token_object_to_dict(request=request)
|
||||
active_function = getattr(ModulesEvents, "modules_update")
|
||||
return active_function(data=data, module_uu_id=module_uu_id, token_dict=token_dict)
|
||||
return token_dict.available_event(data=data, module_uu_id=module_uu_id, token_dict=token_dict)
|
||||
|
||||
|
||||
@modules_route.patch(
|
||||
path="/patch/{module_uu_id}", summary="Patch Modules with given auth levels"
|
||||
)
|
||||
def modules_patch(request: Request, module_uu_id: str, data: PatchRecord):
|
||||
from events.events_modules import ModulesEvents
|
||||
|
||||
token_dict = parse_token_object_to_dict(request=request)
|
||||
active_function = getattr(ModulesEvents, "modules_patch")
|
||||
return active_function(data=data, token_dict=token_dict)
|
||||
return token_dict.available_event(data=data, module_uu_id=module_uu_id, token_dict=token_dict)
|
||||
|
|
|
|||
Loading…
Reference in New Issue