import logging from channels.channel import Channel from entities.entity import Entity from type import TYPES # type: ignore class Interactor: def __init__(self, channel: Channel, entity: Entity): self.channel = channel self.entity = entity self.channel.on('create', self.create) self.channel.on('read', self.read) self.channel.on('update', self.update) self.channel.on('delete', self.delete) def create(self, key: str, value: any): try: self.entity.create(key, value) logging.info(f"Create event emitted: {key} = {value}") except Exception as e: logging.error(f"Error emitting create event: {e}") def read(self, key: str): try: self.entity.read(key) logging.info(f"Read event emitted: {key}") except Exception as e: logging.error(f"Error emitting read event: {e}") def update(self, key: str, value: any): try: self.entity.update(key, value) logging.info(f"Update event emitted: {key} = {value}") except Exception as e: logging.error(f"Error emitting update event: {e}") def delete(self, key: str): try: self.entity.delete(key) logging.info(f"Delete event emitted: {key}") except Exception as e: logging.error(f"Error emitting delete event: {e}")