from fastapi import Depends, APIRouter from requests import Session from kv.routers import address, objectvs, payment, personalaccount, reference, report, accrual, reportfilter, turnover, withdrawing 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) return session.execute(sql_string).fetchall() @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-info", tags=["AddressInfoViewSet"] ) 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(reportfilter.router, prefix="/reportfilter", tags=["ReportFilterViewSet"]) router.include_router(turnover.router, prefix="/turnover", tags=["TurnOverViewSet"]) router.include_router(withdrawing.router, prefix="/withdrawing", tags=["WithdrawingViewSet"]) router.include_router(accrual.router,prefix="/accrual", tags=["AccrualViewSet"])