From eb339382046f1bb96af950f75a44e78aee1d99f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Fri, 12 Dec 2025 20:39:08 -0300 Subject: [PATCH] fix billing --- .../app/routes/orgs/billing.py | 17 ++++++++++++++--- .../routes/_.$orgid.billing._index/route.tsx | 4 +--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/api.saladeaula.digital/app/routes/orgs/billing.py b/api.saladeaula.digital/app/routes/orgs/billing.py index 3058d63..b2fb756 100644 --- a/api.saladeaula.digital/app/routes/orgs/billing.py +++ b/api.saladeaula.digital/app/routes/orgs/billing.py @@ -2,6 +2,7 @@ from datetime import date from typing import Annotated from aws_lambda_powertools.event_handler.api_gateway import Router +from aws_lambda_powertools.event_handler.exceptions import NotFoundError from aws_lambda_powertools.event_handler.openapi.params import Query from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair @@ -12,6 +13,9 @@ router = Router() dyn = DynamoDBPersistenceLayer(ORDER_TABLE, dynamodb_client) +class BillingNotFoundError(NotFoundError): ... + + @router.get('//subscription') def subscription(org_id: str): return dyn.collection.get_item( @@ -31,10 +35,17 @@ def billing( start_date: Annotated[date, Query()], end_date: Annotated[date, Query()], ): - return dyn.collection.query( + pk = f'BILLING#ORG#{org_id}' + sk = f'START#{start_date}#END#{end_date}' + r = dyn.collection.get_item( + KeyPair(pk, sk), + exc_cls=BillingNotFoundError, + ) + + return r | dyn.collection.query( KeyPair( - pk=f'BILLING#ORG#{org_id}', - sk=f'START#{start_date}#END#{end_date}', + pk=pk, + sk=f'{sk}#ENROLLMENT', ), limit=150, ) diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.billing._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.billing._index/route.tsx index 6f6ef42..47e81a8 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.billing._index/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.billing._index/route.tsx @@ -75,9 +75,7 @@ export default function Route({ - {({ items }) => { - const billing = items.find((item) => item.sk === sk) - + {({ items, ...billing }) => { return (