"""Represents a connection problem report message."""
from enum import Enum
from marshmallow import fields
from ...agent_message import AgentMessage, AgentMessageSchema
from ..message_types import PROBLEM_REPORT
HANDLER_CLASS = "aries_cloudagent.messaging.problem_report.handler.ProblemReportHandler"
[docs]class ProblemReportReason(str, Enum):
"""Supported reason codes."""
INVITATION_NOT_ACCEPTED = "invitation_not_accepted"
REQUEST_NOT_ACCEPTED = "request_not_accepted"
REQUEST_PROCESSING_ERROR = "request_processing_error"
RESPONSE_NOT_ACCEPTED = "response_not_accepted"
RESPONSE_PROCESSING_ERROR = "response_processing_error"
[docs]class ProblemReport(AgentMessage):
"""Base class representing a connection problem report message."""
def __init__(self, *, problem_code: str = None, explain: str = None, **kwargs):
"""
Initialize a ProblemReport message instance.
Args:
explain: The localized error explanation
problem_code: The standard error identifier
"""
super(ProblemReport, self).__init__(**kwargs)
self.explain = explain
self.problem_code = problem_code
[docs]class ProblemReportSchema(AgentMessageSchema):
"""Schema for ProblemReport base class."""
explain = fields.Str(required=False)
problem_code = fields.Str(data_key="problem-code", required=False)