Built motion from commit 3c2ce842.|2.6.31
[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 _0x8e1d=['ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','Sequelize','SELECT','then','contact','UserId','interface','format','SIP/%s','agent','incomingmessage','outgoingmessage','catch','AfterCreateMessage','event','offlineMessage','opened','resolve','name','AfterCreate','closed','changed','substatus','sequelize','QueryTypes','AfterUpdate','User','find','fullname','email','internal','default','length','hook','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','triggers','client','http','Chat','afterCreate','newinteraction','ChatInteraction','afterUpdate','closedinteraction','ChatMessage','ChatOfflineMessage','newmessage','SmsInteraction','Sms','SmsMessage','Whatsapp','WhatsappInteraction','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','EventManager','error','code','Trigger,\x20%s','get','channel','motionChannel','direction'];(function(_0x1cdbf6,_0x2edcc6){var _0xb5c0d9=function(_0x4d842a){while(--_0x4d842a){_0x1cdbf6['push'](_0x1cdbf6['shift']());}};_0xb5c0d9(++_0x2edcc6);}(_0x8e1d,0x76));var _0xd8e1=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x8e1d[_0x14add3];return _0x4a174f;};'use strict';var util=require(_0xd8e1('0x0'));var db=require(_0xd8e1('0x1'))['db'];var jayson=require(_0xd8e1('0x2'));var logger=require(_0xd8e1('0x3'))(_0xd8e1('0x4'));var client=jayson[_0xd8e1('0x5')][_0xd8e1('0x6')]({'port':0x232a});var triggers=[{'channel':_0xd8e1('0x7'),'model':'ChatInteraction','event':_0xd8e1('0x8'),'condition':_0xd8e1('0x9'),'callback':afterCreate},{'channel':_0xd8e1('0x7'),'model':_0xd8e1('0xa'),'event':_0xd8e1('0xb'),'condition':_0xd8e1('0xc'),'callback':afterUpdate},{'channel':'Chat','model':_0xd8e1('0xd'),'event':_0xd8e1('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Chat','model':_0xd8e1('0xe'),'event':_0xd8e1('0x8'),'condition':_0xd8e1('0xf'),'callback':afterCreateOfflineMessage},{'channel':'Sms','model':_0xd8e1('0x10'),'event':_0xd8e1('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xd8e1('0x11'),'model':_0xd8e1('0x10'),'event':_0xd8e1('0xb'),'condition':_0xd8e1('0xc'),'callback':afterUpdate},{'channel':'Sms','model':_0xd8e1('0x12'),'event':_0xd8e1('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xd8e1('0x13'),'model':_0xd8e1('0x14'),'event':'afterCreate','condition':_0xd8e1('0x9'),'callback':afterCreate},{'channel':_0xd8e1('0x13'),'model':_0xd8e1('0x14'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0xd8e1('0x13'),'model':'WhatsappMessage','event':_0xd8e1('0x8'),'condition':_0xd8e1('0xf'),'callback':afterCreateMessage},{'channel':_0xd8e1('0x15'),'model':_0xd8e1('0x16'),'event':_0xd8e1('0x8'),'condition':_0xd8e1('0x9'),'callback':afterCreate},{'channel':_0xd8e1('0x15'),'model':_0xd8e1('0x16'),'event':_0xd8e1('0xb'),'condition':_0xd8e1('0xc'),'callback':afterUpdate},{'channel':_0xd8e1('0x15'),'model':_0xd8e1('0x17'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0xd8e1('0x18'),'model':_0xd8e1('0x19'),'event':_0xd8e1('0x8'),'condition':_0xd8e1('0x9'),'callback':afterCreate},{'channel':_0xd8e1('0x18'),'model':_0xd8e1('0x19'),'event':_0xd8e1('0xb'),'condition':_0xd8e1('0xc'),'callback':afterUpdate},{'channel':_0xd8e1('0x18'),'model':_0xd8e1('0x1a'),'event':_0xd8e1('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xd8e1('0x1b'),'model':'OpenchannelInteraction','event':_0xd8e1('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xd8e1('0x1b'),'model':_0xd8e1('0x1c'),'event':'afterUpdate','condition':_0xd8e1('0xc'),'callback':afterUpdate},{'channel':'Openchannel','model':_0xd8e1('0x1d'),'event':_0xd8e1('0x8'),'condition':_0xd8e1('0xf'),'callback':afterCreateMessage}];function request(_0x593aea){return client['request'](_0xd8e1('0x1e'),_0x593aea)['then'](function(_0x205f85){logger['info']('Trigger,\x20%s','EventManager',_0x205f85);if(_0x205f85['error']){if(_0x205f85[_0xd8e1('0x1f')][_0xd8e1('0x20')]===0x1f4){logger['error'](_0xd8e1('0x21'),_0xd8e1('0x1e'),_0x205f85[_0xd8e1('0x1f')]);}}})['catch'](function(_0x564859){logger['error']('Trigger,\x20%s',_0xd8e1('0x1e'),_0x564859);});}function afterCreateMessage(_0x11cf46){return function(_0x1b4dfe){_0x1b4dfe=_0x1b4dfe[_0xd8e1('0x22')]({'plain':!![]});_0x1b4dfe[_0xd8e1('0x23')]=_0x11cf46;_0x1b4dfe[_0xd8e1('0x24')]=_0x11cf46;_0x1b4dfe['event']=_0x1b4dfe[_0xd8e1('0x25')];Promise['resolve']()['then'](function(){if(typeof _0x1b4dfe[_0xd8e1('0x26')]===_0xd8e1('0x27'))return null;var _0x347359=_0xd8e1('0x28')+_0x1b4dfe['ContactId'];return db['sequelize'][_0xd8e1('0x29')](_0x347359,{'type':db[_0xd8e1('0x2a')]['QueryTypes'][_0xd8e1('0x2b')],'raw':!![]});})[_0xd8e1('0x2c')](function(_0x43a78f){if(_0x43a78f){_0x1b4dfe[_0xd8e1('0x2d')]=_0x43a78f[0x0];}if(typeof _0x1b4dfe[_0xd8e1('0x2e')]==='undefined')return;return getAgent(_0x1b4dfe[_0xd8e1('0x2e')]);})[_0xd8e1('0x2c')](function(_0xd78792){if(_0xd78792){_0x1b4dfe[_0xd8e1('0x2f')]=util[_0xd8e1('0x30')](_0xd8e1('0x31'),_0xd78792['name']);_0x1b4dfe[_0xd8e1('0x32')]=_0xd78792;_0x1b4dfe[_0xd8e1('0x23')]=_0x11cf46;return request({'event':_0xd8e1('0x33'),'message':_0x1b4dfe});}else{return request({'event':_0xd8e1('0x34'),'message':_0x1b4dfe});}})[_0xd8e1('0x35')](function(_0x3284d7){logger['error'](_0xd8e1('0x21'),_0xd8e1('0x36'),_0x3284d7);});};}function afterCreateOfflineMessage(_0xcde568){return function(_0x19d0ca){_0x19d0ca=_0x19d0ca[_0xd8e1('0x22')]({'plain':!![]});_0x19d0ca[_0xd8e1('0x23')]=_0xcde568;_0x19d0ca[_0xd8e1('0x24')]=_0xcde568;_0x19d0ca[_0xd8e1('0x37')]=_0xd8e1('0x38');return request({'event':_0x19d0ca['event'],'message':_0x19d0ca});};}function afterCreate(_0x3f6372,_0x4f833f){return function(_0x1847a0){var _0x30d710=_0x1847a0[_0xd8e1('0x22')]({'plain':!![]});_0x30d710[_0xd8e1('0x23')]=_0x3f6372;_0x30d710[_0xd8e1('0x24')]=_0x3f6372;_0x30d710[_0xd8e1('0x37')]=_0xd8e1('0x39');Promise[_0xd8e1('0x3a')]()[_0xd8e1('0x2c')](function(){var _0x4d6725='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x30d710['ContactId'];return db['sequelize'][_0xd8e1('0x29')](_0x4d6725,{'type':db[_0xd8e1('0x2a')]['QueryTypes'][_0xd8e1('0x2b')],'raw':!![]});})[_0xd8e1('0x2c')](function(_0x1e6568){if(_0x1e6568){_0x30d710[_0xd8e1('0x2d')]=_0x1e6568[0x0];}if(_0x30d710[_0xd8e1('0x2e')]){return getAgent(_0x30d710['UserId']);}return;})['then'](function(_0x33e145){if(_0x33e145){_0x30d710[_0xd8e1('0x2f')]=util[_0xd8e1('0x30')](_0xd8e1('0x31'),_0x33e145[_0xd8e1('0x3b')]);_0x30d710[_0xd8e1('0x32')]=_0x33e145;}return request({'event':_0x4f833f,'message':_0x30d710});})[_0xd8e1('0x35')](function(_0x772ef9){logger[_0xd8e1('0x1f')](_0xd8e1('0x21'),_0xd8e1('0x3c'),_0x772ef9);});};}function afterUpdate(_0x1fc263){return function(_0x26535c){var _0x3db25b=_0x26535c['changed'](_0xd8e1('0x3d'))&&_0x26535c['closed'];var _0xe8418c=_0x26535c[_0xd8e1('0x3e')](_0xd8e1('0x3f'));if(_0x3db25b||_0xe8418c){var _0x33a72f=_0x3db25b?_0xd8e1('0xc'):_0xd8e1('0x3f');var _0x71c2f7=_0x26535c[_0xd8e1('0x22')]({'plain':!![]});_0x71c2f7['channel']=_0x1fc263;_0x71c2f7[_0xd8e1('0x24')]=_0x1fc263;_0x71c2f7['event']=_0x3db25b?'closed':'substatus';var _0x497c91=_0xd8e1('0x28')+_0x71c2f7['ContactId'];return db[_0xd8e1('0x40')][_0xd8e1('0x29')](_0x497c91,{'type':db['Sequelize'][_0xd8e1('0x41')]['SELECT'],'raw':!![]})[_0xd8e1('0x2c')](function(_0x34ba6b){if(_0x34ba6b){_0x71c2f7['contact']=_0x34ba6b[0x0];}if(typeof _0x71c2f7[_0xd8e1('0x2e')]==='undefined')return;return getAgent(_0x71c2f7['UserId']);})[_0xd8e1('0x2c')](function(_0x525dae){if(_0x525dae){_0x71c2f7['interface']=util['format'](_0xd8e1('0x31'),_0x525dae[_0xd8e1('0x3b')]);_0x71c2f7['agent']=_0x525dae;}return request({'event':_0x33a72f,'message':_0x71c2f7});})[_0xd8e1('0x35')](function(_0x5846ed){logger[_0xd8e1('0x1f')]('Trigger,\x20%s',_0xd8e1('0x42'),_0x5846ed);});}};}function getAgent(_0x411961){return db[_0xd8e1('0x43')][_0xd8e1('0x44')]({'where':{'id':_0x411961},'attributes':['id',_0xd8e1('0x3b'),_0xd8e1('0x45'),_0xd8e1('0x46'),_0xd8e1('0x47')],'raw':!![]})[_0xd8e1('0x2c')](function(_0x3f8f91){return _0x3f8f91;});}exports[_0xd8e1('0x48')]=function(){for(var _0x470f69=0x0;_0x470f69<triggers[_0xd8e1('0x49')];_0x470f69+=0x1){if(db['hasOwnProperty'](triggers[_0x470f69]['model'])){db[triggers[_0x470f69]['model']][_0xd8e1('0x4a')](triggers[_0x470f69]['event'],triggers[_0x470f69][_0xd8e1('0x4b')](triggers[_0x470f69][_0xd8e1('0x23')][_0xd8e1('0x4c')](),triggers[_0x470f69][_0xd8e1('0x4d')]));}}};