"""Response to keylist-query message."""
from typing import Sequence
from marshmallow import fields
from .....messaging.agent_message import AgentMessage, AgentMessageSchema
from ..message_types import KEYLIST, PROTOCOL_PACKAGE
from .inner.keylist_key import KeylistKeySchema
from .inner.keylist_query_paginate import (
KeylistQueryPaginate,
KeylistQueryPaginateSchema,
)
HANDLER_CLASS = f"{PROTOCOL_PACKAGE}.handlers.keylist_handler.KeylistHandler"
[docs]class Keylist(AgentMessage):
"""Class representing a keylist-query response."""
def __init__(
self,
*,
keys: Sequence[str] = None,
pagination: KeylistQueryPaginate = None,
**kwargs,
):
"""
Initialize keylist query response object.
Args:
keys: Found keys by requested query
pagination: Pagination rules
"""
super().__init__(**kwargs)
self.keys = list(keys) if keys else []
self.pagination = pagination
[docs]class KeylistSchema(AgentMessageSchema):
"""Keylist query response schema class."""
pagination = fields.Nested(
KeylistQueryPaginateSchema(), required=False, description="List of update rules"
)
keys = fields.List(fields.Nested(KeylistKeySchema()), description="Keys")