alchemy flush and save functions updated

This commit is contained in:
2024-11-11 18:55:53 +03:00
parent c42a19c262
commit 1f1222c32d
163 changed files with 6296 additions and 476 deletions

View File

@@ -7,22 +7,31 @@ from fastapi.responses import JSONResponse
def exception_handler_http(request: Request, exc: HTTPException):
print("headers", request.headers)
detail = loads(exc.detail)
return JSONResponse(
status_code=exc.status_code,
content={
"Data": detail.get("data", {}),
"Error": detail.get("error_case", "UNKNOWN"),
"Message": detail.get(
"message", "An error occurred while processing the request"
),
},
)
exc_detail = getattr(exc, "detail", None)
try:
detail = loads(str(exc_detail))
return JSONResponse(
status_code=exc.status_code,
content={
"Data": detail.get("data", {}),
"Error": detail.get("error_case", "UNKNOWN"),
"Message": detail.get(
"message", "An error occurred while processing the request"
),
},
)
except Exception as e:
err = e
return JSONResponse(
status_code=exc.status_code,
content={
"detail":str(exc_detail),
"mesasage": f"{e}"
},
)
def exception_handler_exception(request: Request, exc: Exception):
print("headers", request.headers)
return JSONResponse(
status_code=status.HTTP_417_EXPECTATION_FAILED,
content={"message": exc.__str__()},

View File

@@ -2,8 +2,8 @@ import json
from time import perf_counter
from api_configs import Config
from starlette import status
from starlette.exceptions import HTTPException
from fastapi import status
from fastapi.exceptions import HTTPException
from starlette.middleware.base import BaseHTTPMiddleware

View File

@@ -15,60 +15,60 @@ internal_route = APIRouter(prefix="/internal", tags=["Internal"])
internal_route.include_router(internal_route, include_in_schema=False)
class ApiReceive(BaseModel):
data: str
class BankReceive(BaseModel):
import_file_name: str
iban: str
bank_date: str
channel_branch: str
currency: typing.Optional[str] = "TL"
currency_value: float
bank_balance: float
additional_balance: float
process_name: str
process_type: str
process_comment: str
bank_reference_code: str
@internal_route.post(
path="/isbank/retreive",
summary="Receive isbank xls service from mail reader service",
)
def is_bank_retrieve_account_records(request: Request, bank_data: ApiReceive):
from databases import AccountRecords
data_dict = bank_data.model_dump()
data_bulk = json.loads(zlib.decompress(b64decode(data_dict["data"])))
print("data_bulk", data_bulk)
new_record_list = []
for data_keys in data_bulk: # data_bulk is a dict
for data_dict in data_bulk[data_keys]: # data_bulk[data_keys] is a list
data_dict["bank_balance"] = data_dict.pop("balance")
data_dict["import_file_name"] = str(data_keys)
print("data_dict before pyd", data_dict)
data_dict = BankReceive(**data_dict).model_dump()
print("data_dict after pyd", data_dict)
if new_account_record := AccountRecords.find_or_create(**data_dict):
print("new_account_record.is_found", new_account_record.is_found)
if not new_account_record.is_found:
new_record_list.append(new_account_record.get_dict())
if new_record_list:
return JSONResponse(
content={
"completed": True,
"message": "Create Bank Record",
"data": new_record_list,
},
status_code=status.HTTP_200_OK,
)
return JSONResponse(
content={
"completed": False,
"message": "Record already exist or can not be created",
},
status_code=status.HTTP_406_NOT_ACCEPTABLE,
)
# class ApiReceive(BaseModel):
# data: str
#
#
# class BankReceive(BaseModel):
# import_file_name: str
# iban: str
# bank_date: str
# channel_branch: str
# currency: typing.Optional[str] = "TL"
# currency_value: float
# bank_balance: float
# additional_balance: float
# process_name: str
# process_type: str
# process_comment: str
# bank_reference_code: str
# #
#
# @internal_route.post(
# path="/isbank/retreive",
# summary="Receive isbank xls service from mail reader service",
# )
# def is_bank_retrieve_account_records(request: Request, bank_data: ApiReceive):
# from databases import AccountRecords
#
# data_dict = bank_data.model_dump()
# data_bulk = json.loads(zlib.decompress(b64decode(data_dict["data"])))
# print("data_bulk", data_bulk)
# new_record_list = []
# for data_keys in data_bulk: # data_bulk is a dict
# for data_dict in data_bulk[data_keys]: # data_bulk[data_keys] is a list
# data_dict["bank_balance"] = data_dict.pop("balance")
# data_dict["import_file_name"] = str(data_keys)
# print("data_dict before pyd", data_dict)
# data_dict = BankReceive(**data_dict).model_dump()
# print("data_dict after pyd", data_dict)
# if new_account_record := AccountRecords.find_or_create(**data_dict):
# print("new_account_record.is_found", new_account_record.is_found)
# if not new_account_record.is_found:
# new_record_list.append(new_account_record.get_dict())
# if new_record_list:
# return JSONResponse(
# content={
# "completed": True,
# "message": "Create Bank Record",
# "data": new_record_list,
# },
# status_code=status.HTTP_200_OK,
# )
# return JSONResponse(
# content={
# "completed": False,
# "message": "Record already exist or can not be created",
# },
# status_code=status.HTTP_406_NOT_ACCEPTABLE,
# )

View File

@@ -47,11 +47,10 @@ def authentication_select_company_or_occupant_type(
@login_route.post(path="/login", summary="Login user with domain and password")
def authentication_login_with_domain_and_creds(request: Request, data: Login):
active_function = getattr(
AuthenticationLoginEventMethod, "authentication_login_with_domain_and_creds"
)
return active_function(data=data, request=request, token_dict=None)
return active_function(request=request, data=data)
@login_route.get(path="/valid", summary="Check access token is valid")