diff --git a/http-api/app/routes/courses/__init__.py b/http-api/app/routes/courses/__init__.py index e2228b3..ebcab04 100644 --- a/http-api/app/routes/courses/__init__.py +++ b/http-api/app/routes/courses/__init__.py @@ -1,5 +1,6 @@ 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.exceptions import NotFoundError from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair @@ -18,6 +19,7 @@ from models import Course from rules.course import create_course, update_course router = Router() +logger = Logger(__name__) meili_client = Meilisearch(MEILISEARCH_HOST, MEILISEARCH_API_KEY) course_layer = DynamoDBPersistenceLayer(COURSE_TABLE, dynamodb_client) user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client) @@ -36,15 +38,19 @@ def get_courses(): page = int(event.get_query_string_value('page', '1')) hits_per_page = int(event.get_query_string_value('hitsPerPage', '25')) - return meili_client.index(COURSE_TABLE).search( - query, - { - 'sort': [sort], - 'locales': ['pt'], - 'page': page, - 'hitsPerPage': hits_per_page, - }, - ) + try: + return meili_client.index(COURSE_TABLE).search( + query, + { + 'sort': [sort], + 'locales': ['pt'], + 'page': page, + 'hitsPerPage': hits_per_page, + }, + ) + except Exception as exc: + logger.exception(exc) + raise @router.post( diff --git a/http-api/app/routes/users/__init__.py b/http-api/app/routes/users/__init__.py index b00d658..3ba85b2 100644 --- a/http-api/app/routes/users/__init__.py +++ b/http-api/app/routes/users/__init__.py @@ -2,6 +2,7 @@ import urllib.parse as parse from http import HTTPStatus 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.exceptions import ( BadRequestError as PowertoolsBadRequestError, @@ -41,6 +42,7 @@ router = Router() user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client) user_collect = DynamoDBCollection(user_layer, exc_cls=BadRequestError) meili_client = Meilisearch(MEILISEARCH_HOST, MEILISEARCH_API_KEY) # noqa: F821 +logger = Logger(__name__) @router.get( @@ -70,16 +72,20 @@ def get_users(): }, ] + filter_ - return meili_client.index(USER_TABLE).search( - query, - { - 'sort': [sort], - 'locales': ['pt'], - 'page': page, - 'hitsPerPage': hits_per_page, - 'filter': meili.encode(filter_), - }, - ) + try: + return meili_client.index(USER_TABLE).search( + query, + { + 'sort': [sort], + 'locales': ['pt'], + 'page': page, + 'hitsPerPage': hits_per_page, + 'filter': meili.encode(filter_), + }, + ) + except Exception as exc: + logger.exception(exc) + raise class UserData(BaseModel): diff --git a/konviva-events/app/enrollment.py b/konviva-events/app/enrollment.py index d50aa4d..aff303d 100644 --- a/konviva-events/app/enrollment.py +++ b/konviva-events/app/enrollment.py @@ -115,6 +115,7 @@ def set_score( + SortKey('0') + SortKey( sk='METADATA#COURSE', + # Prevent conflicts with `course` rename_key='metadata__course', ) + SortKey(