Skip to content

Commit 95459ae

Browse files
feature - support sending dict to protobuf based stations (#150)
1 parent b3878e6 commit 95459ae

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

memphis/producer.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from graphql import parse as parse_graphql
1010
from graphql import validate as validate_graphql
1111
from jsonschema import validate
12+
import google.protobuf.json_format as protobuf_json_format
1213
from memphis.exceptions import MemphisError, MemphisSchemaError
1314
from memphis.headers import Headers
1415
from memphis.utils import get_internal_name
@@ -89,7 +90,13 @@ def validate_protobuf(self, message):
8990
e = "Error parsing protobuf message"
9091
raise MemphisSchemaError(str(e))
9192
return msgToSend
92-
93+
elif isinstance(message, dict):
94+
try:
95+
protobuf_json_format.ParseDict(message, proto_msg)
96+
msgToSend = proto_msg.SerializeToString()
97+
return msgToSend
98+
except Exception as e:
99+
raise MemphisSchemaError(str(e))
93100
else:
94101
raise MemphisSchemaError("Unsupported message type")
95102

0 commit comments

Comments
 (0)