Skip to content

Commit 4e9dae9

Browse files
committed
Retain custom headers when unserializing
1 parent d4f7aa0 commit 4e9dae9

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/TopicMessageSerializer.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,12 @@ public function unserializePayload(RawMessage $rawMessage): Message
3232
{
3333
$messageClass = $this->topic->getMessageClassFromType($rawMessage->messageType);
3434
$payload = $messageClass::fromPayload(json_decode($rawMessage->messagePayload, true));
35+
$headers = json_decode($rawMessage->headerPayload, true);
3536
$message = new Message($payload, [
3637
Header::MESSAGE_ID => $rawMessage->messageId,
3738
Header::MESSAGE_TYPE => $rawMessage->messageType,
3839
Header::MESSAGE_TOPIC => $rawMessage->topic,
39-
]);
40+
] + $headers);
4041
if($rawMessage->publishedAtFormat !== null){
4142
return $message->withTimeOfRecording($rawMessage->publishedAt, $rawMessage->publishedAtFormat);
4243
}

tests/TopicMessageSerializerTest.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,16 @@ public function it_can_serialise_and_deserialize(PublicMessage $publicMessage, T
2222
{
2323
$topicSerializer = new TopicMessageSerializer($topic);
2424
$message = new Message($publicMessage, [
25-
Header::MESSAGE_ID => 'foo'
25+
Header::MESSAGE_ID => 'foo',
26+
'custom-header' => 'bar',
2627
]);
2728
$message = $message->withTimeOfRecording(new DateTimeImmutable('now'));
2829
$rawMessage = $topicSerializer->serializeMessage($message);
2930

3031
$reconstructedMessage = $topicSerializer->unserializePayload($rawMessage);
3132
$this->assertEquals($publicMessage, $reconstructedMessage->payload());
33+
$this->assertEquals('foo', $reconstructedMessage->headers()[Header::MESSAGE_ID]);
34+
$this->assertEquals('bar', $reconstructedMessage->headers()['custom-header']);
3235
}
3336

3437
public function providesMessages(): \Generator

0 commit comments

Comments
 (0)