14
14
bind_queue / 5 ,
15
15
bind_exchange / 5 ,
16
16
unbind_queue / 5 ,
17
- % unbind_exchange/5,
17
+ unbind_exchange / 5 ,
18
18
purge_queue / 2 ,
19
19
delete_queue / 2 ,
20
20
delete_exchange / 2
@@ -232,13 +232,26 @@ bind_exchange(#link_pair{outgoing_link = OutgoingLink,
232
232
233
233
-spec unbind_queue (link_pair (), binary (), binary (), binary (), #{binary () => amqp10_prim ()}) ->
234
234
ok | {error , term ()}.
235
- unbind_queue (LinkPair = # link_pair {outgoing_link = OutgoingLink ,
236
- incoming_link = IncomingLink },
237
- QueueName , ExchangeName , BindingKey , BindingArguments ) ->
235
+ unbind_queue (LinkPair , QueueName , ExchangeName , BindingKey , BindingArguments ) ->
236
+ unbind (<<" queues" >>, LinkPair , QueueName , ExchangeName , BindingKey , BindingArguments ).
237
+
238
+ -spec unbind_exchange (link_pair (), binary (), binary (), binary (), #{binary () => amqp10_prim ()}) ->
239
+ ok | {error , term ()}.
240
+ unbind_exchange (LinkPair , DestinationExchange , SourceExchange , BindingKey , BindingArguments ) ->
241
+ unbind (<<" exchanges" >>, LinkPair , DestinationExchange , SourceExchange , BindingKey , BindingArguments ).
242
+
243
+ -spec unbind (binary (), link_pair (), binary (), binary (), binary (), #{binary () => amqp10_prim ()}) ->
244
+ ok | {error , term ()}.
245
+ unbind (Type ,
246
+ # link_pair {outgoing_link = OutgoingLink ,
247
+ incoming_link = IncomingLink } = LinkPair ,
248
+ Destination , Source , BindingKey , BindingArguments ) ->
238
249
MessageId = message_id (),
239
250
HttpMethod = <<" GET" >>,
240
- HttpRequestTarget = <<" /$management/queues/" , QueueName /binary ,
241
- " /$management/bindings?source=" , ExchangeName /binary >>,
251
+ HttpRequestTarget = <<" /$management/" ,
252
+ Type /binary , " /" ,
253
+ Destination /binary ,
254
+ " /$management/bindings?source=" , Source /binary >>,
242
255
Props = #{message_id => {binary , MessageId },
243
256
to => HttpRequestTarget ,
244
257
subject => HttpMethod ,
@@ -261,7 +274,7 @@ unbind_queue(LinkPair = #link_pair{outgoing_link = OutgoingLink,
261
274
[{list , Bindings }] = amqp10_framing :decode_bin (RespBody ),
262
275
case binding_uri (BindingKey , BindingArguments , Bindings ) of
263
276
{ok , Uri } ->
264
- ok = delete_queue_binding (LinkPair , Uri );
277
+ ok = delete_binding (LinkPair , Uri );
265
278
not_found ->
266
279
ok
267
280
end
@@ -287,10 +300,10 @@ binding_uri(BindingKey, BindingArguments, [{map, KVList} | Bindings]) ->
287
300
binding_uri (BindingKey , BindingArguments , Bindings )
288
301
end .
289
302
290
- -spec delete_queue_binding (link_pair (), binary ()) ->
303
+ -spec delete_binding (link_pair (), binary ()) ->
291
304
ok | {error , term ()}.
292
- delete_queue_binding (# link_pair {outgoing_link = OutgoingLink ,
293
- incoming_link = IncomingLink }, BindingUri ) ->
305
+ delete_binding (# link_pair {outgoing_link = OutgoingLink ,
306
+ incoming_link = IncomingLink }, BindingUri ) ->
294
307
MessageId = message_id (),
295
308
HttpMethod = <<" DELETE" >>,
296
309
Props = #{message_id => {binary , MessageId },
0 commit comments