@@ -2186,8 +2186,34 @@ export class WAStartupService {
21862186 }
21872187 } ,
21882188
2189- [ Events . LABELS_ASSOCIATION ] : async ( data : { association : LabelAssociation ; type : 'remove' | 'add' } ) => {
2189+ [ Events . LABELS_ASSOCIATION ] : async (
2190+ data : { association : LabelAssociation ; type : 'remove' | 'add' } ,
2191+ database : Database ,
2192+ ) => {
21902193 this . logger . verbose ( 'Sending data to webhook in event LABELS_ASSOCIATION' ) ;
2194+
2195+ // Atualiza labels no contato
2196+ const contact = await this . repository . contact . find ( {
2197+ where : {
2198+ owner : this . instance . name ,
2199+ id : data . association . chatId ,
2200+ } ,
2201+ } ) ;
2202+ if ( contact . length > 0 ) {
2203+ let labels = [ ...contact [ 0 ] . labels ] ;
2204+ if ( data . type === 'remove' ) {
2205+ labels = labels . filter ( ( label ) => label !== data . association . labelId ) ;
2206+ } else if ( data . type === 'add' ) {
2207+ labels = [ ...labels , data . association . labelId ] ;
2208+ }
2209+ await this . repository . contact . update (
2210+ [ { ...contact [ 0 ] , labels } ] ,
2211+ this . instance . name ,
2212+ database . SAVE_DATA . CONTACTS ,
2213+ ) ;
2214+ }
2215+
2216+ // Envia dados para o webhook
21912217 this . sendDataWebhook ( Events . LABELS_ASSOCIATION , {
21922218 instance : this . instance . name ,
21932219 type : data . type ,
@@ -2333,18 +2359,19 @@ export class WAStartupService {
23332359 const payload = events [ 'contacts.update' ] ;
23342360 this . contactHandle [ 'contacts.update' ] ( payload , database ) ;
23352361
2336- if ( events [ Events . LABELS_ASSOCIATION ] ) {
2337- this . logger . verbose ( 'Listening event: labels.association' ) ;
2338- const payload = events [ Events . LABELS_ASSOCIATION ] ;
2339- this . labelHandle [ Events . LABELS_ASSOCIATION ] ( payload ) ;
2340- return ;
2341- }
2362+ if ( events [ Events . LABELS_ASSOCIATION ] ) {
2363+ this . logger . verbose ( 'Listening event: labels.association' ) ;
2364+ const payload = events [ Events . LABELS_ASSOCIATION ] ;
2365+ this . labelHandle [ Events . LABELS_ASSOCIATION ] ( payload , database ) ;
2366+ return ;
2367+ }
23422368
2343- if ( events [ Events . LABELS_EDIT ] ) {
2344- this . logger . verbose ( 'Listening event: labels.edit' ) ;
2345- const payload = events [ Events . LABELS_EDIT ] ;
2346- this . labelHandle [ Events . LABELS_EDIT ] ( payload , database ) ;
2347- return ;
2369+ if ( events [ Events . LABELS_EDIT ] ) {
2370+ this . logger . verbose ( 'Listening event: labels.edit' ) ;
2371+ const payload = events [ Events . LABELS_EDIT ] ;
2372+ this . labelHandle [ Events . LABELS_EDIT ] ( payload , database ) ;
2373+ return ;
2374+ }
23482375 }
23492376 }
23502377 } ) ;
0 commit comments