@@ -3,7 +3,7 @@ import { SocketMessage } from "./SocketMessage";
33import { Message , JSONfn } from "./Messages/Message" ;
44import { Config } from "./Config" ;
55import { amqpwrapper , QueueMessageOptions , amqpqueue , amqpexchange , exchangealgorithm } from "./amqpwrapper" ;
6- import { NoderedUtil , Base , InsertOneMessage , QueueMessage , MapReduceMessage , QueryMessage , UpdateOneMessage , UpdateManyMessage , DeleteOneMessage , User , mapFunc , reduceFunc , finalizeFunc , QueuedMessage , QueuedMessageCallback , WatchEventMessage , QueueClosedMessage , ExchangeClosedMessage } from "@openiap/openflow-api" ;
6+ import { NoderedUtil , Base , InsertOneMessage , QueueMessage , MapReduceMessage , QueryMessage , UpdateOneMessage , UpdateManyMessage , DeleteOneMessage , User , mapFunc , reduceFunc , finalizeFunc , QueuedMessage , QueuedMessageCallback , WatchEventMessage , QueueClosedMessage , ExchangeClosedMessage , TokenUser } from "@openiap/openflow-api" ;
77import { ChangeStream } from "mongodb" ;
88import { WebSocketServer } from "./WebSocketServer" ;
99import { Span } from "@opentelemetry/api" ;
@@ -215,7 +215,7 @@ export class WebSocketServerClient {
215215 for ( let i = this . _queues . length - 1 ; i >= 0 ; i -- ) {
216216 try {
217217 // await this.CloseConsumer(this._queues[i]);
218- await amqpwrapper . Instance ( ) . RemoveQueueConsumer ( this . _queues [ i ] , undefined ) ;
218+ await amqpwrapper . Instance ( ) . RemoveQueueConsumer ( this . user , this . _queues [ i ] , undefined ) ;
219219 this . _queues . splice ( i , 1 ) ;
220220 this . _queuescurrent -- ;
221221 this . _queuescurrentstr = this . _queuescurrent . toString ( ) ;
@@ -260,7 +260,7 @@ export class WebSocketServerClient {
260260 Logger . otel . endSpan ( span ) ;
261261 }
262262 }
263- public async CloseConsumer ( queuename : string , parent : Span ) : Promise < void > {
263+ public async CloseConsumer ( user : TokenUser | User , queuename : string , parent : Span ) : Promise < void > {
264264 const span : Span = Logger . otel . startSubSpan ( "WebSocketServerClient.CloseConsumer" , parent ) ;
265265 await semaphore . down ( ) ;
266266 try {
@@ -269,7 +269,7 @@ export class WebSocketServerClient {
269269 const q = this . _queues [ i ] ;
270270 if ( q && ( q . queue == queuename || q . queuename == queuename ) ) {
271271 try {
272- amqpwrapper . Instance ( ) . RemoveQueueConsumer ( this . _queues [ i ] , span ) . catch ( ( err ) => {
272+ amqpwrapper . Instance ( ) . RemoveQueueConsumer ( user , this . _queues [ i ] , span ) . catch ( ( err ) => {
273273 Logger . instanse . error ( "WebSocketclient::CloseConsumer::RemoveQueueConsumer " + err ) ;
274274 } ) ;
275275 this . _queues . splice ( i , 1 ) ;
@@ -289,7 +289,7 @@ export class WebSocketServerClient {
289289 Logger . otel . endSpan ( span ) ;
290290 }
291291 }
292- public async RegisterExchange ( exchangename : string , algorithm : exchangealgorithm , routingkey : string = "" , addqueue : boolean , parent : Span ) : Promise < RegisterExchangeResponse > {
292+ public async RegisterExchange ( user : TokenUser | User , exchangename : string , algorithm : exchangealgorithm , routingkey : string = "" , addqueue : boolean , parent : Span ) : Promise < RegisterExchangeResponse > {
293293 const span : Span = Logger . otel . startSubSpan ( "WebSocketServerClient.CreateConsumer" , parent ) ;
294294 try {
295295 let exclusive : boolean = false ; // Should we keep the queue around ? for robots and roles
@@ -311,7 +311,7 @@ export class WebSocketServerClient {
311311 try {
312312 const AssertExchangeOptions : any = Object . assign ( { } , ( amqpwrapper . Instance ( ) . AssertExchangeOptions ) ) ;
313313 AssertExchangeOptions . exclusive = exclusive ;
314- exchangequeue = await amqpwrapper . Instance ( ) . AddExchangeConsumer ( exchange , algorithm , routingkey , AssertExchangeOptions , this . jwt , addqueue , async ( msg : any , options : QueueMessageOptions , ack : any , done : any ) => {
314+ exchangequeue = await amqpwrapper . Instance ( ) . AddExchangeConsumer ( user , exchange , algorithm , routingkey , AssertExchangeOptions , this . jwt , addqueue , async ( msg : any , options : QueueMessageOptions , ack : any , done : any ) => {
315315 const _data = msg ;
316316 try {
317317 const result = await this . Queue ( msg , exchange , options ) ;
@@ -368,7 +368,7 @@ export class WebSocketServerClient {
368368 qname = "unknown." + NoderedUtil . GetUniqueIdentifier ( ) ; exclusive = true ;
369369 }
370370 }
371- await this . CloseConsumer ( qname , span ) ;
371+ await this . CloseConsumer ( this . user , qname , span ) ;
372372 let queue : amqpqueue = null ;
373373 try {
374374 const AssertQueueOptions : any = Object . assign ( { } , ( amqpwrapper . Instance ( ) . AssertQueueOptions ) ) ;
@@ -380,10 +380,10 @@ export class WebSocketServerClient {
380380 if ( exists . length > 0 ) {
381381 Logger . instanse . warn ( "CreateConsumer: " + qname + " already exists, removing before re-creating" ) ;
382382 for ( let i = 0 ; i < exists . length ; i ++ ) {
383- await amqpwrapper . Instance ( ) . RemoveQueueConsumer ( exists [ i ] , span ) ;
383+ await amqpwrapper . Instance ( ) . RemoveQueueConsumer ( this . user , exists [ i ] , span ) ;
384384 }
385385 }
386- queue = await amqpwrapper . Instance ( ) . AddQueueConsumer ( qname , AssertQueueOptions , this . jwt , async ( msg : any , options : QueueMessageOptions , ack : any , done : any ) => {
386+ queue = await amqpwrapper . Instance ( ) . AddQueueConsumer ( this . user , qname , AssertQueueOptions , this . jwt , async ( msg : any , options : QueueMessageOptions , ack : any , done : any ) => {
387387 const _data = msg ;
388388 try {
389389 Logger . instanse . verbose ( "[preack] queuename: " + queuename + " qname: " + qname + " replyto: " + options . replyTo + " correlationId: " + options . correlationId )
0 commit comments