1 // *************************************************************************
3 // * xCALLY Motion - The Omnichannel Contact Center *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved *
6 // *************************************************************************
8 // * Email: info@xcally.com *
9 // * Website: https://www.xcally.com *
11 // *************************************************************************
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
17 // *************************************************************************
18 var _0x1faf=['then','emit','hasOwnProperty','events','../../mysqldb','ChatInteraction','ChatMessage','setMaxListeners','save','update','remove','setDataValue','Users'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x1faf,0x1f1));var _0xf1fa=function(_0x39b63c,_0x22eedd){_0x39b63c=_0x39b63c-0x0;var _0x25c645=_0x1faf[_0x39b63c];return _0x25c645;};'use strict';var EventEmitter=require(_0xf1fa('0x0'));var ChatInteraction=require(_0xf1fa('0x1'))['db'][_0xf1fa('0x2')];var ChatMessage=require('../../mysqldb')['db'][_0xf1fa('0x3')];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0xf1fa('0x4')](0x0);var events={'afterCreate':_0xf1fa('0x5'),'afterUpdate':_0xf1fa('0x6'),'afterDestroy':_0xf1fa('0x7')};function emitEvent(_0x359496){return function(_0x2888f5,_0x56f7cb,_0x5131b9){_0x2888f5['getUsers']({'attributes':['id'],'raw':!![]})['then'](function(_0x59fea9){_0x2888f5[_0xf1fa('0x8')](_0xf1fa('0x9'),_0x59fea9['map'](function(_0x258dba){return{'id':_0x258dba['id']};}));return ChatMessage['findAll']({'where':{'ChatInteractionId':_0x2888f5['id'],'direction':'in','read':![]},'raw':!![]});})[_0xf1fa('0xa')](function(_0x27212d){_0x2888f5[_0xf1fa('0x8')]('unreadMessages',_0x27212d['length']);ChatInteractionEvents['emit'](_0x359496+':'+_0x2888f5['id'],_0x2888f5);ChatInteractionEvents[_0xf1fa('0xb')](_0x359496,_0x2888f5);_0x5131b9(null);})['catch'](_0x5131b9(null));};}for(var e in events){if(events[_0xf1fa('0xc')](e)){var event=events[e];ChatInteraction['hook'](e,emitEvent(event));}}module['exports']=ChatInteractionEvents;