from aws_lambda_powertools.event_handler.api_gateway import Router
from aws_lambda_powertools.event_handler.exceptions import (
    BadRequestError as PowertoolsBadRequestError,
)
from layercake.dynamodb import (
    ComposeKey,
    DynamoDBPersistenceLayer,
    MissingError,
    PartitionKey,
)

from boto3clients import dynamodb_client
from config import USER_TABLE


class BadRequestError(MissingError, PowertoolsBadRequestError): ...


router = Router()
user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)


@router.get('/<id>/logs', compress=True, tags=['User'])
def get_logs(id: str):
    return user_layer.collection.query(
        # Post-migration: uncomment the following line
        # PartitionKey(ComposeKey(id, 'LOGS')),
        PartitionKey(ComposeKey(id, 'log', delimiter=':')),
        start_key=router.current_event.get_query_string_value('start_key', None),
    )
