add scope to id
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -1,8 +1,28 @@
|
||||
import json
|
||||
from http import HTTPMethod, HTTPStatus
|
||||
|
||||
from ..conftest import HttpApiProxy, LambdaContext
|
||||
|
||||
|
||||
def test_get_emails(
|
||||
app,
|
||||
seeds,
|
||||
http_api_proxy: HttpApiProxy,
|
||||
lambda_context: LambdaContext,
|
||||
):
|
||||
r = app.lambda_handler(
|
||||
http_api_proxy(
|
||||
raw_path='/users/15bacf02-1535-4bee-9022-19d106fd7518/emails',
|
||||
method=HTTPMethod.GET,
|
||||
),
|
||||
lambda_context,
|
||||
)
|
||||
assert r['statusCode'] == HTTPStatus.OK
|
||||
|
||||
body = json.loads(r['body'])
|
||||
assert len(body['items']) == 1
|
||||
|
||||
|
||||
def test_get_orgs(
|
||||
app,
|
||||
seeds,
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
{"id": "2a8963fc-4694-4fe2-953a-316d1b10f1f5", "sk": "0", "name": "pytest" }
|
||||
|
||||
// User emails
|
||||
{"id": "15bacf02-1535-4bee-9022-19d106fd7518", "sk": "emails#sergio@somosbeta.com.br"}
|
||||
|
||||
// User orgs
|
||||
{"id": "213a6682-2c59-4404-9189-12eec0a846d4", "sk": "orgs#286f7729-7765-482a-880a-0b153ea799be", "name": "ACME", "cnpj": "00000000000191"}
|
||||
Reference in New Issue
Block a user