89bf9fc64b0759078e0b296518a112e429f5ecab
[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 _0x134d=['WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','Trigger,\x20%s','error','code','catch','channel','motionChannel','event','direction','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','query','Sequelize','QueryTypes','SELECT','contact','User','find','UserId','email','interface','format','SIP/%s','name','AfterCreateMessage','outgoingmessage','get','opened','closed','substatus','fullname','internal','agent','default','length','hasOwnProperty','model','hook','callback','condition','util','../../mysqldb','jayson/promise','../logger','triggers','client','http','Chat','afterCreate','newinteraction','ChatInteraction','afterUpdate','newmessage','SmsInteraction','closedinteraction','Sms','SmsMessage','Whatsapp'];(function(_0x4e2367,_0x19c6d8){var _0x85e3cb=function(_0x3828cd){while(--_0x3828cd){_0x4e2367['push'](_0x4e2367['shift']());}};_0x85e3cb(++_0x19c6d8);}(_0x134d,0x112));var _0xd134=function(_0x2c4559,_0x57bb3c){_0x2c4559=_0x2c4559-0x0;var _0x1d15c5=_0x134d[_0x2c4559];return _0x1d15c5;};'use strict';var util=require(_0xd134('0x0'));var db=require(_0xd134('0x1'))['db'];var jayson=require(_0xd134('0x2'));var logger=require(_0xd134('0x3'))(_0xd134('0x4'));var client=jayson[_0xd134('0x5')][_0xd134('0x6')]({'port':0x232a});var triggers=[{'channel':_0xd134('0x7'),'model':'ChatInteraction','event':_0xd134('0x8'),'condition':_0xd134('0x9'),'callback':afterCreate},{'channel':'Chat','model':_0xd134('0xa'),'event':_0xd134('0xb'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xd134('0x7'),'model':'ChatMessage','event':_0xd134('0x8'),'condition':_0xd134('0xc'),'callback':afterCreateMessage},{'channel':'Sms','model':_0xd134('0xd'),'event':_0xd134('0x8'),'condition':_0xd134('0x9'),'callback':afterCreate},{'channel':'Sms','model':_0xd134('0xd'),'event':_0xd134('0xb'),'condition':_0xd134('0xe'),'callback':afterUpdate},{'channel':_0xd134('0xf'),'model':_0xd134('0x10'),'event':_0xd134('0x8'),'condition':_0xd134('0xc'),'callback':afterCreateMessage},{'channel':_0xd134('0x11'),'model':'WhatsappInteraction','event':_0xd134('0x8'),'condition':_0xd134('0x9'),'callback':afterCreate},{'channel':_0xd134('0x11'),'model':_0xd134('0x12'),'event':_0xd134('0xb'),'condition':_0xd134('0xe'),'callback':afterUpdate},{'channel':'Whatsapp','model':_0xd134('0x13'),'event':_0xd134('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xd134('0x14'),'model':_0xd134('0x15'),'event':_0xd134('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xd134('0x14'),'model':_0xd134('0x15'),'event':_0xd134('0xb'),'condition':_0xd134('0xe'),'callback':afterUpdate},{'channel':_0xd134('0x14'),'model':_0xd134('0x16'),'event':'afterCreate','condition':_0xd134('0xc'),'callback':afterCreateMessage},{'channel':_0xd134('0x17'),'model':_0xd134('0x18'),'event':_0xd134('0x8'),'condition':_0xd134('0x9'),'callback':afterCreate},{'channel':_0xd134('0x17'),'model':'MailInteraction','event':_0xd134('0xb'),'condition':_0xd134('0xe'),'callback':afterUpdate},{'channel':_0xd134('0x17'),'model':'MailMessage','event':_0xd134('0x8'),'condition':_0xd134('0xc'),'callback':afterCreateMessage},{'channel':_0xd134('0x19'),'model':_0xd134('0x1a'),'event':'afterCreate','condition':_0xd134('0x9'),'callback':afterCreate},{'channel':_0xd134('0x19'),'model':_0xd134('0x1a'),'event':_0xd134('0xb'),'condition':_0xd134('0xe'),'callback':afterUpdate},{'channel':_0xd134('0x19'),'model':_0xd134('0x1b'),'event':_0xd134('0x8'),'condition':_0xd134('0xc'),'callback':afterCreateMessage}];function request(_0xa2cf67){return client[_0xd134('0x1c')](_0xd134('0x1d'),_0xa2cf67)[_0xd134('0x1e')](function(_0x1a32ec){logger[_0xd134('0x1f')](_0xd134('0x20'),_0xd134('0x1d'),_0x1a32ec);if(_0x1a32ec[_0xd134('0x21')]){if(_0x1a32ec[_0xd134('0x21')][_0xd134('0x22')]===0x1f4){logger['error'](_0xd134('0x20'),'EventManager',_0x1a32ec['error']);}}})[_0xd134('0x23')](function(_0x39d3c8){logger[_0xd134('0x21')](_0xd134('0x20'),_0xd134('0x1d'),_0x39d3c8);});}function afterCreateMessage(_0x4eba16){return function(_0x3f35c2){_0x3f35c2=_0x3f35c2['get']({'plain':!![]});_0x3f35c2[_0xd134('0x24')]=_0x4eba16;_0x3f35c2[_0xd134('0x25')]=_0x4eba16;_0x3f35c2[_0xd134('0x26')]=_0x3f35c2[_0xd134('0x27')];Promise['resolve']()['then'](function(){if(typeof _0x3f35c2['ContactId']===_0xd134('0x28'))return null;var _0x133de5=_0xd134('0x29')+_0x3f35c2[_0xd134('0x2a')];return db[_0xd134('0x2b')][_0xd134('0x2c')](_0x133de5,{'type':db[_0xd134('0x2d')][_0xd134('0x2e')][_0xd134('0x2f')],'raw':!![]});})[_0xd134('0x1e')](function(_0x37a16a){if(_0x37a16a){_0x3f35c2[_0xd134('0x30')]=_0x37a16a[0x0];}if(_0x3f35c2['UserId']){return db[_0xd134('0x31')][_0xd134('0x32')]({'where':{'id':_0x3f35c2[_0xd134('0x33')]},'attributes':['id','name','fullname',_0xd134('0x34'),'internal'],'raw':!![]})[_0xd134('0x1e')](function(_0x118582){_0x3f35c2[_0xd134('0x35')]=util[_0xd134('0x36')](_0xd134('0x37'),_0x118582[_0xd134('0x38')]);_0x3f35c2[_0xd134('0x24')]=_0x4eba16;_0x3f35c2['agent']=_0x118582;return request({'event':'incomingmessage','message':_0x3f35c2});})[_0xd134('0x23')](function(_0x13adc7){logger[_0xd134('0x21')](_0xd134('0x20'),_0xd134('0x39'),_0x13adc7);});}else{return request({'event':_0xd134('0x3a'),'message':_0x3f35c2});}});};}function afterCreate(_0x1b7d97,_0x5ce1c6){return function(_0xabcbe8){_0xabcbe8=_0xabcbe8[_0xd134('0x3b')]({'plain':!![]});_0xabcbe8['channel']=_0x1b7d97;_0xabcbe8[_0xd134('0x25')]=_0x1b7d97;_0xabcbe8['event']=_0xd134('0x3c');var _0x32ec15='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0xabcbe8[_0xd134('0x2a')];return db[_0xd134('0x2b')][_0xd134('0x2c')](_0x32ec15,{'type':db[_0xd134('0x2d')][_0xd134('0x2e')][_0xd134('0x2f')],'raw':!![]})['then'](function(_0x185c26){return _0x185c26;})['then'](function(_0x366445){if(_0x366445){_0xabcbe8[_0xd134('0x30')]=_0x366445[0x0];}return request({'event':_0x5ce1c6,'message':_0xabcbe8});});};}function afterUpdate(_0x1ce1a0){return function(_0x17a873){var _0x2995c2=_0x17a873['changed'](_0xd134('0x3d'))&&_0x17a873[_0xd134('0x3d')];var _0x42f6cb=_0x17a873['changed']('substatus');if(_0x2995c2||_0x42f6cb){var _0x17fa30=_0x2995c2?_0xd134('0xe'):_0xd134('0x3e');var _0x16be0a=_0x17a873[_0xd134('0x3b')]({'plain':!![]});_0x16be0a[_0xd134('0x24')]=_0x1ce1a0;_0x16be0a[_0xd134('0x25')]=_0x1ce1a0;_0x16be0a[_0xd134('0x26')]=_0x2995c2?'closed':_0xd134('0x3e');var _0x46ad2f=_0xd134('0x29')+_0x16be0a[_0xd134('0x2a')];return db[_0xd134('0x2b')][_0xd134('0x2c')](_0x46ad2f,{'type':db['Sequelize']['QueryTypes'][_0xd134('0x2f')],'raw':!![]})[_0xd134('0x1e')](function(_0x2facc0){if(_0x2facc0){_0x16be0a['contact']=_0x2facc0[0x0];}if(_0x16be0a['UserId']){return db['User'][_0xd134('0x32')]({'where':{'id':_0x16be0a['UserId']},'attributes':['id',_0xd134('0x38'),_0xd134('0x3f'),_0xd134('0x34'),_0xd134('0x40')],'raw':!![]})['then'](function(_0x39bc05){_0x16be0a[_0xd134('0x35')]=util['format'](_0xd134('0x37'),_0x39bc05[_0xd134('0x38')]);_0x16be0a[_0xd134('0x41')]=_0x39bc05;return request({'event':_0x17fa30,'message':_0x16be0a});})[_0xd134('0x23')](function(_0x575119){logger[_0xd134('0x21')]('Trigger,\x20%s','AfterUpdate',_0x575119);});}else{return request({'event':_0x17fa30,'message':_0x16be0a});}});}};}exports[_0xd134('0x42')]=function(){for(var _0x5e9927=0x0;_0x5e9927<triggers[_0xd134('0x43')];_0x5e9927+=0x1){if(db[_0xd134('0x44')](triggers[_0x5e9927]['model'])){db[triggers[_0x5e9927][_0xd134('0x45')]][_0xd134('0x46')](triggers[_0x5e9927]['event'],triggers[_0x5e9927][_0xd134('0x47')](triggers[_0x5e9927][_0xd134('0x24')]['toLowerCase'](),triggers[_0x5e9927][_0xd134('0x48')]));}}};