This commit is contained in:
2025-09-15 19:47:32 -03:00
parent 0b6cccaef1
commit 6f983fe0ac
3 changed files with 32 additions and 19 deletions

View File

@@ -1,5 +1,6 @@
from http import HTTPStatus from http import HTTPStatus
from aws_lambda_powertools import Logger
from aws_lambda_powertools.event_handler.api_gateway import Router 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.exceptions import NotFoundError
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair
@@ -18,6 +19,7 @@ from models import Course
from rules.course import create_course, update_course from rules.course import create_course, update_course
router = Router() router = Router()
logger = Logger(__name__)
meili_client = Meilisearch(MEILISEARCH_HOST, MEILISEARCH_API_KEY) meili_client = Meilisearch(MEILISEARCH_HOST, MEILISEARCH_API_KEY)
course_layer = DynamoDBPersistenceLayer(COURSE_TABLE, dynamodb_client) course_layer = DynamoDBPersistenceLayer(COURSE_TABLE, dynamodb_client)
user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client) user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
@@ -36,6 +38,7 @@ def get_courses():
page = int(event.get_query_string_value('page', '1')) page = int(event.get_query_string_value('page', '1'))
hits_per_page = int(event.get_query_string_value('hitsPerPage', '25')) hits_per_page = int(event.get_query_string_value('hitsPerPage', '25'))
try:
return meili_client.index(COURSE_TABLE).search( return meili_client.index(COURSE_TABLE).search(
query, query,
{ {
@@ -45,6 +48,9 @@ def get_courses():
'hitsPerPage': hits_per_page, 'hitsPerPage': hits_per_page,
}, },
) )
except Exception as exc:
logger.exception(exc)
raise
@router.post( @router.post(

View File

@@ -2,6 +2,7 @@ import urllib.parse as parse
from http import HTTPStatus from http import HTTPStatus
from typing import Annotated from typing import Annotated
from aws_lambda_powertools import Logger
from aws_lambda_powertools.event_handler.api_gateway import Router from aws_lambda_powertools.event_handler.api_gateway import Router
from aws_lambda_powertools.event_handler.exceptions import ( from aws_lambda_powertools.event_handler.exceptions import (
BadRequestError as PowertoolsBadRequestError, BadRequestError as PowertoolsBadRequestError,
@@ -41,6 +42,7 @@ router = Router()
user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client) user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
user_collect = DynamoDBCollection(user_layer, exc_cls=BadRequestError) user_collect = DynamoDBCollection(user_layer, exc_cls=BadRequestError)
meili_client = Meilisearch(MEILISEARCH_HOST, MEILISEARCH_API_KEY) # noqa: F821 meili_client = Meilisearch(MEILISEARCH_HOST, MEILISEARCH_API_KEY) # noqa: F821
logger = Logger(__name__)
@router.get( @router.get(
@@ -70,6 +72,7 @@ def get_users():
}, },
] + filter_ ] + filter_
try:
return meili_client.index(USER_TABLE).search( return meili_client.index(USER_TABLE).search(
query, query,
{ {
@@ -80,6 +83,9 @@ def get_users():
'filter': meili.encode(filter_), 'filter': meili.encode(filter_),
}, },
) )
except Exception as exc:
logger.exception(exc)
raise
class UserData(BaseModel): class UserData(BaseModel):

View File

@@ -115,6 +115,7 @@ def set_score(
+ SortKey('0') + SortKey('0')
+ SortKey( + SortKey(
sk='METADATA#COURSE', sk='METADATA#COURSE',
# Prevent conflicts with `course`
rename_key='metadata__course', rename_key='metadata__course',
) )
+ SortKey( + SortKey(