wio
This commit is contained in:
@@ -11,24 +11,30 @@ from aws_lambda_powertools.event_handler.api_gateway import (
|
||||
)
|
||||
from aws_lambda_powertools.event_handler.exceptions import ServiceError
|
||||
from aws_lambda_powertools.logging import correlation_paths
|
||||
from aws_lambda_powertools.shared.json_encoder import Encoder
|
||||
from aws_lambda_powertools.utilities.typing import LambdaContext
|
||||
|
||||
from api_gateway import JSONResponse
|
||||
from middlewares import AuthenticationMiddleware
|
||||
from routes import courses, enrollments, lookup, orders, orgs, settings, users, webhooks
|
||||
from routes import (
|
||||
courses,
|
||||
enrollments,
|
||||
enrollments_,
|
||||
lookup,
|
||||
orders,
|
||||
orgs,
|
||||
settings,
|
||||
users,
|
||||
webhooks,
|
||||
)
|
||||
|
||||
|
||||
class JSONEncoder(json.JSONEncoder):
|
||||
def default(self, o):
|
||||
if isinstance(o, date):
|
||||
return o.isoformat()
|
||||
class JSONEncoder(Encoder):
|
||||
def default(self, obj):
|
||||
if isinstance(obj, date):
|
||||
return obj.isoformat()
|
||||
|
||||
return super().default(o)
|
||||
|
||||
|
||||
def foo(obj):
|
||||
print(obj)
|
||||
return json.dumps(obj, separators=(',', ':'), cls=JSONEncoder)
|
||||
return super().default(obj)
|
||||
|
||||
|
||||
tracer = Tracer()
|
||||
@@ -48,6 +54,7 @@ app = APIGatewayHttpResolver(
|
||||
app.use(middlewares=[AuthenticationMiddleware()])
|
||||
app.include_router(courses.router, prefix='/courses')
|
||||
app.include_router(enrollments.router, prefix='/enrollments')
|
||||
app.include_router(enrollments_.router, prefix='/new/enrollments')
|
||||
app.include_router(enrollments.vacancies, prefix='/enrollments')
|
||||
app.include_router(enrollments.enroll, prefix='/enrollments')
|
||||
app.include_router(enrollments.cancel, prefix='/enrollments')
|
||||
|
||||
@@ -9,8 +9,11 @@ def get_dynamodb_client():
|
||||
if os.getenv('AWS_LAMBDA_FUNCTION_NAME') and not running_sam_local:
|
||||
return boto3.client('dynamodb')
|
||||
|
||||
url = 'host.docker.internal' if running_sam_local else 'localhost'
|
||||
return boto3.client('dynamodb', endpoint_url=f'http://{url}:8000')
|
||||
docker_host = 'host.docker.internal'
|
||||
local_host = '127.0.0.1'
|
||||
host = docker_host if running_sam_local else local_host
|
||||
|
||||
return boto3.client('dynamodb', endpoint_url=f'http://{host}:8000')
|
||||
|
||||
|
||||
dynamodb_client = get_dynamodb_client()
|
||||
|
||||
@@ -3,6 +3,7 @@ import os
|
||||
USER_TABLE: str = os.getenv('USER_TABLE') # type: ignore
|
||||
ORDER_TABLE: str = os.getenv('ORDER_TABLE') # type: ignore
|
||||
ENROLLMENT_TABLE: str = os.getenv('ENROLLMENT_TABLE') # type: ignore
|
||||
NEW_ENROLLMENT_TABLE: str = os.getenv('NEW_ENROLLMENT_TABLE') # type: ignore
|
||||
COURSE_TABLE: str = os.getenv('COURSE_TABLE') # type: ignore
|
||||
|
||||
KONVIVA_API_URL: str = os.getenv('KONVIVA_API_URL') # type: ignore
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from typing import Annotated, Literal
|
||||
from typing import Annotated, Any, Literal
|
||||
from uuid import uuid4
|
||||
|
||||
from layercake.extra_types import CnpjStr, CpfStr, NameStr
|
||||
@@ -45,3 +45,11 @@ class Enrollment(BaseModel):
|
||||
course: Course
|
||||
progress: int = Field(default=0, ge=0, le=100)
|
||||
status: Literal['PENDING'] = 'PENDING'
|
||||
|
||||
def model_dump(
|
||||
self,
|
||||
exclude=None,
|
||||
*args,
|
||||
**kwargs,
|
||||
) -> dict[str, Any]:
|
||||
return super().model_dump(exclude={'user': {'email_verified'}}, *args, **kwargs)
|
||||
|
||||
@@ -2,7 +2,7 @@ from http import HTTPStatus
|
||||
|
||||
from aws_lambda_powertools.event_handler.api_gateway import Router
|
||||
from aws_lambda_powertools.event_handler.exceptions import NotFoundError
|
||||
from layercake.dynamodb import DynamoDBCollection, DynamoDBPersistenceLayer, KeyPair
|
||||
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair
|
||||
from meilisearch import Client as Meilisearch
|
||||
|
||||
from api_gateway import JSONResponse
|
||||
@@ -18,7 +18,6 @@ from models import Course, Org
|
||||
from rules.course import create_course, update_course
|
||||
|
||||
router = Router()
|
||||
|
||||
meili_client = Meilisearch(MEILISEARCH_HOST, MEILISEARCH_API_KEY)
|
||||
course_layer = DynamoDBPersistenceLayer(COURSE_TABLE, dynamodb_client)
|
||||
user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
|
||||
|
||||
Reference in New Issue
Block a user