7a3b1ca5f66543b63645d613458bc0c5b4bcac8c
[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 _0x2fef=['hasOwnProperty','model','hook','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','client','http','Chat','newinteraction','ChatInteraction','afterUpdate','ChatMessage','afterCreate','newmessage','ChatOfflineMessage','Sms','SmsInteraction','closedinteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','OpenchannelInteraction','Openchannel','then','error','Trigger,\x20%s','EventManager','get','channel','motionChannel','direction','resolve','ContactId','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','QueryTypes','SELECT','undefined','interface','SIP/%s','name','agent','incomingmessage','AfterCreateMessage','offlineMessage','opened','contact','UserId','format','catch','changed','closed','substatus','event','find','fullname','email','internal'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0x2fef,0x122));var _0xf2fe=function(_0xc6be3a,_0x540e05){_0xc6be3a=_0xc6be3a-0x0;var _0x56a310=_0x2fef[_0xc6be3a];return _0x56a310;};'use strict';var util=require(_0xf2fe('0x0'));var db=require(_0xf2fe('0x1'))['db'];var jayson=require(_0xf2fe('0x2'));var logger=require(_0xf2fe('0x3'))('triggers');var client=jayson[_0xf2fe('0x4')][_0xf2fe('0x5')]({'port':0x232a});var triggers=[{'channel':_0xf2fe('0x6'),'model':'ChatInteraction','event':'afterCreate','condition':_0xf2fe('0x7'),'callback':afterCreate},{'channel':'Chat','model':_0xf2fe('0x8'),'event':_0xf2fe('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Chat','model':_0xf2fe('0xa'),'event':_0xf2fe('0xb'),'condition':_0xf2fe('0xc'),'callback':afterCreateMessage},{'channel':_0xf2fe('0x6'),'model':_0xf2fe('0xd'),'event':_0xf2fe('0xb'),'condition':_0xf2fe('0xc'),'callback':afterCreateOfflineMessage},{'channel':_0xf2fe('0xe'),'model':_0xf2fe('0xf'),'event':_0xf2fe('0xb'),'condition':_0xf2fe('0x7'),'callback':afterCreate},{'channel':_0xf2fe('0xe'),'model':_0xf2fe('0xf'),'event':_0xf2fe('0x9'),'condition':_0xf2fe('0x10'),'callback':afterUpdate},{'channel':_0xf2fe('0xe'),'model':_0xf2fe('0x11'),'event':'afterCreate','condition':_0xf2fe('0xc'),'callback':afterCreateMessage},{'channel':_0xf2fe('0x12'),'model':_0xf2fe('0x13'),'event':_0xf2fe('0xb'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xf2fe('0x12'),'model':_0xf2fe('0x13'),'event':'afterUpdate','condition':_0xf2fe('0x10'),'callback':afterUpdate},{'channel':_0xf2fe('0x12'),'model':_0xf2fe('0x14'),'event':'afterCreate','condition':_0xf2fe('0xc'),'callback':afterCreateMessage},{'channel':_0xf2fe('0x15'),'model':_0xf2fe('0x16'),'event':_0xf2fe('0xb'),'condition':_0xf2fe('0x7'),'callback':afterCreate},{'channel':_0xf2fe('0x15'),'model':_0xf2fe('0x16'),'event':_0xf2fe('0x9'),'condition':_0xf2fe('0x10'),'callback':afterUpdate},{'channel':_0xf2fe('0x15'),'model':_0xf2fe('0x17'),'event':_0xf2fe('0xb'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xf2fe('0x18'),'model':_0xf2fe('0x19'),'event':_0xf2fe('0xb'),'condition':_0xf2fe('0x7'),'callback':afterCreate},{'channel':_0xf2fe('0x18'),'model':_0xf2fe('0x19'),'event':_0xf2fe('0x9'),'condition':_0xf2fe('0x10'),'callback':afterUpdate},{'channel':'Mail','model':'MailMessage','event':'afterCreate','condition':_0xf2fe('0xc'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0xf2fe('0x1a'),'event':_0xf2fe('0xb'),'condition':_0xf2fe('0x7'),'callback':afterCreate},{'channel':_0xf2fe('0x1b'),'model':_0xf2fe('0x1a'),'event':_0xf2fe('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xf2fe('0x1b'),'model':'OpenchannelMessage','event':'afterCreate','condition':_0xf2fe('0xc'),'callback':afterCreateMessage}];function request(_0x2d385f){return client['request']('EventManager',_0x2d385f)[_0xf2fe('0x1c')](function(_0x4982d3){logger['info']('Trigger,\x20%s','EventManager',_0x4982d3);if(_0x4982d3['error']){if(_0x4982d3['error']['code']===0x1f4){logger[_0xf2fe('0x1d')](_0xf2fe('0x1e'),_0xf2fe('0x1f'),_0x4982d3[_0xf2fe('0x1d')]);}}})['catch'](function(_0x8ff50a){logger[_0xf2fe('0x1d')](_0xf2fe('0x1e'),_0xf2fe('0x1f'),_0x8ff50a);});}function afterCreateMessage(_0x2ace88){return function(_0x2fb81f){_0x2fb81f=_0x2fb81f[_0xf2fe('0x20')]({'plain':!![]});_0x2fb81f[_0xf2fe('0x21')]=_0x2ace88;_0x2fb81f[_0xf2fe('0x22')]=_0x2ace88;_0x2fb81f['event']=_0x2fb81f[_0xf2fe('0x23')];Promise[_0xf2fe('0x24')]()[_0xf2fe('0x1c')](function(){if(typeof _0x2fb81f[_0xf2fe('0x25')]==='undefined')return null;var _0x1bd0cd=_0xf2fe('0x26')+_0x2fb81f[_0xf2fe('0x25')];return db[_0xf2fe('0x27')][_0xf2fe('0x28')](_0x1bd0cd,{'type':db[_0xf2fe('0x29')][_0xf2fe('0x2a')][_0xf2fe('0x2b')],'raw':!![]});})['then'](function(_0x42a527){if(_0x42a527){_0x2fb81f['contact']=_0x42a527[0x0];}if(typeof _0x2fb81f['UserId']===_0xf2fe('0x2c'))return;return getAgent(_0x2fb81f['UserId']);})[_0xf2fe('0x1c')](function(_0x58cb6c){if(_0x58cb6c){_0x2fb81f[_0xf2fe('0x2d')]=util['format'](_0xf2fe('0x2e'),_0x58cb6c[_0xf2fe('0x2f')]);_0x2fb81f[_0xf2fe('0x30')]=_0x58cb6c;_0x2fb81f[_0xf2fe('0x21')]=_0x2ace88;return request({'event':_0xf2fe('0x31'),'message':_0x2fb81f});}else{return request({'event':'outgoingmessage','message':_0x2fb81f});}})['catch'](function(_0x1612f8){logger[_0xf2fe('0x1d')](_0xf2fe('0x1e'),_0xf2fe('0x32'),_0x1612f8);});};}function afterCreateOfflineMessage(_0x480bd9){return function(_0x336e23){_0x336e23=_0x336e23[_0xf2fe('0x20')]({'plain':!![]});_0x336e23[_0xf2fe('0x21')]=_0x480bd9;_0x336e23['motionChannel']=_0x480bd9;_0x336e23['event']=_0xf2fe('0x33');return request({'event':_0x336e23['event'],'message':_0x336e23});};}function afterCreate(_0x2e625b,_0x21678e){return function(_0x4d4a2b){_0x4d4a2b=_0x4d4a2b[_0xf2fe('0x20')]({'plain':!![]});_0x4d4a2b[_0xf2fe('0x21')]=_0x2e625b;_0x4d4a2b[_0xf2fe('0x22')]=_0x2e625b;_0x4d4a2b['event']=_0xf2fe('0x34');Promise['resolve']()['then'](function(){var _0x33614b=_0xf2fe('0x26')+_0x4d4a2b['ContactId'];return db[_0xf2fe('0x27')][_0xf2fe('0x28')](_0x33614b,{'type':db[_0xf2fe('0x29')][_0xf2fe('0x2a')][_0xf2fe('0x2b')],'raw':!![]});})[_0xf2fe('0x1c')](function(_0x5b847a){if(_0x5b847a){_0x4d4a2b[_0xf2fe('0x35')]=_0x5b847a[0x0];}if(typeof _0x4d4a2b[_0xf2fe('0x36')]===_0xf2fe('0x2c'))return;return getAgent(_0x4d4a2b[_0xf2fe('0x36')]);})['then'](function(_0x4314aa){if(_0x4314aa){_0x4d4a2b['interface']=util[_0xf2fe('0x37')](_0xf2fe('0x2e'),_0x4314aa[_0xf2fe('0x2f')]);_0x4d4a2b[_0xf2fe('0x30')]=_0x4314aa;}return request({'event':_0x21678e,'message':_0x4d4a2b});})[_0xf2fe('0x38')](function(_0x39928b){logger[_0xf2fe('0x1d')](_0xf2fe('0x1e'),'AfterCreate',_0x39928b);});};}function afterUpdate(_0x5d5e53){return function(_0xd8d161){var _0x3b45a1=_0xd8d161[_0xf2fe('0x39')](_0xf2fe('0x3a'))&&_0xd8d161[_0xf2fe('0x3a')];var _0x1bac37=_0xd8d161[_0xf2fe('0x39')](_0xf2fe('0x3b'));if(_0x3b45a1||_0x1bac37){var _0x2a7106=_0x3b45a1?_0xf2fe('0x10'):_0xf2fe('0x3b');var _0x2d4c5f=_0xd8d161[_0xf2fe('0x20')]({'plain':!![]});_0x2d4c5f[_0xf2fe('0x21')]=_0x5d5e53;_0x2d4c5f['motionChannel']=_0x5d5e53;_0x2d4c5f[_0xf2fe('0x3c')]=_0x3b45a1?'closed':_0xf2fe('0x3b');var _0x9e3d10='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2d4c5f[_0xf2fe('0x25')];return db[_0xf2fe('0x27')]['query'](_0x9e3d10,{'type':db[_0xf2fe('0x29')][_0xf2fe('0x2a')]['SELECT'],'raw':!![]})['then'](function(_0x3c269c){if(_0x3c269c){_0x2d4c5f['contact']=_0x3c269c[0x0];}if(typeof _0x2d4c5f[_0xf2fe('0x36')]===_0xf2fe('0x2c'))return;return getAgent(_0x2d4c5f['UserId']);})[_0xf2fe('0x1c')](function(_0x48fa53){if(_0x48fa53){_0x2d4c5f['interface']=util[_0xf2fe('0x37')](_0xf2fe('0x2e'),_0x48fa53[_0xf2fe('0x2f')]);_0x2d4c5f[_0xf2fe('0x30')]=_0x48fa53;}return request({'event':_0x2a7106,'message':_0x2d4c5f});})[_0xf2fe('0x38')](function(_0xf3eec0){logger['error'](_0xf2fe('0x1e'),'AfterUpdate',_0xf3eec0);});}};}function getAgent(_0x561a56){return db['User'][_0xf2fe('0x3d')]({'where':{'id':_0x561a56},'attributes':['id',_0xf2fe('0x2f'),_0xf2fe('0x3e'),_0xf2fe('0x3f'),_0xf2fe('0x40')],'raw':!![]})['then'](function(_0xdd55ac){return _0xdd55ac;});}exports['default']=function(){for(var _0x3763ea=0x0;_0x3763ea<triggers['length'];_0x3763ea+=0x1){if(db[_0xf2fe('0x41')](triggers[_0x3763ea]['model'])){db[triggers[_0x3763ea][_0xf2fe('0x42')]][_0xf2fe('0x43')](triggers[_0x3763ea]['event'],triggers[_0x3763ea][_0xf2fe('0x44')](triggers[_0x3763ea]['channel'][_0xf2fe('0x45')](),triggers[_0x3763ea][_0xf2fe('0x46')]));}}};