Files
service-app/kv/isapi.py
2022-06-02 17:35:32 +09:00

55 lines
2.0 KiB
Python

from fastapi import Depends, APIRouter
from requests import Session
from kv.routers import address, objectvs, payment, personalaccount, reference, report, accrual, turnover, recalculation
from kv.database import get_db, get_table
from typing import List
from kv import schemas
router = APIRouter()
def exec_procedure(session, proc_name, params, database: str = None):
sql_params = ""
if params:
sql_params = ",".join([f"@{name}='{value}'" if type(value) in [str] else f"@{name}={value}"
for name, value in params.items()])
dbstr = ""
if database:
dbstr = f"[{database}]."
sql_string = """
DECLARE @return_value int;
EXEC @return_value = {dbstr}[dbo].[{proc_name}] {params};
SELECT 'Return Value' = @return_value;
""".format(dbstr=dbstr, proc_name=proc_name, params=sql_params)
print(sql_string)
data = session.execute(sql_string).fetchall()
session.commit()
session.expire_all()
return data
@router.get("/get_settings", response_model=List[schemas.SettingsSerializer])
async def get_settings(db: Session = Depends(get_db)):
table = get_table("vSettings")
return db.query(table).all()
router.include_router(address.router,prefix="/address", tags=["AddressViewSet"] )
router.include_router(objectvs.router, prefix="/object", tags=["ObjectViewSet"])
router.include_router(payment.router, prefix="/payment", tags=["PaymentViewSet"])
router.include_router(personalaccount.router, prefix="/personal-account", tags=["PersonalAccountViewSet"])
router.include_router(reference.router, prefix="/reference", tags=["ReferenceViewSet"])
router.include_router(report.router, prefix="/report", tags=["ReportViewSet"])
router.include_router(turnover.router, prefix="/turnover", tags=["TurnOverViewSet"])
router.include_router(recalculation.router, prefix="/recalculation", tags=["RecalculationViewSet"])
router.include_router(accrual.router,prefix="/accrual", tags=["AccrualViewSet"])