Built motion from commit 497d3d92.|2.5.43
[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 _0x8e97=['UserId','format','agent','channel','incomingmessage','outgoingmessage','catch','AfterCreateMessage','opened','Sequelize','interface','SIP/%s','name','AfterCreate','closed','changed','substatus','query','QueryTypes','AfterUpdate','find','fullname','default','hasOwnProperty','model','hook','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','OpenchannelInteraction','Openchannel','OpenchannelMessage','request','EventManager','then','Trigger,\x20%s','error','code','get','motionChannel','event','direction','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','SELECT','contact'];(function(_0x38d825,_0x357fd6){var _0xc39a03=function(_0x10e2de){while(--_0x10e2de){_0x38d825['push'](_0x38d825['shift']());}};_0xc39a03(++_0x357fd6);}(_0x8e97,0x18f));var _0x78e9=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x8e97[_0x4a9fb1];return _0x348672;};'use strict';var util=require(_0x78e9('0x0'));var db=require(_0x78e9('0x1'))['db'];var jayson=require(_0x78e9('0x2'));var logger=require(_0x78e9('0x3'))('triggers');var client=jayson['client'][_0x78e9('0x4')]({'port':0x232a});var triggers=[{'channel':_0x78e9('0x5'),'model':_0x78e9('0x6'),'event':_0x78e9('0x7'),'condition':_0x78e9('0x8'),'callback':afterCreate},{'channel':_0x78e9('0x5'),'model':_0x78e9('0x6'),'event':_0x78e9('0x9'),'condition':_0x78e9('0xa'),'callback':afterUpdate},{'channel':_0x78e9('0x5'),'model':_0x78e9('0xb'),'event':_0x78e9('0x7'),'condition':_0x78e9('0xc'),'callback':afterCreateMessage},{'channel':_0x78e9('0x5'),'model':'ChatOfflineMessage','event':_0x78e9('0x7'),'condition':_0x78e9('0xc'),'callback':afterCreateOfflineMessage},{'channel':_0x78e9('0xd'),'model':'SmsInteraction','event':_0x78e9('0x7'),'condition':_0x78e9('0x8'),'callback':afterCreate},{'channel':_0x78e9('0xd'),'model':_0x78e9('0xe'),'event':'afterUpdate','condition':_0x78e9('0xa'),'callback':afterUpdate},{'channel':_0x78e9('0xd'),'model':_0x78e9('0xf'),'event':_0x78e9('0x7'),'condition':_0x78e9('0xc'),'callback':afterCreateMessage},{'channel':_0x78e9('0x10'),'model':'WhatsappInteraction','event':_0x78e9('0x7'),'condition':_0x78e9('0x8'),'callback':afterCreate},{'channel':'Whatsapp','model':_0x78e9('0x11'),'event':'afterUpdate','condition':_0x78e9('0xa'),'callback':afterUpdate},{'channel':_0x78e9('0x10'),'model':_0x78e9('0x12'),'event':_0x78e9('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x78e9('0x13'),'model':_0x78e9('0x14'),'event':_0x78e9('0x7'),'condition':_0x78e9('0x8'),'callback':afterCreate},{'channel':_0x78e9('0x13'),'model':'FaxInteraction','event':_0x78e9('0x9'),'condition':_0x78e9('0xa'),'callback':afterUpdate},{'channel':_0x78e9('0x13'),'model':_0x78e9('0x15'),'event':_0x78e9('0x7'),'condition':_0x78e9('0xc'),'callback':afterCreateMessage},{'channel':_0x78e9('0x16'),'model':_0x78e9('0x17'),'event':'afterCreate','condition':_0x78e9('0x8'),'callback':afterCreate},{'channel':_0x78e9('0x16'),'model':_0x78e9('0x17'),'event':_0x78e9('0x9'),'condition':_0x78e9('0xa'),'callback':afterUpdate},{'channel':_0x78e9('0x16'),'model':_0x78e9('0x18'),'event':'afterCreate','condition':_0x78e9('0xc'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0x78e9('0x19'),'event':_0x78e9('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':'Openchannel','model':_0x78e9('0x19'),'event':'afterUpdate','condition':_0x78e9('0xa'),'callback':afterUpdate},{'channel':_0x78e9('0x1a'),'model':_0x78e9('0x1b'),'event':_0x78e9('0x7'),'condition':_0x78e9('0xc'),'callback':afterCreateMessage}];function request(_0x38d5c9){return client[_0x78e9('0x1c')](_0x78e9('0x1d'),_0x38d5c9)[_0x78e9('0x1e')](function(_0x2b9115){logger['info'](_0x78e9('0x1f'),_0x78e9('0x1d'),_0x2b9115);if(_0x2b9115['error']){if(_0x2b9115[_0x78e9('0x20')][_0x78e9('0x21')]===0x1f4){logger[_0x78e9('0x20')](_0x78e9('0x1f'),'EventManager',_0x2b9115[_0x78e9('0x20')]);}}})['catch'](function(_0x46da12){logger[_0x78e9('0x20')](_0x78e9('0x1f'),_0x78e9('0x1d'),_0x46da12);});}function afterCreateMessage(_0x4a2c51){return function(_0x1b5750){_0x1b5750=_0x1b5750[_0x78e9('0x22')]({'plain':!![]});_0x1b5750['channel']=_0x4a2c51;_0x1b5750[_0x78e9('0x23')]=_0x4a2c51;_0x1b5750[_0x78e9('0x24')]=_0x1b5750[_0x78e9('0x25')];Promise[_0x78e9('0x26')]()[_0x78e9('0x1e')](function(){if(typeof _0x1b5750[_0x78e9('0x27')]===_0x78e9('0x28'))return null;var _0x455b41=_0x78e9('0x29')+_0x1b5750[_0x78e9('0x27')];return db[_0x78e9('0x2a')]['query'](_0x455b41,{'type':db['Sequelize']['QueryTypes'][_0x78e9('0x2b')],'raw':!![]});})[_0x78e9('0x1e')](function(_0xd88195){if(_0xd88195){_0x1b5750[_0x78e9('0x2c')]=_0xd88195[0x0];}if(typeof _0x1b5750['UserId']==='undefined')return;return getAgent(_0x1b5750[_0x78e9('0x2d')]);})[_0x78e9('0x1e')](function(_0x37004b){if(_0x37004b){_0x1b5750['interface']=util[_0x78e9('0x2e')]('SIP/%s',_0x37004b['name']);_0x1b5750[_0x78e9('0x2f')]=_0x37004b;_0x1b5750[_0x78e9('0x30')]=_0x4a2c51;return request({'event':_0x78e9('0x31'),'message':_0x1b5750});}else{return request({'event':_0x78e9('0x32'),'message':_0x1b5750});}})[_0x78e9('0x33')](function(_0xeac73d){logger[_0x78e9('0x20')]('Trigger,\x20%s',_0x78e9('0x34'),_0xeac73d);});};}function afterCreateOfflineMessage(_0x321873){return function(_0x3de5a9){_0x3de5a9=_0x3de5a9['get']({'plain':!![]});_0x3de5a9[_0x78e9('0x30')]=_0x321873;_0x3de5a9[_0x78e9('0x23')]=_0x321873;_0x3de5a9['event']='offlineMessage';return request({'event':_0x3de5a9[_0x78e9('0x24')],'message':_0x3de5a9});};}function afterCreate(_0x175e8b,_0x11e450){return function(_0x2c6bf2){_0x2c6bf2=_0x2c6bf2[_0x78e9('0x22')]({'plain':!![]});_0x2c6bf2[_0x78e9('0x30')]=_0x175e8b;_0x2c6bf2[_0x78e9('0x23')]=_0x175e8b;_0x2c6bf2[_0x78e9('0x24')]=_0x78e9('0x35');Promise[_0x78e9('0x26')]()[_0x78e9('0x1e')](function(){var _0x3e271e=_0x78e9('0x29')+_0x2c6bf2[_0x78e9('0x27')];return db['sequelize']['query'](_0x3e271e,{'type':db[_0x78e9('0x36')]['QueryTypes'][_0x78e9('0x2b')],'raw':!![]});})[_0x78e9('0x1e')](function(_0x393795){if(_0x393795){_0x2c6bf2[_0x78e9('0x2c')]=_0x393795[0x0];}if(typeof _0x2c6bf2['UserId']===_0x78e9('0x28'))return;return getAgent(_0x2c6bf2[_0x78e9('0x2d')]);})[_0x78e9('0x1e')](function(_0x2a3d33){if(_0x2a3d33){_0x2c6bf2[_0x78e9('0x37')]=util[_0x78e9('0x2e')](_0x78e9('0x38'),_0x2a3d33[_0x78e9('0x39')]);_0x2c6bf2['agent']=_0x2a3d33;}return request({'event':_0x11e450,'message':_0x2c6bf2});})[_0x78e9('0x33')](function(_0x535d7a){logger[_0x78e9('0x20')](_0x78e9('0x1f'),_0x78e9('0x3a'),_0x535d7a);});};}function afterUpdate(_0xcc5141){return function(_0x357388){var _0x4bc338=_0x357388['changed'](_0x78e9('0x3b'))&&_0x357388[_0x78e9('0x3b')];var _0x447a5c=_0x357388[_0x78e9('0x3c')](_0x78e9('0x3d'));if(_0x4bc338||_0x447a5c){var _0x1c6ef7=_0x4bc338?_0x78e9('0xa'):'substatus';var _0x4198b4=_0x357388[_0x78e9('0x22')]({'plain':!![]});_0x4198b4[_0x78e9('0x30')]=_0xcc5141;_0x4198b4[_0x78e9('0x23')]=_0xcc5141;_0x4198b4[_0x78e9('0x24')]=_0x4bc338?_0x78e9('0x3b'):_0x78e9('0x3d');var _0x284275=_0x78e9('0x29')+_0x4198b4[_0x78e9('0x27')];return db[_0x78e9('0x2a')][_0x78e9('0x3e')](_0x284275,{'type':db[_0x78e9('0x36')][_0x78e9('0x3f')][_0x78e9('0x2b')],'raw':!![]})[_0x78e9('0x1e')](function(_0x38b41e){if(_0x38b41e){_0x4198b4[_0x78e9('0x2c')]=_0x38b41e[0x0];}if(typeof _0x4198b4['UserId']===_0x78e9('0x28'))return;return getAgent(_0x4198b4['UserId']);})[_0x78e9('0x1e')](function(_0x4b2ed8){if(_0x4b2ed8){_0x4198b4[_0x78e9('0x37')]=util[_0x78e9('0x2e')](_0x78e9('0x38'),_0x4b2ed8[_0x78e9('0x39')]);_0x4198b4['agent']=_0x4b2ed8;}return request({'event':_0x1c6ef7,'message':_0x4198b4});})['catch'](function(_0x437603){logger[_0x78e9('0x20')](_0x78e9('0x1f'),_0x78e9('0x40'),_0x437603);});}};}function getAgent(_0x519954){return db['User'][_0x78e9('0x41')]({'where':{'id':_0x519954},'attributes':['id',_0x78e9('0x39'),_0x78e9('0x42'),'email','internal'],'raw':!![]})['then'](function(_0x1fb5c6){return _0x1fb5c6;});}exports[_0x78e9('0x43')]=function(){for(var _0x30cd66=0x0;_0x30cd66<triggers['length'];_0x30cd66+=0x1){if(db[_0x78e9('0x44')](triggers[_0x30cd66][_0x78e9('0x45')])){db[triggers[_0x30cd66]['model']][_0x78e9('0x46')](triggers[_0x30cd66][_0x78e9('0x24')],triggers[_0x30cd66][_0x78e9('0x47')](triggers[_0x30cd66][_0x78e9('0x30')][_0x78e9('0x48')](),triggers[_0x30cd66][_0x78e9('0x49')]));}}};