def decode(self, value: bytes) -> SubscriptionData: try: data = json.loads(value.decode("utf-8")) except json.JSONDecodeError: raise InvalidQueryException("Invalid JSON") return SubscriptionData.from_dict(data, self.entity_key)
def decode(self, value: KafkaPayload) -> ScheduledSubscriptionTask: payload_value = value.value assert value.key is not None subscription_identifier = value.key.decode("utf-8") scheduled_subscription_dict = rapidjson.loads(payload_value.decode("utf-8")) entity_key = EntityKey(scheduled_subscription_dict["entity"]) return ScheduledSubscriptionTask( datetime.fromisoformat(scheduled_subscription_dict["timestamp"]), SubscriptionWithMetadata( entity_key, Subscription( SubscriptionIdentifier.from_string(subscription_identifier), SubscriptionData.from_dict( scheduled_subscription_dict["task"]["data"], entity_key ), ), scheduled_subscription_dict["tick_upper_offset"], ), )