add middleware

This commit is contained in:
2025-04-02 13:43:10 -03:00
parent 3a799fbbd1
commit 8cd755f0ae
14 changed files with 213 additions and 93 deletions

View File

@@ -9,7 +9,7 @@ from layercake.dynamodb import DynamoDBCollection, DynamoDBPersistenceLayer
import elastic
from boto3clients import dynamodb_client
from course import create_course
from middlewares import AuditLogMiddleware
from middlewares import AuditLogMiddleware, Tenant, TenantMiddleware
from models import Course, Org
from settings import COURSE_TABLE, ELASTIC_CONN, USER_TABLE
@@ -17,7 +17,7 @@ router = Router()
elastic_client = Elasticsearch(**ELASTIC_CONN)
course_layer = DynamoDBPersistenceLayer(COURSE_TABLE, dynamodb_client)
user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
collect = DynamoDBCollection(user_layer)
user_collect = DynamoDBCollection(user_layer)
@router.get(
@@ -44,13 +44,16 @@ def get_courses():
compress=True,
tags=['Course'],
middlewares=[
AuditLogMiddleware('COURSE_ADD', collect, ('id', 'name')),
TenantMiddleware(user_collect),
AuditLogMiddleware('COURSE_ADD', user_collect, ('id', 'name')),
],
)
def post_course(payload: Course):
tenant: Tenant = router.context['tenant']
create_course(
course=payload,
org=Org(id='*', name='default'),
org=Org(id=tenant.id, name=tenant.name),
persistence_layer=course_layer,
)

View File

@@ -33,8 +33,8 @@ def settings():
return {
'acls': acls['items'],
# Note: ensure compatibility with search on React's tenant menu
'tenants': [x | {'id': x['sk']} for x in tenants['items']],
# Note: Ensure compatibility with search on React's tenant menu
'tenants': [x | {'id': x['sk'], 'sk': '0'} for x in tenants['items']],
}