"""Errors for Google Assistant.""" from .const import ERR_CHALLENGE_NEEDED class SmartHomeError(Exception): """Google Assistant Smart Home errors. https://developers.google.com/actions/smarthome/create-app#error_responses """ def __init__(self, code, msg): """Log error code.""" super().__init__(msg) self.code = code def to_response(self): """Convert to a response format.""" return { 'errorCode': self.code } class ChallengeNeeded(SmartHomeError): """Google Assistant Smart Home errors. https://developers.google.com/actions/smarthome/create-app#error_responses """ def __init__(self, challenge_type): """Initialize challenge needed error.""" super().__init__(ERR_CHALLENGE_NEEDED, 'Challenge needed: {}'.format(challenge_type)) self.challenge_type = challenge_type def to_response(self): """Convert to a response format.""" return { 'errorCode': self.code, 'challengeNeeded': { 'type': self.challenge_type } }