first commit
This commit is contained in:
89
databases/no_sql_models/login_handlers.py
Normal file
89
databases/no_sql_models/login_handlers.py
Normal file
@@ -0,0 +1,89 @@
|
||||
# from loggers.loggers import LoginLogger
|
||||
|
||||
|
||||
def get_menu_from_mongo(user_id, company_name):
|
||||
from databases.no_sql_models.mongo_database import MongoQuery
|
||||
|
||||
mongo = MongoQuery(
|
||||
table_name=company_name.replace(" ", ""), database_name="mongo_database"
|
||||
)
|
||||
mongo_dict = mongo.parse_json(mongo.get_one(match=user_id, field="user_id")) or {}
|
||||
return mongo_dict.get("menu", [])
|
||||
|
||||
|
||||
def load_user_with_erp_details(found_user, access_dict: dict = None):
|
||||
duties = []
|
||||
employee = found_user.person.employee
|
||||
duty_dict = {}
|
||||
try:
|
||||
duty_dict = employee.duty.get_dict(
|
||||
include=["duty_name", "duty_code", "duty_description"]
|
||||
)
|
||||
duty_dict["buildings"] = []
|
||||
duty_dict["response_buildings"] = []
|
||||
duty_dict["department"] = employee.duty.department.get_dict(
|
||||
include=["department_name", "department_code"]
|
||||
)
|
||||
duty_dict["company"] = employee.duty.department.company.get_dict(
|
||||
include=["formal_name", "public_name", "tax_no", "default_lang_type"]
|
||||
)
|
||||
except Exception as e:
|
||||
# LoginLogger.log_exception(
|
||||
# {
|
||||
# "exc": e,
|
||||
# "user": found_user.uu_id,
|
||||
# "function": "load_user_with_erp_details",
|
||||
# }
|
||||
# )
|
||||
err = e
|
||||
print('MongoQuery load_user_with_erp_details', err)
|
||||
|
||||
|
||||
for building in list(set(employee.duty.department.company.response_buildings)):
|
||||
build_parts = []
|
||||
for part in building.parts:
|
||||
build_parts.append(
|
||||
part.get_dict(
|
||||
include=["uu_id", "part_name", "part_code", "part_description"]
|
||||
)
|
||||
)
|
||||
duty_dict["response_buildings"].append(
|
||||
{
|
||||
"build": building.get_dict(include=["build_name", "uu_id"]),
|
||||
"parts": build_parts,
|
||||
}
|
||||
)
|
||||
for building in list(set(employee.duty.department.company.buildings)):
|
||||
build_parts = []
|
||||
for part in building.parts:
|
||||
build_parts.append(
|
||||
part.get_dict(
|
||||
include=[
|
||||
"uu_id",
|
||||
"part_name",
|
||||
"part_code",
|
||||
"part_description",
|
||||
]
|
||||
)
|
||||
)
|
||||
duty_dict["buildings"].append(
|
||||
{
|
||||
"build": building.get_dict(include=["build_name", "uu_id"]),
|
||||
"parts": build_parts,
|
||||
}
|
||||
)
|
||||
duties.append(duty_dict)
|
||||
return_dict = access_dict if access_dict else {}
|
||||
return_dict.update(
|
||||
{
|
||||
"data": {
|
||||
"profile": found_user.get_dict(),
|
||||
"employee_info": duties,
|
||||
"menu": get_menu_from_mongo(
|
||||
found_user.id,
|
||||
company_name=duty_dict.get("company", {}).get("public_name", ""),
|
||||
),
|
||||
},
|
||||
}
|
||||
)
|
||||
return return_dict
|
||||
Reference in New Issue
Block a user