alchemy functions updated

This commit is contained in:
2024-11-10 13:16:45 +03:00
parent 7a7241c71c
commit eb947ecb3d
10 changed files with 140 additions and 92 deletions

View File

@@ -4,6 +4,7 @@ from typing import Union
from fastapi import status, HTTPException
from fastapi.responses import JSONResponse
from api_library.date_time_actions.date_functions import system_arrow
from api_validations.validations_request import (
InsertEmployees,
BindEmployees2People,
@@ -56,8 +57,14 @@ class EmployeeCreateEventMethods(MethodToEvent):
data: InsertEmployees,
token_dict: Union[EmployeeTokenObject, OccupantTokenObject],
):
person = People.find_one(uu_id=data.people_uu_id)
staff = Staff.find_one(uu_id=data.staff_uu_id)
person = People.filter_one(
People.uu_id==data.people_uu_id,
*People.valid_record_args(People),
).data
staff = Staff.filter_one(
Staff.uu_id==data.staff_uu_id,
*Staff.valid_record_args(Staff),
).data
if not staff:
return JSONResponse(
content={
@@ -67,8 +74,7 @@ class EmployeeCreateEventMethods(MethodToEvent):
},
status_code=status.HTTP_404_NOT_FOUND,
)
created_employee = Employees.create(
created_employee = Employees.find_or_create(
staff_id=staff.id,
staff_uu_id=str(staff.uu_id),
people_id=person.id if person else None,
@@ -77,7 +83,7 @@ class EmployeeCreateEventMethods(MethodToEvent):
Employees.save()
return JSONResponse(
content={
"completed": True if not created_employee.is_found else False,
"completed": True,
"message": "Create Employee record",
"data": created_employee.get_dict(),
},
@@ -94,7 +100,10 @@ class EmployeeUpdateEventMethods(MethodToEvent):
@classmethod
def employee_update(cls, employee_uu_id: str, data: PatchRecord, token_dict):
find_one_employee = Employees.find_one_or_abort(uu_id=employee_uu_id)
find_one_employee = Employees.filter_one(
Employees.uu_id==employee_uu_id,
*Employees.valid_record_args(Employees),
).data
access_authorized_employee = Employees.select_action(
employee_id=getattr(token_dict, "employee_id", 5),
filter_expr=[Employees.id == token_dict.get("")],
@@ -178,8 +187,14 @@ class Employee2PeopleEmployEventMethods(MethodToEvent):
@classmethod
def company_employee_employ(cls, data: BindEmployees2People, token_dict):
selected_staff = Staff.find_one(uu_id=data.staff_uu_id)
selected_people = People.find_one(uu_id=data.people_uu_id)
selected_staff = Staff.filter_one(
Staff.uu_id==data.staff_uu_id,
*Staff.valid_record_args(Staff),
).data
selected_people = People.filter_one(
People.uu_id==data.people_uu_id,
*People.valid_record_args
).data
if not selected_staff:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
@@ -193,7 +208,7 @@ class Employee2PeopleEmployEventMethods(MethodToEvent):
find_one_employee = Employees.filter_active(
Employees.staff_id == selected_staff.id,
Employees.people_id == None,
*Employees.valid_record_args(Employees),
).data
staff_name_upper = str(selected_staff.staff_name).upper()
@@ -207,9 +222,10 @@ class Employee2PeopleEmployEventMethods(MethodToEvent):
status_code=status.HTTP_406_NOT_ACCEPTABLE,
)
if not data.expiry_starts:
data.expiry_starts = datetime.now()
data.expiry_starts = str(system_arrow.now())
data.expiry_starts = str(system_arrow.get(str(data.expiry_starts)))
find_one_employee = find_one_employee[0].update(
find_one_employee = find_one_employee.update(
people_id=selected_people.id,
expiry_starts=data.expiry_starts,
**token_dict.update_creds,
@@ -234,14 +250,20 @@ class Employee2PeopleFireEventMethods(MethodToEvent):
@classmethod
def company_employee_fire(cls, data: BindEmployees2People, token_dict):
selected_people = People.find_one(uu_id=data.people_uu_id)
selected_people = People.filter_one(
People.uu_id==data.people_uu_id,
*People.valid_record_args(People),
).data
if not selected_people:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="People record not found",
)
find_one_employee: Employees = Employees.find_one(people_id=selected_people.id)
find_one_employee: Employees = Employees.filter_one(
Employees.people_id==selected_people.id,
*Employees.valid_record_args(Employees),
).data
if not find_one_employee:
return JSONResponse(
content={