7caecec405b598257b8c9d12bffc18399472f4ca
[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 _0xf26b=['SELECT','contact','SIP/%s','agent','AfterCreate','changed','closed','substatus','sequelize','AfterUpdate','User','find','fullname','email','internal','length','hasOwnProperty','model','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','triggers','client','http','ChatInteraction','newinteraction','Chat','afterUpdate','newmessage','ChatOfflineMessage','afterCreate','Sms','SmsInteraction','closedinteraction','SmsMessage','WhatsappInteraction','Whatsapp','WhatsappMessage','Fax','FaxInteraction','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','info','Trigger,\x20%s','EventManager','error','code','get','channel','motionChannel','event','direction','resolve','then','ContactId','undefined','query','Sequelize','QueryTypes','UserId','interface','format','name','incomingmessage','catch','opened','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'];(function(_0x1ffc22,_0x288864){var _0x103432=function(_0x1070b4){while(--_0x1070b4){_0x1ffc22['push'](_0x1ffc22['shift']());}};_0x103432(++_0x288864);}(_0xf26b,0x191));var _0xbf26=function(_0x1d17b3,_0x4bd652){_0x1d17b3=_0x1d17b3-0x0;var _0x5160a5=_0xf26b[_0x1d17b3];return _0x5160a5;};'use strict';var util=require(_0xbf26('0x0'));var db=require(_0xbf26('0x1'))['db'];var jayson=require(_0xbf26('0x2'));var logger=require(_0xbf26('0x3'))(_0xbf26('0x4'));var client=jayson[_0xbf26('0x5')][_0xbf26('0x6')]({'port':0x232a});var triggers=[{'channel':'Chat','model':_0xbf26('0x7'),'event':'afterCreate','condition':_0xbf26('0x8'),'callback':afterCreate},{'channel':_0xbf26('0x9'),'model':_0xbf26('0x7'),'event':_0xbf26('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xbf26('0x9'),'model':'ChatMessage','event':'afterCreate','condition':_0xbf26('0xb'),'callback':afterCreateMessage},{'channel':_0xbf26('0x9'),'model':_0xbf26('0xc'),'event':_0xbf26('0xd'),'condition':_0xbf26('0xb'),'callback':afterCreateOfflineMessage},{'channel':_0xbf26('0xe'),'model':_0xbf26('0xf'),'event':_0xbf26('0xd'),'condition':_0xbf26('0x8'),'callback':afterCreate},{'channel':_0xbf26('0xe'),'model':_0xbf26('0xf'),'event':'afterUpdate','condition':_0xbf26('0x10'),'callback':afterUpdate},{'channel':'Sms','model':_0xbf26('0x11'),'event':_0xbf26('0xd'),'condition':_0xbf26('0xb'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':_0xbf26('0x12'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0xbf26('0x13'),'model':_0xbf26('0x12'),'event':_0xbf26('0xa'),'condition':_0xbf26('0x10'),'callback':afterUpdate},{'channel':'Whatsapp','model':_0xbf26('0x14'),'event':_0xbf26('0xd'),'condition':_0xbf26('0xb'),'callback':afterCreateMessage},{'channel':_0xbf26('0x15'),'model':'FaxInteraction','event':_0xbf26('0xd'),'condition':_0xbf26('0x8'),'callback':afterCreate},{'channel':_0xbf26('0x15'),'model':_0xbf26('0x16'),'event':_0xbf26('0xa'),'condition':_0xbf26('0x10'),'callback':afterUpdate},{'channel':_0xbf26('0x15'),'model':'FaxMessage','event':'afterCreate','condition':_0xbf26('0xb'),'callback':afterCreateMessage},{'channel':_0xbf26('0x17'),'model':_0xbf26('0x18'),'event':_0xbf26('0xd'),'condition':_0xbf26('0x8'),'callback':afterCreate},{'channel':'Mail','model':_0xbf26('0x18'),'event':_0xbf26('0xa'),'condition':_0xbf26('0x10'),'callback':afterUpdate},{'channel':_0xbf26('0x17'),'model':_0xbf26('0x19'),'event':_0xbf26('0xd'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xbf26('0x1a'),'model':'OpenchannelInteraction','event':_0xbf26('0xd'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xbf26('0x1a'),'model':_0xbf26('0x1b'),'event':_0xbf26('0xa'),'condition':_0xbf26('0x10'),'callback':afterUpdate},{'channel':_0xbf26('0x1a'),'model':_0xbf26('0x1c'),'event':_0xbf26('0xd'),'condition':'newmessage','callback':afterCreateMessage}];function request(_0x5345ae){return client[_0xbf26('0x1d')]('EventManager',_0x5345ae)['then'](function(_0x4e3be5){logger[_0xbf26('0x1e')](_0xbf26('0x1f'),_0xbf26('0x20'),_0x4e3be5);if(_0x4e3be5[_0xbf26('0x21')]){if(_0x4e3be5[_0xbf26('0x21')][_0xbf26('0x22')]===0x1f4){logger[_0xbf26('0x21')](_0xbf26('0x1f'),_0xbf26('0x20'),_0x4e3be5[_0xbf26('0x21')]);}}})['catch'](function(_0x5a38f6){logger['error'](_0xbf26('0x1f'),'EventManager',_0x5a38f6);});}function afterCreateMessage(_0x1ed1e){return function(_0x329732){_0x329732=_0x329732[_0xbf26('0x23')]({'plain':!![]});_0x329732[_0xbf26('0x24')]=_0x1ed1e;_0x329732[_0xbf26('0x25')]=_0x1ed1e;_0x329732[_0xbf26('0x26')]=_0x329732[_0xbf26('0x27')];Promise[_0xbf26('0x28')]()[_0xbf26('0x29')](function(){if(typeof _0x329732[_0xbf26('0x2a')]===_0xbf26('0x2b'))return null;var _0x3cb23b='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x329732[_0xbf26('0x2a')];return db['sequelize'][_0xbf26('0x2c')](_0x3cb23b,{'type':db[_0xbf26('0x2d')][_0xbf26('0x2e')]['SELECT'],'raw':!![]});})['then'](function(_0x4ecaf6){if(_0x4ecaf6){_0x329732['contact']=_0x4ecaf6[0x0];}if(typeof _0x329732[_0xbf26('0x2f')]===_0xbf26('0x2b'))return;return getAgent(_0x329732[_0xbf26('0x2f')]);})[_0xbf26('0x29')](function(_0x19e942){if(_0x19e942){_0x329732[_0xbf26('0x30')]=util[_0xbf26('0x31')]('SIP/%s',_0x19e942[_0xbf26('0x32')]);_0x329732['agent']=_0x19e942;_0x329732[_0xbf26('0x24')]=_0x1ed1e;return request({'event':_0xbf26('0x33'),'message':_0x329732});}else{return request({'event':'outgoingmessage','message':_0x329732});}})[_0xbf26('0x34')](function(_0x33db28){logger['error'](_0xbf26('0x1f'),'AfterCreateMessage',_0x33db28);});};}function afterCreateOfflineMessage(_0x17f008){return function(_0x2653ff){_0x2653ff=_0x2653ff['get']({'plain':!![]});_0x2653ff[_0xbf26('0x24')]=_0x17f008;_0x2653ff['motionChannel']=_0x17f008;_0x2653ff[_0xbf26('0x26')]='offlineMessage';return request({'event':_0x2653ff[_0xbf26('0x26')],'message':_0x2653ff});};}function afterCreate(_0x4a3758,_0x246b78){return function(_0x1960c7){_0x1960c7=_0x1960c7[_0xbf26('0x23')]({'plain':!![]});_0x1960c7[_0xbf26('0x24')]=_0x4a3758;_0x1960c7[_0xbf26('0x25')]=_0x4a3758;_0x1960c7[_0xbf26('0x26')]=_0xbf26('0x35');Promise['resolve']()[_0xbf26('0x29')](function(){var _0x159728=_0xbf26('0x36')+_0x1960c7[_0xbf26('0x2a')];return db['sequelize'][_0xbf26('0x2c')](_0x159728,{'type':db[_0xbf26('0x2d')][_0xbf26('0x2e')][_0xbf26('0x37')],'raw':!![]});})[_0xbf26('0x29')](function(_0x3d46ce){if(_0x3d46ce){_0x1960c7[_0xbf26('0x38')]=_0x3d46ce[0x0];}if(typeof _0x1960c7['UserId']===_0xbf26('0x2b'))return;return getAgent(_0x1960c7[_0xbf26('0x2f')]);})['then'](function(_0x49779f){if(_0x49779f){_0x1960c7['interface']=util['format'](_0xbf26('0x39'),_0x49779f[_0xbf26('0x32')]);_0x1960c7[_0xbf26('0x3a')]=_0x49779f;}return request({'event':_0x246b78,'message':_0x1960c7});})[_0xbf26('0x34')](function(_0xdba674){logger[_0xbf26('0x21')](_0xbf26('0x1f'),_0xbf26('0x3b'),_0xdba674);});};}function afterUpdate(_0x37fb83){return function(_0x404d14){var _0x37b614=_0x404d14[_0xbf26('0x3c')]('closed')&&_0x404d14[_0xbf26('0x3d')];var _0x378373=_0x404d14[_0xbf26('0x3c')](_0xbf26('0x3e'));if(_0x37b614||_0x378373){var _0x535294=_0x37b614?_0xbf26('0x10'):_0xbf26('0x3e');var _0x1ac019=_0x404d14[_0xbf26('0x23')]({'plain':!![]});_0x1ac019['channel']=_0x37fb83;_0x1ac019[_0xbf26('0x25')]=_0x37fb83;_0x1ac019[_0xbf26('0x26')]=_0x37b614?_0xbf26('0x3d'):_0xbf26('0x3e');var _0x59b100=_0xbf26('0x36')+_0x1ac019['ContactId'];return db[_0xbf26('0x3f')][_0xbf26('0x2c')](_0x59b100,{'type':db[_0xbf26('0x2d')][_0xbf26('0x2e')]['SELECT'],'raw':!![]})['then'](function(_0x2fdbf2){if(_0x2fdbf2){_0x1ac019['contact']=_0x2fdbf2[0x0];}if(typeof _0x1ac019['UserId']===_0xbf26('0x2b'))return;return getAgent(_0x1ac019[_0xbf26('0x2f')]);})[_0xbf26('0x29')](function(_0x42afc2){if(_0x42afc2){_0x1ac019[_0xbf26('0x30')]=util['format']('SIP/%s',_0x42afc2[_0xbf26('0x32')]);_0x1ac019[_0xbf26('0x3a')]=_0x42afc2;}return request({'event':_0x535294,'message':_0x1ac019});})[_0xbf26('0x34')](function(_0x2327e0){logger[_0xbf26('0x21')](_0xbf26('0x1f'),_0xbf26('0x40'),_0x2327e0);});}};}function getAgent(_0x1f588c){return db[_0xbf26('0x41')][_0xbf26('0x42')]({'where':{'id':_0x1f588c},'attributes':['id',_0xbf26('0x32'),_0xbf26('0x43'),_0xbf26('0x44'),_0xbf26('0x45')],'raw':!![]})['then'](function(_0x53aec0){return _0x53aec0;});}exports['default']=function(){for(var _0x462c58=0x0;_0x462c58<triggers[_0xbf26('0x46')];_0x462c58+=0x1){if(db[_0xbf26('0x47')](triggers[_0x462c58][_0xbf26('0x48')])){db[triggers[_0x462c58]['model']]['hook'](triggers[_0x462c58][_0xbf26('0x26')],triggers[_0x462c58][_0xbf26('0x49')](triggers[_0x462c58][_0xbf26('0x24')][_0xbf26('0x4a')](),triggers[_0x462c58][_0xbf26('0x4b')]));}}};