Built motion from commit f7863d46.|2.5.41
[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 _0xf75a=['query','AfterUpdate','User','find','email','internal','default','length','hasOwnProperty','model','hook','util','../../mysqldb','jayson/promise','../logger','triggers','client','http','Chat','ChatInteraction','afterCreate','afterUpdate','closedinteraction','ChatMessage','newmessage','ChatOfflineMessage','Sms','newinteraction','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','FaxInteraction','Fax','FaxMessage','MailInteraction','Mail','MailMessage','OpenchannelInteraction','Openchannel','OpenchannelMessage','EventManager','then','info','Trigger,\x20%s','error','catch','get','channel','motionChannel','event','direction','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','QueryTypes','SELECT','UserId','interface','format','SIP/%s','name','agent','outgoingmessage','AfterCreateMessage','offlineMessage','opened','resolve','Sequelize','AfterCreate','changed','closed','substatus'];(function(_0x1a50a6,_0x400207){var _0x9cd101=function(_0x4abe53){while(--_0x4abe53){_0x1a50a6['push'](_0x1a50a6['shift']());}};_0x9cd101(++_0x400207);}(_0xf75a,0x1cd));var _0xaf75=function(_0x527221,_0x3ad559){_0x527221=_0x527221-0x0;var _0xdd8990=_0xf75a[_0x527221];return _0xdd8990;};'use strict';var util=require(_0xaf75('0x0'));var db=require(_0xaf75('0x1'))['db'];var jayson=require(_0xaf75('0x2'));var logger=require(_0xaf75('0x3'))(_0xaf75('0x4'));var client=jayson[_0xaf75('0x5')][_0xaf75('0x6')]({'port':0x232a});var triggers=[{'channel':_0xaf75('0x7'),'model':_0xaf75('0x8'),'event':_0xaf75('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xaf75('0x7'),'model':'ChatInteraction','event':_0xaf75('0xa'),'condition':_0xaf75('0xb'),'callback':afterUpdate},{'channel':'Chat','model':_0xaf75('0xc'),'event':_0xaf75('0x9'),'condition':_0xaf75('0xd'),'callback':afterCreateMessage},{'channel':_0xaf75('0x7'),'model':_0xaf75('0xe'),'event':'afterCreate','condition':'newmessage','callback':afterCreateOfflineMessage},{'channel':_0xaf75('0xf'),'model':'SmsInteraction','event':_0xaf75('0x9'),'condition':_0xaf75('0x10'),'callback':afterCreate},{'channel':'Sms','model':_0xaf75('0x11'),'event':_0xaf75('0xa'),'condition':_0xaf75('0xb'),'callback':afterUpdate},{'channel':_0xaf75('0xf'),'model':_0xaf75('0x12'),'event':_0xaf75('0x9'),'condition':_0xaf75('0xd'),'callback':afterCreateMessage},{'channel':_0xaf75('0x13'),'model':_0xaf75('0x14'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0xaf75('0x13'),'model':'WhatsappInteraction','event':'afterUpdate','condition':_0xaf75('0xb'),'callback':afterUpdate},{'channel':_0xaf75('0x13'),'model':_0xaf75('0x15'),'event':_0xaf75('0x9'),'condition':_0xaf75('0xd'),'callback':afterCreateMessage},{'channel':'Fax','model':_0xaf75('0x16'),'event':_0xaf75('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':'Fax','model':_0xaf75('0x16'),'event':_0xaf75('0xa'),'condition':_0xaf75('0xb'),'callback':afterUpdate},{'channel':_0xaf75('0x17'),'model':_0xaf75('0x18'),'event':_0xaf75('0x9'),'condition':_0xaf75('0xd'),'callback':afterCreateMessage},{'channel':'Mail','model':_0xaf75('0x19'),'event':_0xaf75('0x9'),'condition':_0xaf75('0x10'),'callback':afterCreate},{'channel':_0xaf75('0x1a'),'model':_0xaf75('0x19'),'event':'afterUpdate','condition':_0xaf75('0xb'),'callback':afterUpdate},{'channel':_0xaf75('0x1a'),'model':_0xaf75('0x1b'),'event':_0xaf75('0x9'),'condition':_0xaf75('0xd'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0xaf75('0x1c'),'event':_0xaf75('0x9'),'condition':_0xaf75('0x10'),'callback':afterCreate},{'channel':_0xaf75('0x1d'),'model':_0xaf75('0x1c'),'event':_0xaf75('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xaf75('0x1d'),'model':_0xaf75('0x1e'),'event':_0xaf75('0x9'),'condition':_0xaf75('0xd'),'callback':afterCreateMessage}];function request(_0x41e6a2){return client['request'](_0xaf75('0x1f'),_0x41e6a2)[_0xaf75('0x20')](function(_0x203f3d){logger[_0xaf75('0x21')](_0xaf75('0x22'),'EventManager',_0x203f3d);if(_0x203f3d[_0xaf75('0x23')]){if(_0x203f3d[_0xaf75('0x23')]['code']===0x1f4){logger['error']('Trigger,\x20%s',_0xaf75('0x1f'),_0x203f3d[_0xaf75('0x23')]);}}})[_0xaf75('0x24')](function(_0x1ed5b7){logger['error'](_0xaf75('0x22'),_0xaf75('0x1f'),_0x1ed5b7);});}function afterCreateMessage(_0x331e3a){return function(_0x2ccf07){_0x2ccf07=_0x2ccf07[_0xaf75('0x25')]({'plain':!![]});_0x2ccf07[_0xaf75('0x26')]=_0x331e3a;_0x2ccf07[_0xaf75('0x27')]=_0x331e3a;_0x2ccf07[_0xaf75('0x28')]=_0x2ccf07[_0xaf75('0x29')];Promise['resolve']()['then'](function(){if(typeof _0x2ccf07[_0xaf75('0x2a')]===_0xaf75('0x2b'))return null;var _0x491dc1=_0xaf75('0x2c')+_0x2ccf07['ContactId'];return db[_0xaf75('0x2d')]['query'](_0x491dc1,{'type':db['Sequelize'][_0xaf75('0x2e')][_0xaf75('0x2f')],'raw':!![]});})[_0xaf75('0x20')](function(_0x178b80){if(_0x178b80){_0x2ccf07['contact']=_0x178b80[0x0];}if(typeof _0x2ccf07[_0xaf75('0x30')]==='undefined')return;return getAgent(_0x2ccf07['UserId']);})['then'](function(_0x4dc798){if(_0x4dc798){_0x2ccf07[_0xaf75('0x31')]=util[_0xaf75('0x32')](_0xaf75('0x33'),_0x4dc798[_0xaf75('0x34')]);_0x2ccf07[_0xaf75('0x35')]=_0x4dc798;_0x2ccf07[_0xaf75('0x26')]=_0x331e3a;return request({'event':'incomingmessage','message':_0x2ccf07});}else{return request({'event':_0xaf75('0x36'),'message':_0x2ccf07});}})[_0xaf75('0x24')](function(_0x20be39){logger[_0xaf75('0x23')]('Trigger,\x20%s',_0xaf75('0x37'),_0x20be39);});};}function afterCreateOfflineMessage(_0x3a7371){return function(_0x4f52b1){_0x4f52b1=_0x4f52b1['get']({'plain':!![]});_0x4f52b1[_0xaf75('0x26')]=_0x3a7371;_0x4f52b1[_0xaf75('0x27')]=_0x3a7371;_0x4f52b1[_0xaf75('0x28')]=_0xaf75('0x38');return request({'event':_0x4f52b1[_0xaf75('0x28')],'message':_0x4f52b1});};}function afterCreate(_0xf7e467,_0x516588){return function(_0x2ed66b){_0x2ed66b=_0x2ed66b[_0xaf75('0x25')]({'plain':!![]});_0x2ed66b[_0xaf75('0x26')]=_0xf7e467;_0x2ed66b[_0xaf75('0x27')]=_0xf7e467;_0x2ed66b[_0xaf75('0x28')]=_0xaf75('0x39');Promise[_0xaf75('0x3a')]()[_0xaf75('0x20')](function(){var _0x3ccad8='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2ed66b[_0xaf75('0x2a')];return db[_0xaf75('0x2d')]['query'](_0x3ccad8,{'type':db[_0xaf75('0x3b')][_0xaf75('0x2e')][_0xaf75('0x2f')],'raw':!![]});})[_0xaf75('0x20')](function(_0xd818e9){if(_0xd818e9){_0x2ed66b['contact']=_0xd818e9[0x0];}if(typeof _0x2ed66b['UserId']===_0xaf75('0x2b'))return;return getAgent(_0x2ed66b[_0xaf75('0x30')]);})[_0xaf75('0x20')](function(_0x2d533e){if(_0x2d533e){_0x2ed66b['interface']=util[_0xaf75('0x32')]('SIP/%s',_0x2d533e[_0xaf75('0x34')]);_0x2ed66b[_0xaf75('0x35')]=_0x2d533e;}return request({'event':_0x516588,'message':_0x2ed66b});})[_0xaf75('0x24')](function(_0xbb38ea){logger['error'](_0xaf75('0x22'),_0xaf75('0x3c'),_0xbb38ea);});};}function afterUpdate(_0x4ae8af){return function(_0x556682){var _0x2d9c7c=_0x556682[_0xaf75('0x3d')](_0xaf75('0x3e'))&&_0x556682[_0xaf75('0x3e')];var _0x2aef4c=_0x556682[_0xaf75('0x3d')]('substatus');if(_0x2d9c7c||_0x2aef4c){var _0x77a646=_0x2d9c7c?'closedinteraction':_0xaf75('0x3f');var _0x21ebf1=_0x556682['get']({'plain':!![]});_0x21ebf1[_0xaf75('0x26')]=_0x4ae8af;_0x21ebf1[_0xaf75('0x27')]=_0x4ae8af;_0x21ebf1[_0xaf75('0x28')]=_0x2d9c7c?_0xaf75('0x3e'):_0xaf75('0x3f');var _0x2dd12e=_0xaf75('0x2c')+_0x21ebf1['ContactId'];return db[_0xaf75('0x2d')][_0xaf75('0x40')](_0x2dd12e,{'type':db[_0xaf75('0x3b')][_0xaf75('0x2e')][_0xaf75('0x2f')],'raw':!![]})['then'](function(_0x38857c){if(_0x38857c){_0x21ebf1['contact']=_0x38857c[0x0];}if(typeof _0x21ebf1['UserId']==='undefined')return;return getAgent(_0x21ebf1['UserId']);})[_0xaf75('0x20')](function(_0x480a26){if(_0x480a26){_0x21ebf1['interface']=util['format'](_0xaf75('0x33'),_0x480a26[_0xaf75('0x34')]);_0x21ebf1[_0xaf75('0x35')]=_0x480a26;}return request({'event':_0x77a646,'message':_0x21ebf1});})[_0xaf75('0x24')](function(_0x43bc4e){logger[_0xaf75('0x23')](_0xaf75('0x22'),_0xaf75('0x41'),_0x43bc4e);});}};}function getAgent(_0x8de7a){return db[_0xaf75('0x42')][_0xaf75('0x43')]({'where':{'id':_0x8de7a},'attributes':['id',_0xaf75('0x34'),'fullname',_0xaf75('0x44'),_0xaf75('0x45')],'raw':!![]})[_0xaf75('0x20')](function(_0xe1677){return _0xe1677;});}exports[_0xaf75('0x46')]=function(){for(var _0x3ae068=0x0;_0x3ae068<triggers[_0xaf75('0x47')];_0x3ae068+=0x1){if(db[_0xaf75('0x48')](triggers[_0x3ae068][_0xaf75('0x49')])){db[triggers[_0x3ae068]['model']][_0xaf75('0x4a')](triggers[_0x3ae068][_0xaf75('0x28')],triggers[_0x3ae068]['callback'](triggers[_0x3ae068][_0xaf75('0x26')]['toLowerCase'](),triggers[_0x3ae068]['condition']));}}};