Built motion from commit 10af8726.|2.6.34
[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 _0x660e=['sequelize','query','Sequelize','QueryTypes','SELECT','contact','UserId','interface','SIP/%s','name','agent','incomingmessage','outgoingmessage','offlineMessage','opened','format','AfterCreate','changed','closed','substatus','internal','default','length','model','hook','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','triggers','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','ChatOfflineMessage','Sms','SmsMessage','Whatsapp','WhatsappInteraction','FaxInteraction','Fax','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','EventManager','info','Trigger,\x20%s','error','code','catch','get','channel','motionChannel','event','direction','resolve','then','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'];(function(_0x4de115,_0x1adf59){var _0x3f9308=function(_0x2a3637){while(--_0x2a3637){_0x4de115['push'](_0x4de115['shift']());}};_0x3f9308(++_0x1adf59);}(_0x660e,0x138));var _0xe660=function(_0x5026ee,_0x40159f){_0x5026ee=_0x5026ee-0x0;var _0x282909=_0x660e[_0x5026ee];return _0x282909;};'use strict';var util=require(_0xe660('0x0'));var db=require(_0xe660('0x1'))['db'];var jayson=require(_0xe660('0x2'));var logger=require(_0xe660('0x3'))(_0xe660('0x4'));var client=jayson['client'][_0xe660('0x5')]({'port':0x232a});var triggers=[{'channel':_0xe660('0x6'),'model':_0xe660('0x7'),'event':_0xe660('0x8'),'condition':_0xe660('0x9'),'callback':afterCreate},{'channel':_0xe660('0x6'),'model':_0xe660('0x7'),'event':_0xe660('0xa'),'condition':_0xe660('0xb'),'callback':afterUpdate},{'channel':_0xe660('0x6'),'model':_0xe660('0xc'),'event':_0xe660('0x8'),'condition':_0xe660('0xd'),'callback':afterCreateMessage},{'channel':_0xe660('0x6'),'model':_0xe660('0xe'),'event':'afterCreate','condition':_0xe660('0xd'),'callback':afterCreateOfflineMessage},{'channel':_0xe660('0xf'),'model':'SmsInteraction','event':_0xe660('0x8'),'condition':_0xe660('0x9'),'callback':afterCreate},{'channel':_0xe660('0xf'),'model':'SmsInteraction','event':'afterUpdate','condition':_0xe660('0xb'),'callback':afterUpdate},{'channel':_0xe660('0xf'),'model':_0xe660('0x10'),'event':_0xe660('0x8'),'condition':_0xe660('0xd'),'callback':afterCreateMessage},{'channel':_0xe660('0x11'),'model':_0xe660('0x12'),'event':_0xe660('0x8'),'condition':_0xe660('0x9'),'callback':afterCreate},{'channel':_0xe660('0x11'),'model':_0xe660('0x12'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0xe660('0x11'),'model':'WhatsappMessage','event':_0xe660('0x8'),'condition':_0xe660('0xd'),'callback':afterCreateMessage},{'channel':'Fax','model':_0xe660('0x13'),'event':_0xe660('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':'Fax','model':_0xe660('0x13'),'event':_0xe660('0xa'),'condition':_0xe660('0xb'),'callback':afterUpdate},{'channel':_0xe660('0x14'),'model':_0xe660('0x15'),'event':_0xe660('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xe660('0x16'),'model':_0xe660('0x17'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':'Mail','model':'MailInteraction','event':_0xe660('0xa'),'condition':_0xe660('0xb'),'callback':afterUpdate},{'channel':'Mail','model':_0xe660('0x18'),'event':_0xe660('0x8'),'condition':_0xe660('0xd'),'callback':afterCreateMessage},{'channel':_0xe660('0x19'),'model':_0xe660('0x1a'),'event':_0xe660('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':'Openchannel','model':_0xe660('0x1a'),'event':_0xe660('0xa'),'condition':_0xe660('0xb'),'callback':afterUpdate},{'channel':_0xe660('0x19'),'model':'OpenchannelMessage','event':_0xe660('0x8'),'condition':_0xe660('0xd'),'callback':afterCreateMessage}];function request(_0x37c0c7){return client['request'](_0xe660('0x1b'),_0x37c0c7)['then'](function(_0x5b5173){logger[_0xe660('0x1c')](_0xe660('0x1d'),_0xe660('0x1b'),_0x5b5173);if(_0x5b5173['error']){if(_0x5b5173[_0xe660('0x1e')][_0xe660('0x1f')]===0x1f4){logger[_0xe660('0x1e')](_0xe660('0x1d'),'EventManager',_0x5b5173[_0xe660('0x1e')]);}}})[_0xe660('0x20')](function(_0x16174a){logger[_0xe660('0x1e')](_0xe660('0x1d'),'EventManager',_0x16174a);});}function afterCreateMessage(_0x59a6b2){return function(_0x847316){_0x847316=_0x847316[_0xe660('0x21')]({'plain':!![]});_0x847316[_0xe660('0x22')]=_0x59a6b2;_0x847316[_0xe660('0x23')]=_0x59a6b2;_0x847316[_0xe660('0x24')]=_0x847316[_0xe660('0x25')];Promise[_0xe660('0x26')]()[_0xe660('0x27')](function(){if(typeof _0x847316[_0xe660('0x28')]===_0xe660('0x29'))return null;var _0xe6a30e=_0xe660('0x2a')+_0x847316[_0xe660('0x28')];return db[_0xe660('0x2b')][_0xe660('0x2c')](_0xe6a30e,{'type':db[_0xe660('0x2d')][_0xe660('0x2e')][_0xe660('0x2f')],'raw':!![]});})['then'](function(_0x18ab8f){if(_0x18ab8f){_0x847316[_0xe660('0x30')]=_0x18ab8f[0x0];}if(typeof _0x847316[_0xe660('0x31')]==='undefined')return;return getAgent(_0x847316[_0xe660('0x31')]);})[_0xe660('0x27')](function(_0x301654){if(_0x301654){_0x847316[_0xe660('0x32')]=util['format'](_0xe660('0x33'),_0x301654[_0xe660('0x34')]);_0x847316[_0xe660('0x35')]=_0x301654;_0x847316['channel']=_0x59a6b2;return request({'event':_0xe660('0x36'),'message':_0x847316});}else{return request({'event':_0xe660('0x37'),'message':_0x847316});}})[_0xe660('0x20')](function(_0x258f73){logger[_0xe660('0x1e')](_0xe660('0x1d'),'AfterCreateMessage',_0x258f73);});};}function afterCreateOfflineMessage(_0x16d95f){return function(_0x52e484){_0x52e484=_0x52e484[_0xe660('0x21')]({'plain':!![]});_0x52e484['channel']=_0x16d95f;_0x52e484['motionChannel']=_0x16d95f;_0x52e484['event']=_0xe660('0x38');return request({'event':_0x52e484[_0xe660('0x24')],'message':_0x52e484});};}function afterCreate(_0x2e7081,_0x12e668){return function(_0x4826f7){var _0xad5f04=_0x4826f7[_0xe660('0x21')]({'plain':!![]});_0xad5f04[_0xe660('0x22')]=_0x2e7081;_0xad5f04[_0xe660('0x23')]=_0x2e7081;_0xad5f04[_0xe660('0x24')]=_0xe660('0x39');Promise[_0xe660('0x26')]()[_0xe660('0x27')](function(){var _0x3c39f3=_0xe660('0x2a')+_0xad5f04[_0xe660('0x28')];return db[_0xe660('0x2b')][_0xe660('0x2c')](_0x3c39f3,{'type':db['Sequelize'][_0xe660('0x2e')][_0xe660('0x2f')],'raw':!![]});})[_0xe660('0x27')](function(_0x3fbea9){if(_0x3fbea9){_0xad5f04['contact']=_0x3fbea9[0x0];}if(_0xad5f04[_0xe660('0x31')]){return getAgent(_0xad5f04[_0xe660('0x31')]);}return;})['then'](function(_0xb0c1c7){if(_0xb0c1c7){_0xad5f04[_0xe660('0x32')]=util[_0xe660('0x3a')]('SIP/%s',_0xb0c1c7['name']);_0xad5f04[_0xe660('0x35')]=_0xb0c1c7;}return request({'event':_0x12e668,'message':_0xad5f04});})[_0xe660('0x20')](function(_0x53319f){logger[_0xe660('0x1e')](_0xe660('0x1d'),_0xe660('0x3b'),_0x53319f);});};}function afterUpdate(_0x2418b5){return function(_0x1ba6cd){var _0x283e47=_0x1ba6cd[_0xe660('0x3c')]('closed')&&_0x1ba6cd[_0xe660('0x3d')];var _0x4deb42=_0x1ba6cd[_0xe660('0x3c')](_0xe660('0x3e'));if(_0x283e47||_0x4deb42){var _0x27d6b1=_0x283e47?'closedinteraction':_0xe660('0x3e');var _0x2b35a3=_0x1ba6cd[_0xe660('0x21')]({'plain':!![]});_0x2b35a3[_0xe660('0x22')]=_0x2418b5;_0x2b35a3[_0xe660('0x23')]=_0x2418b5;_0x2b35a3['event']=_0x283e47?_0xe660('0x3d'):_0xe660('0x3e');var _0x4c3b76=_0xe660('0x2a')+_0x2b35a3[_0xe660('0x28')];return db[_0xe660('0x2b')][_0xe660('0x2c')](_0x4c3b76,{'type':db[_0xe660('0x2d')][_0xe660('0x2e')][_0xe660('0x2f')],'raw':!![]})[_0xe660('0x27')](function(_0x2b5d98){if(_0x2b5d98){_0x2b35a3['contact']=_0x2b5d98[0x0];}if(typeof _0x2b35a3[_0xe660('0x31')]===_0xe660('0x29'))return;return getAgent(_0x2b35a3[_0xe660('0x31')]);})[_0xe660('0x27')](function(_0xa189c9){if(_0xa189c9){_0x2b35a3['interface']=util[_0xe660('0x3a')]('SIP/%s',_0xa189c9[_0xe660('0x34')]);_0x2b35a3[_0xe660('0x35')]=_0xa189c9;}return request({'event':_0x27d6b1,'message':_0x2b35a3});})['catch'](function(_0x18816c){logger['error'](_0xe660('0x1d'),'AfterUpdate',_0x18816c);});}};}function getAgent(_0x5ddcea){return db['User']['find']({'where':{'id':_0x5ddcea},'attributes':['id',_0xe660('0x34'),'fullname','email',_0xe660('0x3f')],'raw':!![]})[_0xe660('0x27')](function(_0x231e48){return _0x231e48;});}exports[_0xe660('0x40')]=function(){for(var _0x5df244=0x0;_0x5df244<triggers[_0xe660('0x41')];_0x5df244+=0x1){if(db['hasOwnProperty'](triggers[_0x5df244][_0xe660('0x42')])){db[triggers[_0x5df244][_0xe660('0x42')]][_0xe660('0x43')](triggers[_0x5df244][_0xe660('0x24')],triggers[_0x5df244][_0xe660('0x44')](triggers[_0x5df244]['channel'][_0xe660('0x45')](),triggers[_0x5df244][_0xe660('0x46')]));}}};