@@ -29,7 +29,7 @@ export class InstanceController {
2929 private readonly chatwootService : ChatwootService ,
3030 private readonly settingsService : SettingsService ,
3131 private readonly websocketService : WebsocketService ,
32- private readonly rebbitmqService : RabbitmqService ,
32+ private readonly rabbitmqService : RabbitmqService ,
3333 private readonly cache : RedisCache ,
3434 ) { }
3535
@@ -57,6 +57,8 @@ export class InstanceController {
5757 read_status,
5858 websocket_enabled,
5959 websocket_events,
60+ rabbitmq_enabled,
61+ rabbitmq_events,
6062 } : InstanceDto ) {
6163 try {
6264 this . logger . verbose ( 'requested createInstance from ' + instanceName + ' instance' ) ;
@@ -177,6 +179,50 @@ export class InstanceController {
177179 }
178180 }
179181
182+ let rabbitmqEvents : string [ ] ;
183+
184+ if ( rabbitmq_enabled ) {
185+ this . logger . verbose ( 'creating rabbitmq' ) ;
186+ try {
187+ let newEvents : string [ ] = [ ] ;
188+ if ( rabbitmq_events . length === 0 ) {
189+ newEvents = [
190+ 'APPLICATION_STARTUP' ,
191+ 'QRCODE_UPDATED' ,
192+ 'MESSAGES_SET' ,
193+ 'MESSAGES_UPSERT' ,
194+ 'MESSAGES_UPDATE' ,
195+ 'MESSAGES_DELETE' ,
196+ 'SEND_MESSAGE' ,
197+ 'CONTACTS_SET' ,
198+ 'CONTACTS_UPSERT' ,
199+ 'CONTACTS_UPDATE' ,
200+ 'PRESENCE_UPDATE' ,
201+ 'CHATS_SET' ,
202+ 'CHATS_UPSERT' ,
203+ 'CHATS_UPDATE' ,
204+ 'CHATS_DELETE' ,
205+ 'GROUPS_UPSERT' ,
206+ 'GROUP_UPDATE' ,
207+ 'GROUP_PARTICIPANTS_UPDATE' ,
208+ 'CONNECTION_UPDATE' ,
209+ 'CALL' ,
210+ 'NEW_JWT_TOKEN' ,
211+ ] ;
212+ } else {
213+ newEvents = events ;
214+ }
215+ this . rabbitmqService . create ( instance , {
216+ enabled : true ,
217+ events : newEvents ,
218+ } ) ;
219+
220+ rabbitmqEvents = ( await this . rabbitmqService . find ( instance ) ) . events ;
221+ } catch ( error ) {
222+ this . logger . log ( error ) ;
223+ }
224+ }
225+
180226 this . logger . verbose ( 'creating settings' ) ;
181227 const settings : wa . LocalSettings = {
182228 reject_call : reject_call || false ,
@@ -216,6 +262,10 @@ export class InstanceController {
216262 enabled : websocket_enabled ,
217263 events : websocketEvents ,
218264 } ,
265+ rabbitmq : {
266+ enabled : rabbitmq_enabled ,
267+ events : rabbitmqEvents ,
268+ } ,
219269 settings,
220270 qrcode : getQrcode ,
221271 } ;
@@ -295,6 +345,10 @@ export class InstanceController {
295345 enabled : websocket_enabled ,
296346 events : websocketEvents ,
297347 } ,
348+ rabbitmq : {
349+ enabled : rabbitmq_enabled ,
350+ events : rabbitmqEvents ,
351+ } ,
298352 settings,
299353 chatwoot : {
300354 enabled : true ,
0 commit comments