Built motion from commit e1760111.|2.6.18
[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 _0xfe85=['QueryTypes','SELECT','UserId','interface','format','SIP/%s','name','agent','incomingmessage','outgoingmessage','catch','get','motionChannel','offlineMessage','opened','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','contact','changed','closed','substatus','AfterUpdate','User','fullname','internal','default','length','hasOwnProperty','model','hook','toLowerCase','condition','../../mysqldb','jayson/promise','../logger','client','http','ChatInteraction','afterCreate','newinteraction','Chat','afterUpdate','ChatMessage','newmessage','ChatOfflineMessage','SmsInteraction','closedinteraction','Sms','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','FaxInteraction','Fax','FaxMessage','Mail','MailInteraction','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','Trigger,\x20%s','code','error','channel','event','ContactId','undefined','sequelize','query','Sequelize'];(function(_0x50d77f,_0x1a76da){var _0x477ae3=function(_0x358ee2){while(--_0x358ee2){_0x50d77f['push'](_0x50d77f['shift']());}};_0x477ae3(++_0x1a76da);}(_0xfe85,0x187));var _0x5fe8=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xfe85[_0x3dd15e];return _0x231fd0;};'use strict';var util=require('util');var db=require(_0x5fe8('0x0'))['db'];var jayson=require(_0x5fe8('0x1'));var logger=require(_0x5fe8('0x2'))('triggers');var client=jayson[_0x5fe8('0x3')][_0x5fe8('0x4')]({'port':0x232a});var triggers=[{'channel':'Chat','model':_0x5fe8('0x5'),'event':_0x5fe8('0x6'),'condition':_0x5fe8('0x7'),'callback':afterCreate},{'channel':_0x5fe8('0x8'),'model':_0x5fe8('0x5'),'event':_0x5fe8('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x5fe8('0x8'),'model':_0x5fe8('0xa'),'event':_0x5fe8('0x6'),'condition':_0x5fe8('0xb'),'callback':afterCreateMessage},{'channel':_0x5fe8('0x8'),'model':_0x5fe8('0xc'),'event':_0x5fe8('0x6'),'condition':_0x5fe8('0xb'),'callback':afterCreateOfflineMessage},{'channel':'Sms','model':_0x5fe8('0xd'),'event':_0x5fe8('0x6'),'condition':_0x5fe8('0x7'),'callback':afterCreate},{'channel':'Sms','model':_0x5fe8('0xd'),'event':_0x5fe8('0x9'),'condition':_0x5fe8('0xe'),'callback':afterUpdate},{'channel':_0x5fe8('0xf'),'model':_0x5fe8('0x10'),'event':_0x5fe8('0x6'),'condition':_0x5fe8('0xb'),'callback':afterCreateMessage},{'channel':_0x5fe8('0x11'),'model':_0x5fe8('0x12'),'event':'afterCreate','condition':_0x5fe8('0x7'),'callback':afterCreate},{'channel':_0x5fe8('0x11'),'model':_0x5fe8('0x12'),'event':'afterUpdate','condition':_0x5fe8('0xe'),'callback':afterUpdate},{'channel':_0x5fe8('0x11'),'model':_0x5fe8('0x13'),'event':_0x5fe8('0x6'),'condition':_0x5fe8('0xb'),'callback':afterCreateMessage},{'channel':'Fax','model':_0x5fe8('0x14'),'event':_0x5fe8('0x6'),'condition':_0x5fe8('0x7'),'callback':afterCreate},{'channel':'Fax','model':'FaxInteraction','event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x5fe8('0x15'),'model':_0x5fe8('0x16'),'event':_0x5fe8('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x5fe8('0x17'),'model':_0x5fe8('0x18'),'event':_0x5fe8('0x6'),'condition':_0x5fe8('0x7'),'callback':afterCreate},{'channel':_0x5fe8('0x17'),'model':_0x5fe8('0x18'),'event':_0x5fe8('0x9'),'condition':_0x5fe8('0xe'),'callback':afterUpdate},{'channel':_0x5fe8('0x17'),'model':'MailMessage','event':_0x5fe8('0x6'),'condition':_0x5fe8('0xb'),'callback':afterCreateMessage},{'channel':_0x5fe8('0x19'),'model':_0x5fe8('0x1a'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':'Openchannel','model':'OpenchannelInteraction','event':_0x5fe8('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x5fe8('0x19'),'model':_0x5fe8('0x1b'),'event':_0x5fe8('0x6'),'condition':_0x5fe8('0xb'),'callback':afterCreateMessage}];function request(_0x29205d){return client[_0x5fe8('0x1c')](_0x5fe8('0x1d'),_0x29205d)[_0x5fe8('0x1e')](function(_0x5f18e9){logger['info'](_0x5fe8('0x1f'),_0x5fe8('0x1d'),_0x5f18e9);if(_0x5f18e9['error']){if(_0x5f18e9['error'][_0x5fe8('0x20')]===0x1f4){logger[_0x5fe8('0x21')](_0x5fe8('0x1f'),_0x5fe8('0x1d'),_0x5f18e9['error']);}}})['catch'](function(_0x204ccf){logger[_0x5fe8('0x21')](_0x5fe8('0x1f'),_0x5fe8('0x1d'),_0x204ccf);});}function afterCreateMessage(_0x5d3a68){return function(_0x38eed8){_0x38eed8=_0x38eed8['get']({'plain':!![]});_0x38eed8[_0x5fe8('0x22')]=_0x5d3a68;_0x38eed8['motionChannel']=_0x5d3a68;_0x38eed8[_0x5fe8('0x23')]=_0x38eed8['direction'];Promise['resolve']()[_0x5fe8('0x1e')](function(){if(typeof _0x38eed8[_0x5fe8('0x24')]===_0x5fe8('0x25'))return null;var _0x51775c='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x38eed8[_0x5fe8('0x24')];return db[_0x5fe8('0x26')][_0x5fe8('0x27')](_0x51775c,{'type':db[_0x5fe8('0x28')][_0x5fe8('0x29')][_0x5fe8('0x2a')],'raw':!![]});})['then'](function(_0x432e01){if(_0x432e01){_0x38eed8['contact']=_0x432e01[0x0];}if(typeof _0x38eed8[_0x5fe8('0x2b')]===_0x5fe8('0x25'))return;return getAgent(_0x38eed8['UserId']);})[_0x5fe8('0x1e')](function(_0x2f8e42){if(_0x2f8e42){_0x38eed8[_0x5fe8('0x2c')]=util[_0x5fe8('0x2d')](_0x5fe8('0x2e'),_0x2f8e42[_0x5fe8('0x2f')]);_0x38eed8[_0x5fe8('0x30')]=_0x2f8e42;_0x38eed8[_0x5fe8('0x22')]=_0x5d3a68;return request({'event':_0x5fe8('0x31'),'message':_0x38eed8});}else{return request({'event':_0x5fe8('0x32'),'message':_0x38eed8});}})[_0x5fe8('0x33')](function(_0x5a9bd1){logger[_0x5fe8('0x21')](_0x5fe8('0x1f'),'AfterCreateMessage',_0x5a9bd1);});};}function afterCreateOfflineMessage(_0x47966d){return function(_0x522099){_0x522099=_0x522099[_0x5fe8('0x34')]({'plain':!![]});_0x522099[_0x5fe8('0x22')]=_0x47966d;_0x522099[_0x5fe8('0x35')]=_0x47966d;_0x522099[_0x5fe8('0x23')]=_0x5fe8('0x36');return request({'event':_0x522099[_0x5fe8('0x23')],'message':_0x522099});};}function afterCreate(_0xe6ddf3,_0x50d641){return function(_0x8f4caa){_0x8f4caa=_0x8f4caa[_0x5fe8('0x34')]({'plain':!![]});_0x8f4caa[_0x5fe8('0x22')]=_0xe6ddf3;_0x8f4caa['motionChannel']=_0xe6ddf3;_0x8f4caa['event']=_0x5fe8('0x37');Promise['resolve']()['then'](function(){var _0x4ebc03=_0x5fe8('0x38')+_0x8f4caa[_0x5fe8('0x24')];return db[_0x5fe8('0x26')][_0x5fe8('0x27')](_0x4ebc03,{'type':db[_0x5fe8('0x28')][_0x5fe8('0x29')][_0x5fe8('0x2a')],'raw':!![]});})[_0x5fe8('0x1e')](function(_0x5d4702){if(_0x5d4702){_0x8f4caa[_0x5fe8('0x39')]=_0x5d4702[0x0];}if(typeof _0x8f4caa[_0x5fe8('0x2b')]===_0x5fe8('0x25'))return;return getAgent(_0x8f4caa['UserId']);})[_0x5fe8('0x1e')](function(_0x11e5c1){if(_0x11e5c1){_0x8f4caa['interface']=util[_0x5fe8('0x2d')](_0x5fe8('0x2e'),_0x11e5c1[_0x5fe8('0x2f')]);_0x8f4caa[_0x5fe8('0x30')]=_0x11e5c1;}return request({'event':_0x50d641,'message':_0x8f4caa});})[_0x5fe8('0x33')](function(_0x33f398){logger[_0x5fe8('0x21')]('Trigger,\x20%s','AfterCreate',_0x33f398);});};}function afterUpdate(_0x4e3303){return function(_0x3372e5){var _0x5740a6=_0x3372e5[_0x5fe8('0x3a')](_0x5fe8('0x3b'))&&_0x3372e5[_0x5fe8('0x3b')];var _0x3689e5=_0x3372e5[_0x5fe8('0x3a')](_0x5fe8('0x3c'));if(_0x5740a6||_0x3689e5){var _0x411bb0=_0x5740a6?_0x5fe8('0xe'):'substatus';var _0x55dfcc=_0x3372e5[_0x5fe8('0x34')]({'plain':!![]});_0x55dfcc[_0x5fe8('0x22')]=_0x4e3303;_0x55dfcc[_0x5fe8('0x35')]=_0x4e3303;_0x55dfcc[_0x5fe8('0x23')]=_0x5740a6?_0x5fe8('0x3b'):_0x5fe8('0x3c');var _0x18e9e1=_0x5fe8('0x38')+_0x55dfcc[_0x5fe8('0x24')];return db[_0x5fe8('0x26')][_0x5fe8('0x27')](_0x18e9e1,{'type':db['Sequelize']['QueryTypes'][_0x5fe8('0x2a')],'raw':!![]})['then'](function(_0x30cc82){if(_0x30cc82){_0x55dfcc[_0x5fe8('0x39')]=_0x30cc82[0x0];}if(typeof _0x55dfcc[_0x5fe8('0x2b')]===_0x5fe8('0x25'))return;return getAgent(_0x55dfcc[_0x5fe8('0x2b')]);})[_0x5fe8('0x1e')](function(_0x2f77f1){if(_0x2f77f1){_0x55dfcc['interface']=util['format']('SIP/%s',_0x2f77f1[_0x5fe8('0x2f')]);_0x55dfcc[_0x5fe8('0x30')]=_0x2f77f1;}return request({'event':_0x411bb0,'message':_0x55dfcc});})[_0x5fe8('0x33')](function(_0x398b45){logger[_0x5fe8('0x21')](_0x5fe8('0x1f'),_0x5fe8('0x3d'),_0x398b45);});}};}function getAgent(_0x35f09c){return db[_0x5fe8('0x3e')]['find']({'where':{'id':_0x35f09c},'attributes':['id',_0x5fe8('0x2f'),_0x5fe8('0x3f'),'email',_0x5fe8('0x40')],'raw':!![]})[_0x5fe8('0x1e')](function(_0x1da280){return _0x1da280;});}exports[_0x5fe8('0x41')]=function(){for(var _0x5da22f=0x0;_0x5da22f<triggers[_0x5fe8('0x42')];_0x5da22f+=0x1){if(db[_0x5fe8('0x43')](triggers[_0x5da22f]['model'])){db[triggers[_0x5da22f][_0x5fe8('0x44')]][_0x5fe8('0x45')](triggers[_0x5da22f]['event'],triggers[_0x5da22f]['callback'](triggers[_0x5da22f][_0x5fe8('0x22')][_0x5fe8('0x46')](),triggers[_0x5da22f][_0x5fe8('0x47')]));}}};