70 lines
3.1 KiB
Python
70 lines
3.1 KiB
Python
from typing import Any
|
|
from fastapi import APIRouter, Depends
|
|
from sqlalchemy import func
|
|
from Schemas import AccountRecords
|
|
|
|
from endpoints.index import endpoints_index
|
|
from events.event_endpoints.cluster import EventsEndpointRouterCluster
|
|
|
|
from Validations.defaults.validations import CommonHeaders
|
|
from Validations.response.pagination import PaginateOnly
|
|
from Extensions.Middlewares.token_provider import TokenProvider
|
|
|
|
|
|
test_endpoint_route = APIRouter(prefix="/tests", tags=["Endpoint Tests"])
|
|
|
|
|
|
account_records_all = "AccountRecordsAll"
|
|
@test_endpoint_route.get(
|
|
path="/account/records/all",
|
|
description="Account records endpoint",
|
|
operation_id=endpoints_index[account_records_all],
|
|
)
|
|
def account_records_all_route(headers: CommonHeaders = Depends(CommonHeaders.as_dependency)):
|
|
with AccountRecords.new_session() as db_session:
|
|
AccountRecords.set_session(db_session)
|
|
account_records_positive_list = db_session.query(func.sum(AccountRecords.currency_value)
|
|
).filter(AccountRecords.currency_value > 0
|
|
).order_by(AccountRecords.bank_date.desc()).first()
|
|
account_records_negative_list = db_session.query(func.sum(AccountRecords.currency_value)
|
|
).filter(AccountRecords.currency_value < 0
|
|
).order_by(AccountRecords.bank_date.desc()).first()
|
|
return {
|
|
"message": "MSG0003-LIST",
|
|
"data": {
|
|
"debt": float(account_records_negative_list),
|
|
"budget": float(account_records_positive_list),
|
|
"total": float(account_records_positive_list) + float(account_records_negative_list),
|
|
"lastPayment": account_records_data.bank_date,
|
|
},
|
|
"completed": True,
|
|
}
|
|
|
|
|
|
account_records_monthly = "AccountRecordsMonthly"
|
|
@test_endpoint_route.get(
|
|
path="/account/records/monthly",
|
|
description="Account records endpoint",
|
|
operation_id=endpoints_index[account_records_monthly],
|
|
)
|
|
def account_records_monthly_route(headers: CommonHeaders = Depends(CommonHeaders.as_dependency)):
|
|
with AccountRecords.new_session() as db_session:
|
|
account_records_positive_list = db_session.query(func.sum(AccountRecords.currency_value)).filter(
|
|
AccountRecords.bank_date_y == datetime.date.today().year,
|
|
AccountRecords.bank_date_m == datetime.date.today().month,
|
|
).order_by(AccountRecords.bank_date.desc()).first()
|
|
account_records_negative_list = db_session.query(func.sum(AccountRecords.currency_value)).filter(
|
|
AccountRecords.bank_date_y == datetime.date.today().year,
|
|
AccountRecords.bank_date_m == datetime.date.today().month,
|
|
).order_by(AccountRecords.bank_date.desc()).first()
|
|
return {
|
|
"message": "MSG0003-LIST",
|
|
"data": {
|
|
"debt": float(account_records_negative_list),
|
|
"budget": float(account_records_positive_list),
|
|
"total": float(account_records_positive_list) + float(account_records_negative_list),
|
|
"lastPayment": account_records_data.bank_date,
|
|
},
|
|
"completed": True,
|
|
}
|