2933af379acad51b3f6bb37c1f28752a6c349759
[motion2.git] / server / config / triggers / index.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
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.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x6032=['AfterCreate','changed','closed','substatus','AfterUpdate','User','find','name','fullname','email','internal','default','length','hasOwnProperty','model','callback','condition','util','../../mysqldb','jayson/promise','../logger','triggers','client','http','afterCreate','newinteraction','Chat','ChatInteraction','afterUpdate','ChatMessage','newmessage','ChatOfflineMessage','Sms','SmsInteraction','closedinteraction','SmsMessage','Whatsapp','WhatsappInteraction','Fax','FaxInteraction','FaxMessage','MailInteraction','Mail','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','info','Trigger,\x20%s','code','error','get','channel','motionChannel','event','direction','then','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','query','Sequelize','QueryTypes','SELECT','contact','UserId','interface','format','SIP/%s','agent','incomingmessage','catch','AfterCreateMessage','resolve'];(function(_0x240292,_0x171ae7){var _0xb27306=function(_0x4638ea){while(--_0x4638ea){_0x240292['push'](_0x240292['shift']());}};_0xb27306(++_0x171ae7);}(_0x6032,0x192));var _0x2603=function(_0x571dbf,_0x6c2de3){_0x571dbf=_0x571dbf-0x0;var _0x197b73=_0x6032[_0x571dbf];return _0x197b73;};'use strict';var util=require(_0x2603('0x0'));var db=require(_0x2603('0x1'))['db'];var jayson=require(_0x2603('0x2'));var logger=require(_0x2603('0x3'))(_0x2603('0x4'));var client=jayson[_0x2603('0x5')][_0x2603('0x6')]({'port':0x232a});var triggers=[{'channel':'Chat','model':'ChatInteraction','event':_0x2603('0x7'),'condition':_0x2603('0x8'),'callback':afterCreate},{'channel':_0x2603('0x9'),'model':_0x2603('0xa'),'event':_0x2603('0xb'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Chat','model':_0x2603('0xc'),'event':_0x2603('0x7'),'condition':_0x2603('0xd'),'callback':afterCreateMessage},{'channel':_0x2603('0x9'),'model':_0x2603('0xe'),'event':'afterCreate','condition':_0x2603('0xd'),'callback':afterCreateOfflineMessage},{'channel':_0x2603('0xf'),'model':_0x2603('0x10'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x2603('0xf'),'model':_0x2603('0x10'),'event':'afterUpdate','condition':_0x2603('0x11'),'callback':afterUpdate},{'channel':_0x2603('0xf'),'model':_0x2603('0x12'),'event':'afterCreate','condition':_0x2603('0xd'),'callback':afterCreateMessage},{'channel':_0x2603('0x13'),'model':'WhatsappInteraction','event':_0x2603('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x2603('0x13'),'model':_0x2603('0x14'),'event':_0x2603('0xb'),'condition':_0x2603('0x11'),'callback':afterUpdate},{'channel':'Whatsapp','model':'WhatsappMessage','event':_0x2603('0x7'),'condition':_0x2603('0xd'),'callback':afterCreateMessage},{'channel':_0x2603('0x15'),'model':_0x2603('0x16'),'event':_0x2603('0x7'),'condition':_0x2603('0x8'),'callback':afterCreate},{'channel':'Fax','model':_0x2603('0x16'),'event':_0x2603('0xb'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Fax','model':_0x2603('0x17'),'event':_0x2603('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Mail','model':_0x2603('0x18'),'event':_0x2603('0x7'),'condition':_0x2603('0x8'),'callback':afterCreate},{'channel':_0x2603('0x19'),'model':_0x2603('0x18'),'event':'afterUpdate','condition':_0x2603('0x11'),'callback':afterUpdate},{'channel':_0x2603('0x19'),'model':_0x2603('0x1a'),'event':_0x2603('0x7'),'condition':_0x2603('0xd'),'callback':afterCreateMessage},{'channel':_0x2603('0x1b'),'model':_0x2603('0x1c'),'event':_0x2603('0x7'),'condition':_0x2603('0x8'),'callback':afterCreate},{'channel':_0x2603('0x1b'),'model':'OpenchannelInteraction','event':_0x2603('0xb'),'condition':_0x2603('0x11'),'callback':afterUpdate},{'channel':_0x2603('0x1b'),'model':_0x2603('0x1d'),'event':_0x2603('0x7'),'condition':_0x2603('0xd'),'callback':afterCreateMessage}];function request(_0x526d9e){return client[_0x2603('0x1e')](_0x2603('0x1f'),_0x526d9e)['then'](function(_0x1e57bf){logger[_0x2603('0x20')](_0x2603('0x21'),_0x2603('0x1f'),_0x1e57bf);if(_0x1e57bf['error']){if(_0x1e57bf['error'][_0x2603('0x22')]===0x1f4){logger[_0x2603('0x23')]('Trigger,\x20%s',_0x2603('0x1f'),_0x1e57bf[_0x2603('0x23')]);}}})['catch'](function(_0x24b56f){logger['error'](_0x2603('0x21'),'EventManager',_0x24b56f);});}function afterCreateMessage(_0x2cfd9a){return function(_0x4f8546){_0x4f8546=_0x4f8546[_0x2603('0x24')]({'plain':!![]});_0x4f8546[_0x2603('0x25')]=_0x2cfd9a;_0x4f8546[_0x2603('0x26')]=_0x2cfd9a;_0x4f8546[_0x2603('0x27')]=_0x4f8546[_0x2603('0x28')];Promise['resolve']()[_0x2603('0x29')](function(){if(typeof _0x4f8546['ContactId']===_0x2603('0x2a'))return null;var _0x194019=_0x2603('0x2b')+_0x4f8546[_0x2603('0x2c')];return db[_0x2603('0x2d')][_0x2603('0x2e')](_0x194019,{'type':db[_0x2603('0x2f')][_0x2603('0x30')][_0x2603('0x31')],'raw':!![]});})['then'](function(_0x5574d1){if(_0x5574d1){_0x4f8546[_0x2603('0x32')]=_0x5574d1[0x0];}if(typeof _0x4f8546[_0x2603('0x33')]===_0x2603('0x2a'))return;return getAgent(_0x4f8546[_0x2603('0x33')]);})['then'](function(_0x4b1725){if(_0x4b1725){_0x4f8546[_0x2603('0x34')]=util[_0x2603('0x35')](_0x2603('0x36'),_0x4b1725['name']);_0x4f8546[_0x2603('0x37')]=_0x4b1725;_0x4f8546[_0x2603('0x25')]=_0x2cfd9a;return request({'event':_0x2603('0x38'),'message':_0x4f8546});}else{return request({'event':'outgoingmessage','message':_0x4f8546});}})[_0x2603('0x39')](function(_0x13d7ac){logger[_0x2603('0x23')](_0x2603('0x21'),_0x2603('0x3a'),_0x13d7ac);});};}function afterCreateOfflineMessage(_0x19b348){return function(_0x42cc71){_0x42cc71=_0x42cc71[_0x2603('0x24')]({'plain':!![]});_0x42cc71['channel']=_0x19b348;_0x42cc71[_0x2603('0x26')]=_0x19b348;_0x42cc71['event']='offlineMessage';return request({'event':_0x42cc71[_0x2603('0x27')],'message':_0x42cc71});};}function afterCreate(_0x3820cb,_0x201c02){return function(_0x4d89af){_0x4d89af=_0x4d89af['get']({'plain':!![]});_0x4d89af['channel']=_0x3820cb;_0x4d89af['motionChannel']=_0x3820cb;_0x4d89af[_0x2603('0x27')]='opened';Promise[_0x2603('0x3b')]()['then'](function(){var _0x1c8c42=_0x2603('0x2b')+_0x4d89af['ContactId'];return db[_0x2603('0x2d')][_0x2603('0x2e')](_0x1c8c42,{'type':db[_0x2603('0x2f')][_0x2603('0x30')]['SELECT'],'raw':!![]});})[_0x2603('0x29')](function(_0x1c5531){if(_0x1c5531){_0x4d89af[_0x2603('0x32')]=_0x1c5531[0x0];}if(typeof _0x4d89af[_0x2603('0x33')]===_0x2603('0x2a'))return;return getAgent(_0x4d89af[_0x2603('0x33')]);})[_0x2603('0x29')](function(_0x26be9e){if(_0x26be9e){_0x4d89af['interface']=util[_0x2603('0x35')]('SIP/%s',_0x26be9e['name']);_0x4d89af[_0x2603('0x37')]=_0x26be9e;}return request({'event':_0x201c02,'message':_0x4d89af});})[_0x2603('0x39')](function(_0x3701a3){logger['error']('Trigger,\x20%s',_0x2603('0x3c'),_0x3701a3);});};}function afterUpdate(_0x3f31da){return function(_0x14fa85){var _0xbafe34=_0x14fa85[_0x2603('0x3d')](_0x2603('0x3e'))&&_0x14fa85[_0x2603('0x3e')];var _0xf6ed0d=_0x14fa85[_0x2603('0x3d')]('substatus');if(_0xbafe34||_0xf6ed0d){var _0x211df1=_0xbafe34?_0x2603('0x11'):_0x2603('0x3f');var _0x311164=_0x14fa85[_0x2603('0x24')]({'plain':!![]});_0x311164['channel']=_0x3f31da;_0x311164[_0x2603('0x26')]=_0x3f31da;_0x311164[_0x2603('0x27')]=_0xbafe34?_0x2603('0x3e'):'substatus';var _0x5c8840=_0x2603('0x2b')+_0x311164[_0x2603('0x2c')];return db[_0x2603('0x2d')][_0x2603('0x2e')](_0x5c8840,{'type':db[_0x2603('0x2f')][_0x2603('0x30')][_0x2603('0x31')],'raw':!![]})[_0x2603('0x29')](function(_0x88f01c){if(_0x88f01c){_0x311164[_0x2603('0x32')]=_0x88f01c[0x0];}if(typeof _0x311164[_0x2603('0x33')]==='undefined')return;return getAgent(_0x311164[_0x2603('0x33')]);})[_0x2603('0x29')](function(_0x257532){if(_0x257532){_0x311164[_0x2603('0x34')]=util[_0x2603('0x35')](_0x2603('0x36'),_0x257532['name']);_0x311164[_0x2603('0x37')]=_0x257532;}return request({'event':_0x211df1,'message':_0x311164});})['catch'](function(_0x34e2c9){logger['error'](_0x2603('0x21'),_0x2603('0x40'),_0x34e2c9);});}};}function getAgent(_0x2d6a88){return db[_0x2603('0x41')][_0x2603('0x42')]({'where':{'id':_0x2d6a88},'attributes':['id',_0x2603('0x43'),_0x2603('0x44'),_0x2603('0x45'),_0x2603('0x46')],'raw':!![]})[_0x2603('0x29')](function(_0x5afdef){return _0x5afdef;});}exports[_0x2603('0x47')]=function(){for(var _0xf05c8e=0x0;_0xf05c8e<triggers[_0x2603('0x48')];_0xf05c8e+=0x1){if(db[_0x2603('0x49')](triggers[_0xf05c8e][_0x2603('0x4a')])){db[triggers[_0xf05c8e][_0x2603('0x4a')]]['hook'](triggers[_0xf05c8e][_0x2603('0x27')],triggers[_0xf05c8e][_0x2603('0x4b')](triggers[_0xf05c8e][_0x2603('0x25')]['toLowerCase'](),triggers[_0xf05c8e][_0x2603('0x4c')]));}}};