add scope to id

This commit is contained in:
2025-10-24 20:05:56 -03:00
parent c68aa98fc9
commit c4509f5072
18 changed files with 173 additions and 58 deletions

View File

@@ -3,7 +3,7 @@ import os
from functools import partial
from typing import Any
from aws_lambda_powertools import Logger
from aws_lambda_powertools import Logger, Tracer
from aws_lambda_powertools.event_handler.api_gateway import (
APIGatewayHttpResolver,
CORSConfig,
@@ -17,6 +17,7 @@ from json_encoder import JSONEncoder
from routes import courses, enrollments, orders, users
logger = Logger(__name__)
tracer = Tracer()
debug = 'AWS_SAM_LOCAL' in os.environ
serializer = partial(json.dumps, separators=(',', ':'), cls=JSONEncoder)
cors = CORSConfig(
@@ -26,7 +27,10 @@ cors = CORSConfig(
allow_credentials=False,
)
app = APIGatewayHttpResolver(
enable_validation=True, cors=cors, debug=debug, serializer=serializer
enable_validation=True,
cors=cors,
debug=debug,
serializer=serializer,
)
app.include_router(courses.router, prefix='/courses')
app.include_router(enrollments.router, prefix='/enrollments')
@@ -52,5 +56,6 @@ def exc_error(exc: ServiceError):
@logger.inject_lambda_context(correlation_id_path=correlation_paths.API_GATEWAY_HTTP)
@tracer.capture_lambda_handler
def lambda_handler(event: dict[str, Any], context: LambdaContext) -> dict[str, Any]:
return app.resolve(event, context)

View File

@@ -1,3 +1,5 @@
import time
from aws_lambda_powertools import Logger
from aws_lambda_powertools.event_handler.api_gateway import Router
from aws_lambda_powertools.event_handler.exceptions import (
@@ -20,6 +22,7 @@ dyn = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
@router.get('/<user_id>')
def get_user(user_id: str):
time.sleep(2)
return dyn.collection.get_item(
KeyPair(user_id, '0'),
exc_cls=NotFoundError,

View File

@@ -1,3 +1,5 @@
import time
from aws_lambda_powertools import Logger
from aws_lambda_powertools.event_handler.api_gateway import Router
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair
@@ -12,6 +14,7 @@ dyn = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
@router.get('/<user_id>/emails')
def get_emails(user_id: str):
time.sleep(1)
start_key = router.current_event.get_query_string_value('start_key', None)
return dyn.collection.query(

View File

@@ -1,3 +1,5 @@
import time
from aws_lambda_powertools import Logger
from aws_lambda_powertools.event_handler.api_gateway import Router
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair
@@ -12,6 +14,7 @@ dyn = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
@router.get('/<user_id>/orgs')
def get_orgs(user_id: str):
time.sleep(1)
start_key = router.current_event.get_query_string_value('start_key', None)
return dyn.collection.query(