Built motion from commit 092f8824.|2.5.49
[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 _0x3756=['Whatsapp','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','Openchannel','OpenchannelInteraction','request','EventManager','then','info','Trigger,\x20%s','error','code','catch','get','channel','motionChannel','event','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','QueryTypes','contact','UserId','interface','format','name','agent','incomingmessage','outgoingmessage','SELECT','AfterCreate','changed','closed','substatus','SIP/%s','AfterUpdate','find','fullname','default','hasOwnProperty','model','hook','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','triggers','client','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','ChatOfflineMessage','Sms','SmsInteraction','SmsMessage','newmessage'];(function(_0x460264,_0x51ddff){var _0x2d75a1=function(_0x5a02a8){while(--_0x5a02a8){_0x460264['push'](_0x460264['shift']());}};_0x2d75a1(++_0x51ddff);}(_0x3756,0x192));var _0x6375=function(_0x9983fd,_0x11450c){_0x9983fd=_0x9983fd-0x0;var _0xb7b336=_0x3756[_0x9983fd];return _0xb7b336;};'use strict';var util=require(_0x6375('0x0'));var db=require(_0x6375('0x1'))['db'];var jayson=require(_0x6375('0x2'));var logger=require(_0x6375('0x3'))(_0x6375('0x4'));var client=jayson[_0x6375('0x5')]['http']({'port':0x232a});var triggers=[{'channel':_0x6375('0x6'),'model':_0x6375('0x7'),'event':_0x6375('0x8'),'condition':_0x6375('0x9'),'callback':afterCreate},{'channel':_0x6375('0x6'),'model':'ChatInteraction','event':_0x6375('0xa'),'condition':_0x6375('0xb'),'callback':afterUpdate},{'channel':'Chat','model':_0x6375('0xc'),'event':_0x6375('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x6375('0x6'),'model':_0x6375('0xd'),'event':_0x6375('0x8'),'condition':'newmessage','callback':afterCreateOfflineMessage},{'channel':_0x6375('0xe'),'model':_0x6375('0xf'),'event':_0x6375('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x6375('0xe'),'model':_0x6375('0xf'),'event':_0x6375('0xa'),'condition':_0x6375('0xb'),'callback':afterUpdate},{'channel':_0x6375('0xe'),'model':_0x6375('0x10'),'event':'afterCreate','condition':_0x6375('0x11'),'callback':afterCreateMessage},{'channel':_0x6375('0x12'),'model':'WhatsappInteraction','event':'afterCreate','condition':_0x6375('0x9'),'callback':afterCreate},{'channel':_0x6375('0x12'),'model':'WhatsappInteraction','event':_0x6375('0xa'),'condition':_0x6375('0xb'),'callback':afterUpdate},{'channel':_0x6375('0x12'),'model':_0x6375('0x13'),'event':_0x6375('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x6375('0x14'),'model':'FaxInteraction','event':_0x6375('0x8'),'condition':_0x6375('0x9'),'callback':afterCreate},{'channel':_0x6375('0x14'),'model':_0x6375('0x15'),'event':'afterUpdate','condition':_0x6375('0xb'),'callback':afterUpdate},{'channel':_0x6375('0x14'),'model':_0x6375('0x16'),'event':_0x6375('0x8'),'condition':_0x6375('0x11'),'callback':afterCreateMessage},{'channel':_0x6375('0x17'),'model':_0x6375('0x18'),'event':_0x6375('0x8'),'condition':_0x6375('0x9'),'callback':afterCreate},{'channel':_0x6375('0x17'),'model':_0x6375('0x18'),'event':_0x6375('0xa'),'condition':_0x6375('0xb'),'callback':afterUpdate},{'channel':_0x6375('0x17'),'model':'MailMessage','event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0x6375('0x19'),'model':_0x6375('0x1a'),'event':_0x6375('0x8'),'condition':_0x6375('0x9'),'callback':afterCreate},{'channel':'Openchannel','model':_0x6375('0x1a'),'event':_0x6375('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x6375('0x19'),'model':'OpenchannelMessage','event':_0x6375('0x8'),'condition':'newmessage','callback':afterCreateMessage}];function request(_0x74c2b0){return client[_0x6375('0x1b')](_0x6375('0x1c'),_0x74c2b0)[_0x6375('0x1d')](function(_0x235e0c){logger[_0x6375('0x1e')](_0x6375('0x1f'),_0x6375('0x1c'),_0x235e0c);if(_0x235e0c[_0x6375('0x20')]){if(_0x235e0c['error'][_0x6375('0x21')]===0x1f4){logger['error'](_0x6375('0x1f'),_0x6375('0x1c'),_0x235e0c[_0x6375('0x20')]);}}})[_0x6375('0x22')](function(_0x5f3eb1){logger[_0x6375('0x20')](_0x6375('0x1f'),_0x6375('0x1c'),_0x5f3eb1);});}function afterCreateMessage(_0x19a66e){return function(_0x197335){_0x197335=_0x197335[_0x6375('0x23')]({'plain':!![]});_0x197335[_0x6375('0x24')]=_0x19a66e;_0x197335[_0x6375('0x25')]=_0x19a66e;_0x197335[_0x6375('0x26')]=_0x197335['direction'];Promise[_0x6375('0x27')]()[_0x6375('0x1d')](function(){if(typeof _0x197335[_0x6375('0x28')]===_0x6375('0x29'))return null;var _0x570a4c=_0x6375('0x2a')+_0x197335[_0x6375('0x28')];return db[_0x6375('0x2b')]['query'](_0x570a4c,{'type':db[_0x6375('0x2c')][_0x6375('0x2d')]['SELECT'],'raw':!![]});})[_0x6375('0x1d')](function(_0x46961c){if(_0x46961c){_0x197335[_0x6375('0x2e')]=_0x46961c[0x0];}if(typeof _0x197335[_0x6375('0x2f')]==='undefined')return;return getAgent(_0x197335[_0x6375('0x2f')]);})['then'](function(_0x515220){if(_0x515220){_0x197335[_0x6375('0x30')]=util[_0x6375('0x31')]('SIP/%s',_0x515220[_0x6375('0x32')]);_0x197335[_0x6375('0x33')]=_0x515220;_0x197335[_0x6375('0x24')]=_0x19a66e;return request({'event':_0x6375('0x34'),'message':_0x197335});}else{return request({'event':_0x6375('0x35'),'message':_0x197335});}})[_0x6375('0x22')](function(_0x566215){logger['error']('Trigger,\x20%s','AfterCreateMessage',_0x566215);});};}function afterCreateOfflineMessage(_0x56950e){return function(_0x369626){_0x369626=_0x369626['get']({'plain':!![]});_0x369626[_0x6375('0x24')]=_0x56950e;_0x369626['motionChannel']=_0x56950e;_0x369626[_0x6375('0x26')]='offlineMessage';return request({'event':_0x369626[_0x6375('0x26')],'message':_0x369626});};}function afterCreate(_0x111ecc,_0x559d89){return function(_0x4b02a3){_0x4b02a3=_0x4b02a3[_0x6375('0x23')]({'plain':!![]});_0x4b02a3[_0x6375('0x24')]=_0x111ecc;_0x4b02a3['motionChannel']=_0x111ecc;_0x4b02a3[_0x6375('0x26')]='opened';Promise[_0x6375('0x27')]()[_0x6375('0x1d')](function(){var _0x5e8050='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4b02a3['ContactId'];return db[_0x6375('0x2b')]['query'](_0x5e8050,{'type':db['Sequelize'][_0x6375('0x2d')][_0x6375('0x36')],'raw':!![]});})[_0x6375('0x1d')](function(_0x580441){if(_0x580441){_0x4b02a3[_0x6375('0x2e')]=_0x580441[0x0];}if(typeof _0x4b02a3[_0x6375('0x2f')]==='undefined')return;return getAgent(_0x4b02a3[_0x6375('0x2f')]);})['then'](function(_0x376df8){if(_0x376df8){_0x4b02a3['interface']=util['format']('SIP/%s',_0x376df8['name']);_0x4b02a3[_0x6375('0x33')]=_0x376df8;}return request({'event':_0x559d89,'message':_0x4b02a3});})[_0x6375('0x22')](function(_0x51d767){logger['error'](_0x6375('0x1f'),_0x6375('0x37'),_0x51d767);});};}function afterUpdate(_0x5f3450){return function(_0x2e690d){var _0x2e9aea=_0x2e690d[_0x6375('0x38')](_0x6375('0x39'))&&_0x2e690d[_0x6375('0x39')];var _0x47c4ce=_0x2e690d['changed'](_0x6375('0x3a'));if(_0x2e9aea||_0x47c4ce){var _0x1ef593=_0x2e9aea?'closedinteraction':_0x6375('0x3a');var _0x51e1aa=_0x2e690d['get']({'plain':!![]});_0x51e1aa['channel']=_0x5f3450;_0x51e1aa['motionChannel']=_0x5f3450;_0x51e1aa[_0x6375('0x26')]=_0x2e9aea?_0x6375('0x39'):'substatus';var _0x1d8190=_0x6375('0x2a')+_0x51e1aa[_0x6375('0x28')];return db[_0x6375('0x2b')]['query'](_0x1d8190,{'type':db[_0x6375('0x2c')][_0x6375('0x2d')]['SELECT'],'raw':!![]})[_0x6375('0x1d')](function(_0x5ec858){if(_0x5ec858){_0x51e1aa['contact']=_0x5ec858[0x0];}if(typeof _0x51e1aa[_0x6375('0x2f')]===_0x6375('0x29'))return;return getAgent(_0x51e1aa[_0x6375('0x2f')]);})[_0x6375('0x1d')](function(_0x52891a){if(_0x52891a){_0x51e1aa['interface']=util['format'](_0x6375('0x3b'),_0x52891a[_0x6375('0x32')]);_0x51e1aa['agent']=_0x52891a;}return request({'event':_0x1ef593,'message':_0x51e1aa});})[_0x6375('0x22')](function(_0x3b2f9f){logger[_0x6375('0x20')](_0x6375('0x1f'),_0x6375('0x3c'),_0x3b2f9f);});}};}function getAgent(_0x25ba1e){return db['User'][_0x6375('0x3d')]({'where':{'id':_0x25ba1e},'attributes':['id','name',_0x6375('0x3e'),'email','internal'],'raw':!![]})[_0x6375('0x1d')](function(_0x1c631d){return _0x1c631d;});}exports[_0x6375('0x3f')]=function(){for(var _0x555869=0x0;_0x555869<triggers['length'];_0x555869+=0x1){if(db[_0x6375('0x40')](triggers[_0x555869][_0x6375('0x41')])){db[triggers[_0x555869][_0x6375('0x41')]][_0x6375('0x42')](triggers[_0x555869][_0x6375('0x26')],triggers[_0x555869][_0x6375('0x43')](triggers[_0x555869][_0x6375('0x24')][_0x6375('0x44')](),triggers[_0x555869][_0x6375('0x45')]));}}};