add cert_expires_at
This commit is contained in:
14
api.saladeaula.digital/app/routes/enrollments/cancel.py
Normal file
14
api.saladeaula.digital/app/routes/enrollments/cancel.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from aws_lambda_powertools import Logger
|
||||
from aws_lambda_powertools.event_handler.api_gateway import Router
|
||||
from layercake.dynamodb import DynamoDBPersistenceLayer
|
||||
|
||||
from boto3clients import dynamodb_client
|
||||
from config import ENROLLMENT_TABLE
|
||||
|
||||
logger = Logger(__name__)
|
||||
router = Router()
|
||||
dyn = DynamoDBPersistenceLayer(ENROLLMENT_TABLE, dynamodb_client)
|
||||
|
||||
|
||||
@router.patch('/')
|
||||
def cancel(): ...
|
||||
@@ -0,0 +1,28 @@
|
||||
from http import HTTPStatus
|
||||
from typing import Annotated
|
||||
|
||||
from aws_lambda_powertools.event_handler.api_gateway import Router
|
||||
from aws_lambda_powertools.event_handler.openapi.params import Body
|
||||
from layercake.dynamodb import (
|
||||
DynamoDBPersistenceLayer,
|
||||
KeyPair,
|
||||
)
|
||||
|
||||
from api_gateway import JSONResponse
|
||||
from boto3clients import dynamodb_client
|
||||
from config import ENROLLMENT_TABLE
|
||||
|
||||
router = Router()
|
||||
dyn = DynamoDBPersistenceLayer(ENROLLMENT_TABLE, dynamodb_client)
|
||||
|
||||
|
||||
@router.patch('/<enrollment_id>/dedupwindow', compress=True)
|
||||
def dedup_window(
|
||||
enrollment_id: str,
|
||||
lock_hash: Annotated[str, Body(embed=True)],
|
||||
):
|
||||
with dyn.transact_writer() as transact:
|
||||
transact.delete(key=KeyPair(enrollment_id, 'LOCK'))
|
||||
transact.delete(key=KeyPair('LOCK', lock_hash))
|
||||
|
||||
return JSONResponse(HTTPStatus.NO_CONTENT)
|
||||
@@ -0,0 +1,22 @@
|
||||
from aws_lambda_powertools.event_handler.api_gateway import Router
|
||||
|
||||
from boto3clients import s3_client
|
||||
from config import BUCKET_NAME
|
||||
|
||||
router = Router()
|
||||
|
||||
|
||||
@router.get('/<enrollment_id>/download')
|
||||
def download(enrollment_id: str):
|
||||
params = {
|
||||
'Bucket': BUCKET_NAME,
|
||||
'Key': f'certs/{enrollment_id}.pdf',
|
||||
'ResponseContentDisposition': f'attachment; filename="{enrollment_id}.pdf"',
|
||||
}
|
||||
return {
|
||||
'presigned_url': s3_client.generate_presigned_url(
|
||||
ClientMethod='get_object',
|
||||
Params=params,
|
||||
ExpiresIn=300, # 5 minutes
|
||||
)
|
||||
}
|
||||
14
api.saladeaula.digital/app/routes/enrollments/enroll.py
Normal file
14
api.saladeaula.digital/app/routes/enrollments/enroll.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from aws_lambda_powertools import Logger
|
||||
from aws_lambda_powertools.event_handler.api_gateway import Router
|
||||
from layercake.dynamodb import DynamoDBPersistenceLayer
|
||||
|
||||
from boto3clients import dynamodb_client
|
||||
from config import ENROLLMENT_TABLE
|
||||
|
||||
logger = Logger(__name__)
|
||||
router = Router()
|
||||
dyn = DynamoDBPersistenceLayer(ENROLLMENT_TABLE, dynamodb_client)
|
||||
|
||||
|
||||
@router.post('/')
|
||||
def enroll(): ...
|
||||
21
api.saladeaula.digital/app/routes/users/orgs.py
Normal file
21
api.saladeaula.digital/app/routes/users/orgs.py
Normal file
@@ -0,0 +1,21 @@
|
||||
from aws_lambda_powertools import Logger
|
||||
from aws_lambda_powertools.event_handler.api_gateway import Router
|
||||
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair
|
||||
|
||||
from boto3clients import dynamodb_client
|
||||
from config import USER_TABLE
|
||||
|
||||
logger = Logger(__name__)
|
||||
router = Router()
|
||||
dyn = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
|
||||
|
||||
|
||||
@router.get('/<user_id>/orgs')
|
||||
def get_orgs(user_id: str):
|
||||
start_key = router.current_event.get_query_string_value('start_key', None)
|
||||
|
||||
return dyn.collection.query(
|
||||
# Post-migration (users): rename `orgs` to `ORG`
|
||||
key=KeyPair(user_id, 'orgs'),
|
||||
start_key=start_key,
|
||||
)
|
||||
@@ -20,7 +20,7 @@ Globals:
|
||||
Architectures:
|
||||
- x86_64
|
||||
Layers:
|
||||
- !Sub arn:aws:lambda:sa-east-1:336641857101:layer:layercake:97
|
||||
- !Sub arn:aws:lambda:sa-east-1:336641857101:layer:layercake:99
|
||||
Environment:
|
||||
Variables:
|
||||
TZ: America/Sao_Paulo
|
||||
|
||||
@@ -60,7 +60,7 @@ def test_edit_course(
|
||||
|
||||
assert (
|
||||
r['cert']['s3_uri']
|
||||
== 's3://saladeaula.digital/certs/2a8963fc-4694-4fe2-953a-316d1b10f1f5.html'
|
||||
== 's3://saladeaula.digital/certs/templates/2a8963fc-4694-4fe2-953a-316d1b10f1f5.html'
|
||||
)
|
||||
|
||||
|
||||
|
||||
2
api.saladeaula.digital/uv.lock
generated
2
api.saladeaula.digital/uv.lock
generated
@@ -592,7 +592,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "layercake"
|
||||
version = "0.10.1"
|
||||
version = "0.11.0"
|
||||
source = { directory = "../layercake" }
|
||||
dependencies = [
|
||||
{ name = "arnparse" },
|
||||
|
||||
Reference in New Issue
Block a user