add get_items

This commit is contained in:
2025-04-08 13:44:06 -03:00
parent 68ff6f282b
commit 6450e5fa7c
18 changed files with 393 additions and 195 deletions

View File

@@ -1,21 +1,25 @@
import json
from http import HTTPStatus
from aws_lambda_powertools.event_handler import Response, content_types
from aws_lambda_powertools.event_handler.api_gateway import Router
from aws_lambda_powertools.event_handler.exceptions import NotFoundError
from elasticsearch import Elasticsearch
from layercake.dynamodb import DynamoDBCollection, DynamoDBPersistenceLayer, KeyPair
from meilisearch import Client as Meilisearch
import elastic
from boto3clients import dynamodb_client
from course import create_course, update_course
from middlewares import AuditLogMiddleware, Tenant, TenantMiddleware
from models import Course, Org
from settings import COURSE_TABLE, ELASTIC_CONN, USER_TABLE
from settings import (
COURSE_TABLE,
MEILISEARCH_API_KEY,
MEILISEARCH_HOST,
USER_TABLE,
)
router = Router()
elastic_client = Elasticsearch(**ELASTIC_CONN)
meili_client = Meilisearch(MEILISEARCH_HOST, MEILISEARCH_API_KEY)
course_layer = DynamoDBPersistenceLayer(COURSE_TABLE, dynamodb_client)
user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
user_collect = DynamoDBCollection(user_layer)
@@ -30,14 +34,19 @@ course_collect = DynamoDBCollection(course_layer)
)
def get_courses():
event = router.current_event
query = event.get_query_string_value('query', '{}')
page_size = event.get_query_string_value('page_size', '25')
query = event.get_query_string_value('query', '')
sort = event.get_query_string_value('sort', '')
page = int(event.get_query_string_value('page', '1'))
hits_per_page = int(event.get_query_string_value('hitsPerPage', '25'))
return elastic.search(
index=COURSE_TABLE,
page_size=int(page_size),
query=json.loads(query),
elastic_client=elastic_client,
return meili_client.index(COURSE_TABLE).search(
query,
{
'sort': [sort],
'locales': ['pt'],
'page': page,
'hitsPerPage': hits_per_page,
},
)