def register_paginator(pagination_query_key, pagination_response_key):
def decorator(func):
setattr(
func,
"_paginator_metadata",
{
"method": func.__name__,
"pagination_query_key": pagination_query_key,
"pagination_response_key": pagination_response_key,
},
)
logger.debug(
f"Registering paginator: {func.__name__} with query key: "
f"{pagination_query_key} and response key: {pagination_response_key}"
)
@functools.wraps(func) # Preserve the original function's attributes
async def wrapper(self, *args, **kwargs):
return await func(self, *args, **kwargs)
return wrapper
return decorator