events updated

This commit is contained in:
berkay 2024-11-13 10:59:57 +03:00
parent 077d264b28
commit 72bf3b8ddf
18 changed files with 190 additions and 100 deletions

View File

@ -1,9 +1,5 @@
import typing
from databases import (
AccountRecords,
)
from api_validations.validations_request import (
InsertAccountRecord,
UpdateAccountRecord,
@ -13,6 +9,10 @@ from api_validations.validations_request import (
from api_validations.core_response import AlchemyJsonResponse
from api_events.events.abstract_class import MethodToEvent, ActionsSchema
from api_objects.auth.token_objects import EmployeeTokenObject, OccupantTokenObject
from databases import (
AccountRecords,
BuildIbans,
)
class AccountRecordsListEventMethods(MethodToEvent):
@ -29,14 +29,22 @@ class AccountRecordsListEventMethods(MethodToEvent):
token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject],
):
if isinstance(token_dict, OccupantTokenObject):
pass
AccountRecords.pre_query = AccountRecords.filter_all(
AccountRecords.company_id
== token_dict.selected_occupant.responsible_company_id,
*AccountRecords.valid_record_args(AccountRecords),
)
elif isinstance(token_dict, EmployeeTokenObject):
pass
AccountRecords.pre_query = AccountRecords.filter_all(
AccountRecords.company_id == token_dict.selected_company.company_id,
*AccountRecords.valid_record_args(AccountRecords),
)
records = AccountRecords.filter_all(
*AccountRecords.smart_query(list_options.query),
*AccountRecords.valid_record_args(AccountRecords),
)
return AlchemyJsonResponse(
completed=True,
message="Update Build record",
result=None
completed=True, message="Update Build record", result=records
)
@ -53,16 +61,48 @@ class AccountRecordsCreateEventMethods(MethodToEvent):
data: InsertAccountRecord,
token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject],
):
if isinstance(token_dict, OccupantTokenObject):
pass
elif isinstance(token_dict, EmployeeTokenObject):
pass
return AlchemyJsonResponse(
completed=True,
message="Update Build record",
result=None,
)
if isinstance(token_dict, OccupantTokenObject):
build_iban = BuildIbans.filter_one(
BuildIbans.iban == data.iban,
BuildIbans.company_id
== token_dict.selected_occupant.responsible_company_id,
).data
if not build_iban:
BuildIbans.raise_http_exception(
status_code="HTTP_404_NOT_FOUND",
error_case="UNAUTHORIZED",
message=f"{data.iban} is not found in company related to your organization",
data={
"iban": data.iban,
},
)
account_record = AccountRecords.find_or_create(**data.excluded_dump())
return AlchemyJsonResponse(
completed=True,
message="Update Build record",
result=account_record.get_dict(),
)
elif isinstance(token_dict, EmployeeTokenObject):
build_iban = BuildIbans.filter_one(
BuildIbans.iban == data.iban,
BuildIbans.company_id == token_dict.selected_company.company_id,
).data
if not build_iban:
BuildIbans.raise_http_exception(
status_code="HTTP_404_NOT_FOUND",
error_case="UNAUTHORIZED",
message=f"{data.iban} is not found in company related to your organization",
data={
"iban": data.iban,
},
)
account_record = AccountRecords.find_or_create(**data.excluded_dump())
return AlchemyJsonResponse(
completed=True,
message="Update Build record",
result=account_record.get_dict(),
)
class AccountRecordsUpdateEventMethods(MethodToEvent):

View File

@ -283,8 +283,8 @@ class AuthenticationCheckTokenEventMethods(MethodToEvent):
@classmethod
def authentication_login_with_domain_and_creds(
cls,
request,
cls,
request,
):
if get_object_via_access_key(request=request):
return JSONResponse(
@ -306,8 +306,8 @@ class AuthenticationRefreshEventMethods(MethodToEvent):
@classmethod
def authentication_refresh_user_info(
cls,
request,
cls,
request,
):
access_token = str(request.headers.get(Auth.ACCESS_TOKEN_TAG))
if token_user := get_object_via_access_key(request=request):
@ -350,7 +350,7 @@ class AuthenticationChangePasswordEventMethods(MethodToEvent):
def authentication_change_password(
cls,
data: ChangePassword,
token_dict: typing.Union[EmployeeSelection, OccupantSelection]
token_dict: typing.Union[EmployeeSelection, OccupantSelection],
):
if token_dict.user_type == 1:
if found_user := Users.filter_one(
@ -388,8 +388,8 @@ class AuthenticationCreatePasswordEventMethods(MethodToEvent):
@classmethod
def authentication_create_password(
cls,
data: CreatePassword,
cls,
data: CreatePassword,
):
if not data.re_password == data.password:
raise HTTPException(
@ -560,9 +560,9 @@ class AuthenticationRefreshTokenEventMethods(MethodToEvent):
@classmethod
def authentication_refresher_token(
cls,
request: Request,
data: Remember,
token_dict: typing.Union[EmployeeSelection, OccupantSelection],
request: Request,
data: Remember,
token_dict: typing.Union[EmployeeSelection, OccupantSelection],
):
token_refresher = UsersTokens.filter_by_one(
system=True, token=data.refresh_token, domain=data.domain
@ -630,10 +630,10 @@ class AuthenticationForgotPasswordEventMethods(MethodToEvent):
@classmethod
def authentication_forgot_password(
cls,
request: Request,
data: Forgot,
token_dict: typing.Union[EmployeeSelection, OccupantSelection],
cls,
request: Request,
data: Forgot,
token_dict: typing.Union[EmployeeSelection, OccupantSelection],
):
found_user: Users = Users.check_user_exits(
access_key=data.access_key, domain=data.domain
@ -692,10 +692,10 @@ class AuthenticationDownloadAvatarEventMethods(MethodToEvent):
@classmethod
def authentication_download_avatar(
cls,
request: Request,
data: Forgot,
token_dict: typing.Union[EmployeeSelection, OccupantSelection],
cls,
request: Request,
data: Forgot,
token_dict: typing.Union[EmployeeSelection, OccupantSelection],
):
found_user = Users.check_user_exits(
access_key=data.access_key, domain=data.domain

View File

@ -112,7 +112,9 @@ class BuildingLivingSpacesPartsListEventMethods(MethodToEvent):
class BuildingLivingSpacesPartsCreateEventMethods(MethodToEvent):
event_type = "CREATE"
__event_keys__ = {"46d90119-3b23-4784-8053-fe11da4a3584": "building_live_space_create"}
__event_keys__ = {
"46d90119-3b23-4784-8053-fe11da4a3584": "building_live_space_create"
}
@classmethod
def building_live_space_create(

View File

@ -87,9 +87,7 @@ class CompanyUpdateEventMethods(MethodToEvent):
@classmethod
def company_update(
cls,
company_uu_id: str,
data: UpdateCompany, token_dict: EmployeeTokenObject
cls, company_uu_id: str, data: UpdateCompany, token_dict: EmployeeTokenObject
):
Companies.pre_query = Companies.select_action(
duty_id_list=[
@ -106,7 +104,7 @@ class CompanyUpdateEventMethods(MethodToEvent):
content={
"completed": True,
"message": "Update Company record",
"data": {}
"data": {},
},
status_code=200,
)
@ -131,7 +129,7 @@ class CompanyPatchEventMethods(MethodToEvent):
@classmethod
def company_patch(
cls, company_uu_id: str, data: PatchRecord, token_dict: EmployeeTokenObject
cls, company_uu_id: str, data: PatchRecord, token_dict: EmployeeTokenObject
):
find_one_company = Companies.find_one_or_abort(uu_id=company_uu_id)
access_authorized_company = Companies.select_action(
@ -169,6 +167,7 @@ class CompanyPatchEventMethods(MethodToEvent):
status_code=status.HTTP_200_OK,
)
CompanyPatchEventMethod = CompanyListEventMethods(
action=ActionsSchema(endpoint="/company/list")
)

View File

@ -59,7 +59,9 @@ class DepartmentCreateEventMethods(MethodToEvent):
@classmethod
def super_user_department_create(
cls, data: DepartmentsPydantic, token_dict: EmployeeTokenObject,
cls,
data: DepartmentsPydantic,
token_dict: EmployeeTokenObject,
):
data_dict = data.excluded_dump()
data_dict["company_id"] = token_dict.selected_company.company_id
@ -85,7 +87,10 @@ class DepartmentUpdateEventMethods(MethodToEvent):
@classmethod
def department_update(
cls, company_uu_id: str, data: DepartmentsPydantic, token_dict: EmployeeTokenObject,
cls,
company_uu_id: str,
data: DepartmentsPydantic,
token_dict: EmployeeTokenObject,
):
find_one_company = Departments.filter_one(Departments.uu_id == company_uu_id)
access_authorized_company = Departments.select_action(
@ -119,7 +124,7 @@ class DepartmentPatchEventMethods(MethodToEvent):
@classmethod
def department_patch(
cls, company_uu_id: str, data: PatchRecord, token_dict: EmployeeTokenObject
cls, company_uu_id: str, data: PatchRecord, token_dict: EmployeeTokenObject
):
find_one_company = Departments.find_one_or_abort(uu_id=company_uu_id)
access_authorized_company = Departments.select_action(

View File

@ -143,10 +143,10 @@ class DutiesUpdateEventMethods(MethodToEvent):
@classmethod
def duties_update(
cls,
duties_uu_id: str,
data: UpdateDuties,
token_dict: EmployeeTokenObject,
cls,
duties_uu_id: str,
data: UpdateDuties,
token_dict: EmployeeTokenObject,
):
find_one_duties = Duties.find_one_or_abort(uu_id=duties_uu_id)
access_authorized_duties = Duties.select_action(
@ -178,7 +178,10 @@ class DutiesPatchEventMethods(MethodToEvent):
@classmethod
def duties_patch(
cls, duties_uu_id: str, data: PatchRecord, token_dict: EmployeeTokenObject,
cls,
duties_uu_id: str,
data: PatchRecord,
token_dict: EmployeeTokenObject,
):
find_one_duties = Duties.find_one_or_abort(uu_id=duties_uu_id)
access_authorized_duties = Duties.select_action(

View File

@ -108,7 +108,10 @@ class DutyPatchEventMethods(MethodToEvent):
@classmethod
def duty_patch(
cls, company_uu_id: str, data: PatchRecord, token_dict: EmployeeTokenObject,
cls,
company_uu_id: str,
data: PatchRecord,
token_dict: EmployeeTokenObject,
):
find_one_company = Duty.find_one_or_abort(uu_id=company_uu_id)
access_authorized_company = Duty.select_action(

View File

@ -97,7 +97,10 @@ class EmployeeUpdateEventMethods(MethodToEvent):
@classmethod
def employee_update(
cls, employee_uu_id: str, data: PatchRecord, token_dict: EmployeeTokenObject,
cls,
employee_uu_id: str,
data: PatchRecord,
token_dict: EmployeeTokenObject,
):
find_one_employee = Employees.filter_one(
Employees.uu_id == employee_uu_id,
@ -186,7 +189,9 @@ class Employee2PeopleEmployEventMethods(MethodToEvent):
@classmethod
def company_employee_employ(
cls, data: BindEmployees2People, token_dict: EmployeeTokenObject,
cls,
data: BindEmployees2People,
token_dict: EmployeeTokenObject,
):
selected_staff = Staff.filter_one(
Staff.uu_id == data.staff_uu_id,
@ -250,7 +255,9 @@ class Employee2PeopleFireEventMethods(MethodToEvent):
@classmethod
def company_employee_fire(
cls, data: BindEmployees2People, token_dict: EmployeeTokenObject,
cls,
data: BindEmployees2People,
token_dict: EmployeeTokenObject,
):
selected_people = People.filter_one(
People.uu_id == data.people_uu_id,

View File

@ -23,9 +23,7 @@ class StaffListEventMethods(MethodToEvent):
}
@classmethod
def staff_list(
cls, list_options: ListOptions, token_dict: EmployeeTokenObject
):
def staff_list(cls, list_options: ListOptions, token_dict: EmployeeTokenObject):
Staff.filter_attr = list_options
records = Staff.filter_active(
*Staff.get_smart_query(smart_query=list_options.query),
@ -44,9 +42,7 @@ class StaffCreateEventMethods(MethodToEvent):
}
@classmethod
def staff_create(
cls, data: InsertStaff, token_dict: EmployeeTokenObject
):
def staff_create(cls, data: InsertStaff, token_dict: EmployeeTokenObject):
data_dict = data.excluded_dump()
duties = Duties.filter_one(
Duties.uu_id == data.duties_uu_id,
@ -78,9 +74,7 @@ class StaffGetByUUIDEventMethods(MethodToEvent):
}
@classmethod
def staff_get_by_uu_id(
cls, data: SelectStaff, token_dict: EmployeeTokenObject
):
def staff_get_by_uu_id(cls, data: SelectStaff, token_dict: EmployeeTokenObject):
if data.duties_uu_id:
duties_id = Duties.filter_one(
Duties.uu_id == data.duties_uu_id, *Duties.valid_record_args(Duties)
@ -117,9 +111,7 @@ class StaffUpdateEventMethods(MethodToEvent):
}
@classmethod
def staff_update(
cls, staff_uu_id: str, data, token_dict: EmployeeTokenObject
):
def staff_update(cls, staff_uu_id: str, data, token_dict: EmployeeTokenObject):
return JSONResponse(
content={"completed": True, "message": "Update Staff record", "data": {}},
status_code=status.HTTP_200_OK,
@ -135,7 +127,7 @@ class StaffPatchEventMethods(MethodToEvent):
@classmethod
def staff_patch(
cls, staff_uu_id: str, data: PatchRecord, token_dict: EmployeeTokenObject
cls, staff_uu_id: str, data: PatchRecord, token_dict: EmployeeTokenObject
):
return JSONResponse(
content={

View File

@ -28,9 +28,7 @@ class PeopleListEventMethods(MethodToEvent):
@classmethod
def super_users_people_list(
cls,
list_options,
token_dict: Union[EmployeeTokenObject, OccupantTokenObject]
cls, list_options, token_dict: Union[EmployeeTokenObject, OccupantTokenObject]
):
records = []
if isinstance(token_dict, EmployeeTokenObject):
@ -45,8 +43,9 @@ class PeopleListEventMethods(MethodToEvent):
*People.valid_record_args(People),
).data
elif isinstance(token_dict, OccupantTokenObject):
related_users =Users.filter_all(
Users.related_company == token_dict.selected_occupant.responsible_company_id,
related_users = Users.filter_all(
Users.related_company
== token_dict.selected_occupant.responsible_company_id,
).data
People.pre_query = People.filter_all(
People.id.in_([user.person_id for user in related_users]),
@ -64,9 +63,9 @@ class PeopleListEventMethods(MethodToEvent):
@classmethod
def sales_users_people_list(
cls,
list_options,
token_dict: EmployeeTokenObject,
cls,
list_options,
token_dict: EmployeeTokenObject,
):
records = People.filter_all(
*People.get_smart_query(smart_query=list_options.query),
@ -80,9 +79,9 @@ class PeopleListEventMethods(MethodToEvent):
@classmethod
def human_resources_users_people_list(
cls,
list_options,
token_dict: EmployeeTokenObject,
cls,
list_options,
token_dict: EmployeeTokenObject,
):
if isinstance(token_dict, EmployeeTokenObject):
records = People.filter_all(
@ -148,7 +147,7 @@ class PeopleUpdateEventMethods(MethodToEvent):
access_authorized_company = Companies.select_action(
duty_id_list=[
token_dict.selected_company.duty_id,
token_dict.selected_company.bulk_duties_id
token_dict.selected_company.bulk_duties_id,
],
)
if access_authorized_company.count:

View File

@ -22,13 +22,17 @@ def address_list(request: Request, list_options: ListOptions):
return token_dict.available_event(list_options=list_options, token_dict=token_dict)
@account_records_router.post(path="/create", summary="Create Address with given auth levels")
@account_records_router.post(
path="/create", summary="Create Address with given auth levels"
)
def address_create(request: Request, data: InsertAccountRecord):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, token_dict=token_dict)
@account_records_router.post(path="/search", summary="Search Address with given auth levels")
@account_records_router.post(
path="/search", summary="Search Address with given auth levels"
)
def address_search(request: Request, data: SearchAddress):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, token_dict=token_dict)

View File

@ -21,19 +21,29 @@ def build_area_list(request: Request, list_options: ListOptions):
return token_dict.available_event(list_options=list_options, token_dict=token_dict)
@build_area_route.post(path="/create", summary="Create BuildParts with given auth levels")
@build_area_route.post(
path="/create", summary="Create BuildParts with given auth levels"
)
def build_area_create(request: Request, data: InsertBuildArea):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, token_dict=token_dict)
@build_area_route.post(path="/update/{build_uu_id}", summary="Update BuildParts with given auth levels")
@build_area_route.post(
path="/update/{build_uu_id}", summary="Update BuildParts with given auth levels"
)
def build_area_update(request: Request, build_uu_id: str, data: UpdateBuildArea):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, build_uu_id=build_uu_id, token_dict=token_dict)
return token_dict.available_event(
data=data, build_uu_id=build_uu_id, token_dict=token_dict
)
@build_area_route.patch(path="/patch/{build_uu_id}", summary="Update Active/Delete/Confirm")
@build_area_route.patch(
path="/patch/{build_uu_id}", summary="Update Active/Delete/Confirm"
)
def build_area_patch(request: Request, build_uu_id: str, data: PatchRecord):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, build_uu_id=build_uu_id, token_dict=token_dict)
return token_dict.available_event(
data=data, build_uu_id=build_uu_id, token_dict=token_dict
)

View File

@ -36,7 +36,9 @@ def building_build_part_update(
request: Request, build_uu_id: str, data: UpdateBuildParts
):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, build_uu_id=build_uu_id, token_dict=token_dict)
return token_dict.available_event(
data=data, build_uu_id=build_uu_id, token_dict=token_dict
)
@build_parts_route.patch(
@ -44,4 +46,6 @@ def building_build_part_update(
)
def building_build_part_patch(request: Request, build_uu_id: str, data: PatchRecord):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, build_uu_id=build_uu_id, token_dict=token_dict)
return token_dict.available_event(
data=data, build_uu_id=build_uu_id, token_dict=token_dict
)

View File

@ -34,7 +34,9 @@ def building_sites_create(request: Request, data: InsertBuildSites):
)
def building_sites_update(request: Request, build_uu_id: str, data: UpdateBuildSites):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, build_uu_id=build_uu_id, token_dict=token_dict)
return token_dict.available_event(
data=data, build_uu_id=build_uu_id, token_dict=token_dict
)
@build_sites_route.patch(
@ -42,4 +44,6 @@ def building_sites_update(request: Request, build_uu_id: str, data: UpdateBuildS
)
def building_sites_patch(request: Request, build_uu_id: str, data: PatchRecord):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, build_uu_id=build_uu_id, token_dict=token_dict)
return token_dict.available_event(
data=data, build_uu_id=build_uu_id, token_dict=token_dict
)

View File

@ -34,7 +34,9 @@ def building_types_create(request: Request, data: InsertBuildTypes):
)
def building_types_update(request: Request, build_uu_id: str, data: UpdateBuildTypes):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, build_uu_id=build_uu_id, token_dict=token_dict)
return token_dict.available_event(
data=data, build_uu_id=build_uu_id, token_dict=token_dict
)
@build_types_route.patch(
@ -42,4 +44,6 @@ def building_types_update(request: Request, build_uu_id: str, data: UpdateBuildT
)
def building_types_patch(request: Request, build_uu_id: str, data: PatchRecord):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, build_uu_id=build_uu_id, token_dict=token_dict)
return token_dict.available_event(
data=data, build_uu_id=build_uu_id, token_dict=token_dict
)

View File

@ -13,13 +13,17 @@ build_living_space = APIRouter(prefix="/building/living_space", tags=["Living Sp
build_living_space.include_router(build_living_space, include_in_schema=True)
@build_living_space.post(path="/list", summary="List Active/Delete/Confirm Build Living Space")
@build_living_space.post(
path="/list", summary="List Active/Delete/Confirm Build Living Space"
)
def building_living_space_list(request: Request, list_options: ListOptions):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(list_options=list_options, token_dict=token_dict)
@build_living_space.post(path="/create", summary="Create Build Living Space with given auth levels")
@build_living_space.post(
path="/create", summary="Create Build Living Space with given auth levels"
)
def building_living_space_create(request: Request, data: InsertBuildLivingSpace):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, token_dict=token_dict)
@ -33,12 +37,17 @@ def building_living_space_update(
request: Request, build_uu_id: str, data: UpdateBuildLivingSpace
):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, build_uu_id=build_uu_id, token_dict=token_dict)
return token_dict.available_event(
data=data, build_uu_id=build_uu_id, token_dict=token_dict
)
@build_living_space.patch(
path="/patch/{build_uu_id}", summary="Update Build Living Space with given auth levels"
path="/patch/{build_uu_id}",
summary="Update Build Living Space with given auth levels",
)
def building_living_space_patch(request: Request, build_uu_id: str, data: PatchRecord):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, build_uu_id=build_uu_id, token_dict=token_dict)
return token_dict.available_event(
data=data, build_uu_id=build_uu_id, token_dict=token_dict
)

View File

@ -34,6 +34,7 @@ def services_update(request: Request, service_uu_id: str, data):
data=data, service_uu_id=service_uu_id, token_dict=token_dict
)
@services_route.patch(
path="/patch/{service_uu_id}", summary="Patch Modules with given auth levels"
)

View File

@ -42,7 +42,9 @@ def project_decision_book_person_update(
request: Request, book_uu_id: str, data: UpdateDecisionBook
):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, book_uu_id=book_uu_id, token_dict=token_dict)
return token_dict.available_event(
data=data, book_uu_id=book_uu_id, token_dict=token_dict
)
@build_project_decision_book_person_route.patch(
@ -52,4 +54,6 @@ def project_decision_book_person_patch(
request: Request, book_uu_id: str, data: PatchRecord
):
token_dict = parse_token_object_to_dict(request=request)
return token_dict.available_event(data=data, book_uu_id=book_uu_id, token_dict=token_dict)
return token_dict.available_event(
data=data, book_uu_id=book_uu_id, token_dict=token_dict
)