Skip to content

Commit d5aaad8

Browse files
export delayed exchanges in a way that is compatible with rabbitmq (#663)
* export delayed exchanges in a way that is compatible with rabbitmq --------- Co-authored-by: Carl Hörberg <carl@84codes.com>
1 parent b28b50f commit d5aaad8

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/lavinmq/http/controller/definitions.cr

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,14 +299,20 @@ module LavinMQ
299299
json.array do
300300
vhosts.each_value do |v|
301301
v.exchanges.each_value.reject(&.internal?).each do |e|
302+
delayed = e.arguments["x-delayed-exchange"]?
303+
if delayed
304+
arguments = e.arguments.dup
305+
arguments["x-delayed-type"] = e.type
306+
arguments.delete("x-delayed-exchange")
307+
end
302308
{
303309
"name": e.name,
304310
"vhost": e.vhost.name,
305-
"type": e.type,
311+
"type": delayed ? "x-delayed-exchange" : e.type,
306312
"durable": e.durable?,
307313
"auto_delete": e.auto_delete?,
308314
"internal": e.internal?,
309-
"arguments": e.arguments,
315+
"arguments": delayed ? arguments : e.arguments,
310316
}.to_json(json)
311317
end
312318
end

0 commit comments

Comments
 (0)