dazu/adapters/adapter.py
from abc import abstractmethod
from typing import Dict
from dazu.registry import Module, Registry
from dazu.typing import Message
class Adapter(Module):
"""
Adapter Class documentation
"""
@classmethod
def validate_data(self, payload: Dict) -> bool:
"""
validate_data method documentation
"""
return True
@classmethod
@abstractmethod
def input(cls, payload: Dict) -> Message:
pass
@classmethod
@abstractmethod
def output(cls, message: Message) -> Dict:
pass
class MessageAdapter(Adapter):
@classmethod
def name(cls):
return "message"
@classmethod
def validate_data(cls, payload: Dict) -> bool:
return "input" in payload and "text" in payload["input"]
@classmethod
def input(cls, payload: Dict) -> Message:
return Message.build(payload=payload)
@classmethod
def output(cls, message: Message) -> Dict:
return message.__dict__
Registry.registryAdapter(MessageAdapter)