add cert_expires_at

This commit is contained in:
2025-10-15 15:10:47 -03:00
parent 54c92b3996
commit ffa04d9b15
37 changed files with 371 additions and 230 deletions

View 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(): ...

View File

@@ -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)

View File

@@ -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
)
}

View 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(): ...