events imports are checked
This commit is contained in:
74
service_app/routers/api/router.py
Normal file
74
service_app/routers/api/router.py
Normal file
@@ -0,0 +1,74 @@
|
||||
import json
|
||||
import typing
|
||||
import zlib
|
||||
from base64 import b64decode
|
||||
|
||||
from fastapi import status
|
||||
from fastapi.routing import APIRouter
|
||||
from fastapi.responses import JSONResponse
|
||||
from fastapi.requests import Request
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
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 database_sql_models 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,
|
||||
)
|
||||
Reference in New Issue
Block a user