96fcc59912bebf31e5f82574cc38ac03a2d1d786
[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 _0xe1f1=['EventManager','code','error','Trigger,\x20%s','catch','get','motionChannel','event','direction','resolve','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','query','Sequelize','QueryTypes','then','contact','UserId','interface','SIP/%s','name','channel','incomingmessage','outgoingmessage','offlineMessage','opened','format','AfterCreate','changed','closed','substatus','agent','AfterUpdate','User','find','fullname','internal','default','length','hasOwnProperty','model','callback','util','../../mysqldb','jayson/promise','../logger','triggers','client','http','Chat','ChatInteraction','afterCreate','afterUpdate','closedinteraction','ChatMessage','newmessage','newinteraction','Sms','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction'];(function(_0xc2fc17,_0x2b78be){var _0x5b4fe0=function(_0x5f1e00){while(--_0x5f1e00){_0xc2fc17['push'](_0xc2fc17['shift']());}};_0x5b4fe0(++_0x2b78be);}(_0xe1f1,0xba));var _0x1e1f=function(_0x41278a,_0x25c59c){_0x41278a=_0x41278a-0x0;var _0x188e52=_0xe1f1[_0x41278a];return _0x188e52;};'use strict';var util=require(_0x1e1f('0x0'));var db=require(_0x1e1f('0x1'))['db'];var jayson=require(_0x1e1f('0x2'));var logger=require(_0x1e1f('0x3'))(_0x1e1f('0x4'));var client=jayson[_0x1e1f('0x5')][_0x1e1f('0x6')]({'port':0x232a});var triggers=[{'channel':_0x1e1f('0x7'),'model':_0x1e1f('0x8'),'event':_0x1e1f('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x1e1f('0x7'),'model':_0x1e1f('0x8'),'event':_0x1e1f('0xa'),'condition':_0x1e1f('0xb'),'callback':afterUpdate},{'channel':'Chat','model':_0x1e1f('0xc'),'event':_0x1e1f('0x9'),'condition':_0x1e1f('0xd'),'callback':afterCreateMessage},{'channel':_0x1e1f('0x7'),'model':'ChatOfflineMessage','event':_0x1e1f('0x9'),'condition':_0x1e1f('0xd'),'callback':afterCreateOfflineMessage},{'channel':'Sms','model':'SmsInteraction','event':'afterCreate','condition':_0x1e1f('0xe'),'callback':afterCreate},{'channel':_0x1e1f('0xf'),'model':'SmsInteraction','event':_0x1e1f('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x1e1f('0xf'),'model':'SmsMessage','event':_0x1e1f('0x9'),'condition':_0x1e1f('0xd'),'callback':afterCreateMessage},{'channel':_0x1e1f('0x10'),'model':_0x1e1f('0x11'),'event':_0x1e1f('0x9'),'condition':_0x1e1f('0xe'),'callback':afterCreate},{'channel':_0x1e1f('0x10'),'model':_0x1e1f('0x11'),'event':_0x1e1f('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Whatsapp','model':_0x1e1f('0x12'),'event':_0x1e1f('0x9'),'condition':_0x1e1f('0xd'),'callback':afterCreateMessage},{'channel':_0x1e1f('0x13'),'model':_0x1e1f('0x14'),'event':_0x1e1f('0x9'),'condition':_0x1e1f('0xe'),'callback':afterCreate},{'channel':_0x1e1f('0x13'),'model':_0x1e1f('0x14'),'event':_0x1e1f('0xa'),'condition':_0x1e1f('0xb'),'callback':afterUpdate},{'channel':_0x1e1f('0x13'),'model':_0x1e1f('0x15'),'event':_0x1e1f('0x9'),'condition':_0x1e1f('0xd'),'callback':afterCreateMessage},{'channel':_0x1e1f('0x16'),'model':_0x1e1f('0x17'),'event':_0x1e1f('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x1e1f('0x16'),'model':_0x1e1f('0x17'),'event':_0x1e1f('0xa'),'condition':_0x1e1f('0xb'),'callback':afterUpdate},{'channel':_0x1e1f('0x16'),'model':_0x1e1f('0x18'),'event':'afterCreate','condition':_0x1e1f('0xd'),'callback':afterCreateMessage},{'channel':_0x1e1f('0x19'),'model':_0x1e1f('0x1a'),'event':'afterCreate','condition':_0x1e1f('0xe'),'callback':afterCreate},{'channel':'Openchannel','model':_0x1e1f('0x1a'),'event':_0x1e1f('0xa'),'condition':_0x1e1f('0xb'),'callback':afterUpdate},{'channel':_0x1e1f('0x19'),'model':'OpenchannelMessage','event':_0x1e1f('0x9'),'condition':_0x1e1f('0xd'),'callback':afterCreateMessage}];function request(_0x2b1bb0){return client['request'](_0x1e1f('0x1b'),_0x2b1bb0)['then'](function(_0x2023a5){logger['info']('Trigger,\x20%s','EventManager',_0x2023a5);if(_0x2023a5['error']){if(_0x2023a5['error'][_0x1e1f('0x1c')]===0x1f4){logger[_0x1e1f('0x1d')](_0x1e1f('0x1e'),'EventManager',_0x2023a5[_0x1e1f('0x1d')]);}}})[_0x1e1f('0x1f')](function(_0x95aef1){logger[_0x1e1f('0x1d')]('Trigger,\x20%s',_0x1e1f('0x1b'),_0x95aef1);});}function afterCreateMessage(_0x5895ee){return function(_0x2945a5){_0x2945a5=_0x2945a5[_0x1e1f('0x20')]({'plain':!![]});_0x2945a5['channel']=_0x5895ee;_0x2945a5[_0x1e1f('0x21')]=_0x5895ee;_0x2945a5[_0x1e1f('0x22')]=_0x2945a5[_0x1e1f('0x23')];Promise[_0x1e1f('0x24')]()['then'](function(){if(typeof _0x2945a5['ContactId']===_0x1e1f('0x25'))return null;var _0x4f1b06=_0x1e1f('0x26')+_0x2945a5[_0x1e1f('0x27')];return db[_0x1e1f('0x28')][_0x1e1f('0x29')](_0x4f1b06,{'type':db[_0x1e1f('0x2a')][_0x1e1f('0x2b')]['SELECT'],'raw':!![]});})[_0x1e1f('0x2c')](function(_0x569979){if(_0x569979){_0x2945a5[_0x1e1f('0x2d')]=_0x569979[0x0];}if(typeof _0x2945a5['UserId']==='undefined')return;return getAgent(_0x2945a5[_0x1e1f('0x2e')]);})[_0x1e1f('0x2c')](function(_0x2b5191){if(_0x2b5191){_0x2945a5[_0x1e1f('0x2f')]=util['format'](_0x1e1f('0x30'),_0x2b5191[_0x1e1f('0x31')]);_0x2945a5['agent']=_0x2b5191;_0x2945a5[_0x1e1f('0x32')]=_0x5895ee;return request({'event':_0x1e1f('0x33'),'message':_0x2945a5});}else{return request({'event':_0x1e1f('0x34'),'message':_0x2945a5});}})[_0x1e1f('0x1f')](function(_0x2fb4a6){logger[_0x1e1f('0x1d')](_0x1e1f('0x1e'),'AfterCreateMessage',_0x2fb4a6);});};}function afterCreateOfflineMessage(_0x2b41d3){return function(_0x2f232b){_0x2f232b=_0x2f232b[_0x1e1f('0x20')]({'plain':!![]});_0x2f232b[_0x1e1f('0x32')]=_0x2b41d3;_0x2f232b[_0x1e1f('0x21')]=_0x2b41d3;_0x2f232b['event']=_0x1e1f('0x35');return request({'event':_0x2f232b[_0x1e1f('0x22')],'message':_0x2f232b});};}function afterCreate(_0x2c47e9,_0x2b7e99){return function(_0x485dbd){_0x485dbd=_0x485dbd[_0x1e1f('0x20')]({'plain':!![]});_0x485dbd[_0x1e1f('0x32')]=_0x2c47e9;_0x485dbd[_0x1e1f('0x21')]=_0x2c47e9;_0x485dbd[_0x1e1f('0x22')]=_0x1e1f('0x36');Promise['resolve']()['then'](function(){var _0x2b983b=_0x1e1f('0x26')+_0x485dbd['ContactId'];return db[_0x1e1f('0x28')][_0x1e1f('0x29')](_0x2b983b,{'type':db[_0x1e1f('0x2a')][_0x1e1f('0x2b')]['SELECT'],'raw':!![]});})[_0x1e1f('0x2c')](function(_0x487a9d){if(_0x487a9d){_0x485dbd[_0x1e1f('0x2d')]=_0x487a9d[0x0];}if(typeof _0x485dbd[_0x1e1f('0x2e')]===_0x1e1f('0x25'))return;return getAgent(_0x485dbd[_0x1e1f('0x2e')]);})[_0x1e1f('0x2c')](function(_0x1705e8){if(_0x1705e8){_0x485dbd['interface']=util[_0x1e1f('0x37')](_0x1e1f('0x30'),_0x1705e8[_0x1e1f('0x31')]);_0x485dbd['agent']=_0x1705e8;}return request({'event':_0x2b7e99,'message':_0x485dbd});})[_0x1e1f('0x1f')](function(_0x66071f){logger[_0x1e1f('0x1d')](_0x1e1f('0x1e'),_0x1e1f('0x38'),_0x66071f);});};}function afterUpdate(_0x4c6f9d){return function(_0xbc5220){var _0x9fec49=_0xbc5220[_0x1e1f('0x39')](_0x1e1f('0x3a'))&&_0xbc5220['closed'];var _0x4ae34d=_0xbc5220[_0x1e1f('0x39')]('substatus');if(_0x9fec49||_0x4ae34d){var _0x346db0=_0x9fec49?_0x1e1f('0xb'):_0x1e1f('0x3b');var _0x59447c=_0xbc5220[_0x1e1f('0x20')]({'plain':!![]});_0x59447c[_0x1e1f('0x32')]=_0x4c6f9d;_0x59447c[_0x1e1f('0x21')]=_0x4c6f9d;_0x59447c[_0x1e1f('0x22')]=_0x9fec49?_0x1e1f('0x3a'):_0x1e1f('0x3b');var _0x2b1908=_0x1e1f('0x26')+_0x59447c[_0x1e1f('0x27')];return db[_0x1e1f('0x28')]['query'](_0x2b1908,{'type':db[_0x1e1f('0x2a')][_0x1e1f('0x2b')]['SELECT'],'raw':!![]})[_0x1e1f('0x2c')](function(_0x1ce8d7){if(_0x1ce8d7){_0x59447c['contact']=_0x1ce8d7[0x0];}if(typeof _0x59447c[_0x1e1f('0x2e')]===_0x1e1f('0x25'))return;return getAgent(_0x59447c[_0x1e1f('0x2e')]);})[_0x1e1f('0x2c')](function(_0x2e4932){if(_0x2e4932){_0x59447c[_0x1e1f('0x2f')]=util['format']('SIP/%s',_0x2e4932[_0x1e1f('0x31')]);_0x59447c[_0x1e1f('0x3c')]=_0x2e4932;}return request({'event':_0x346db0,'message':_0x59447c});})[_0x1e1f('0x1f')](function(_0x370d79){logger['error']('Trigger,\x20%s',_0x1e1f('0x3d'),_0x370d79);});}};}function getAgent(_0x236629){return db[_0x1e1f('0x3e')][_0x1e1f('0x3f')]({'where':{'id':_0x236629},'attributes':['id',_0x1e1f('0x31'),_0x1e1f('0x40'),'email',_0x1e1f('0x41')],'raw':!![]})['then'](function(_0x2c3d0f){return _0x2c3d0f;});}exports[_0x1e1f('0x42')]=function(){for(var _0x14337b=0x0;_0x14337b<triggers[_0x1e1f('0x43')];_0x14337b+=0x1){if(db[_0x1e1f('0x44')](triggers[_0x14337b]['model'])){db[triggers[_0x14337b][_0x1e1f('0x45')]]['hook'](triggers[_0x14337b][_0x1e1f('0x22')],triggers[_0x14337b][_0x1e1f('0x46')](triggers[_0x14337b][_0x1e1f('0x32')]['toLowerCase'](),triggers[_0x14337b]['condition']));}}};