"""Handle formatting of JSON messages coming from topic.""" from kafka_utils.consumer.message.base import BaseEventMessage class AssetMezzanineCoverartEventMessage(BaseEventMessage): """AssetMezzanineCoverartEventMessage class.""" def __init__(self, message, topic, value_deserializer): """ Initialize. Args: message (dict): the string for JSON serialized message topic (str): The topic for the message. value_deserializer (BaseDeserializer subclass): Deserializer """ super().__init__(message, topic) self.value_deserializer = value_deserializer self.message = self.value_deserializer.deserialize(message, topic, "value") @property def filename(self): """Asset File Name.""" return self.message.get("FILENAME") @property def asset_final_id(self): """Asset Final ID.""" return self.message.get("ASSET_FINAL_ID") @property def asset_upload_id(self): """Asset Upload ID.""" return self.message.get("ASSET_UPLOAD_ID") @property def asset_type(self): """Asset Type.""" return self.message.get("ASSET_TYPE") @property def asset_subtype(self): """Asset Sub Type.""" return self.message.get("ASSET_SUBTYPE") @property def bucket(self): """Asset Storage Bucket.""" return self.message.get("BUCKET") @property def metadata(self): """Asset Metadata.""" return self.message.get("METADATA") @classmethod def from_dict(cls, data: dict): """Create an instance from a plain dict payload.""" instance = object.__new__(cls) instance.message = data return instance