Built motion from commit efa66e19.|2.6.22
[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 _0x0623=['Trigger,\x20%s','error','code','catch','get','channel','motionChannel','event','direction','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','Sequelize','QueryTypes','SELECT','contact','UserId','interface','format','name','agent','outgoingmessage','AfterCreateMessage','offlineMessage','opened','resolve','sequelize','query','SIP/%s','closed','changed','substatus','AfterUpdate','find','fullname','email','default','hasOwnProperty','model','hook','callback','toLowerCase','util','jayson/promise','../logger','triggers','client','http','Chat','ChatInteraction','closedinteraction','afterCreate','newmessage','ChatOfflineMessage','Sms','SmsInteraction','newinteraction','afterUpdate','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','FaxInteraction','Fax','FaxMessage','Mail','MailInteraction','Openchannel','OpenchannelInteraction','request','EventManager','then','info'];(function(_0x1f11d8,_0x20bd3e){var _0x972b4c=function(_0x4f9db9){while(--_0x4f9db9){_0x1f11d8['push'](_0x1f11d8['shift']());}};_0x972b4c(++_0x20bd3e);}(_0x0623,0x1e0));var _0x3062=function(_0x19a6b5,_0x215bba){_0x19a6b5=_0x19a6b5-0x0;var _0x308ccb=_0x0623[_0x19a6b5];return _0x308ccb;};'use strict';var util=require(_0x3062('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0x3062('0x1'));var logger=require(_0x3062('0x2'))(_0x3062('0x3'));var client=jayson[_0x3062('0x4')][_0x3062('0x5')]({'port':0x232a});var triggers=[{'channel':'Chat','model':'ChatInteraction','event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x3062('0x6'),'model':_0x3062('0x7'),'event':'afterUpdate','condition':_0x3062('0x8'),'callback':afterUpdate},{'channel':_0x3062('0x6'),'model':'ChatMessage','event':_0x3062('0x9'),'condition':_0x3062('0xa'),'callback':afterCreateMessage},{'channel':_0x3062('0x6'),'model':_0x3062('0xb'),'event':'afterCreate','condition':_0x3062('0xa'),'callback':afterCreateOfflineMessage},{'channel':_0x3062('0xc'),'model':_0x3062('0xd'),'event':'afterCreate','condition':_0x3062('0xe'),'callback':afterCreate},{'channel':'Sms','model':'SmsInteraction','event':_0x3062('0xf'),'condition':_0x3062('0x8'),'callback':afterUpdate},{'channel':'Sms','model':_0x3062('0x10'),'event':_0x3062('0x9'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x3062('0x11'),'model':_0x3062('0x12'),'event':_0x3062('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x3062('0x11'),'model':_0x3062('0x12'),'event':'afterUpdate','condition':_0x3062('0x8'),'callback':afterUpdate},{'channel':_0x3062('0x11'),'model':_0x3062('0x13'),'event':'afterCreate','condition':_0x3062('0xa'),'callback':afterCreateMessage},{'channel':'Fax','model':_0x3062('0x14'),'event':_0x3062('0x9'),'condition':_0x3062('0xe'),'callback':afterCreate},{'channel':'Fax','model':_0x3062('0x14'),'event':_0x3062('0xf'),'condition':_0x3062('0x8'),'callback':afterUpdate},{'channel':_0x3062('0x15'),'model':_0x3062('0x16'),'event':_0x3062('0x9'),'condition':_0x3062('0xa'),'callback':afterCreateMessage},{'channel':_0x3062('0x17'),'model':_0x3062('0x18'),'event':'afterCreate','condition':_0x3062('0xe'),'callback':afterCreate},{'channel':'Mail','model':_0x3062('0x18'),'event':'afterUpdate','condition':_0x3062('0x8'),'callback':afterUpdate},{'channel':_0x3062('0x17'),'model':'MailMessage','event':_0x3062('0x9'),'condition':_0x3062('0xa'),'callback':afterCreateMessage},{'channel':_0x3062('0x19'),'model':_0x3062('0x1a'),'event':_0x3062('0x9'),'condition':_0x3062('0xe'),'callback':afterCreate},{'channel':_0x3062('0x19'),'model':_0x3062('0x1a'),'event':'afterUpdate','condition':_0x3062('0x8'),'callback':afterUpdate},{'channel':'Openchannel','model':'OpenchannelMessage','event':_0x3062('0x9'),'condition':_0x3062('0xa'),'callback':afterCreateMessage}];function request(_0x15a6f1){return client[_0x3062('0x1b')](_0x3062('0x1c'),_0x15a6f1)[_0x3062('0x1d')](function(_0x51c91b){logger[_0x3062('0x1e')](_0x3062('0x1f'),_0x3062('0x1c'),_0x51c91b);if(_0x51c91b[_0x3062('0x20')]){if(_0x51c91b[_0x3062('0x20')][_0x3062('0x21')]===0x1f4){logger[_0x3062('0x20')](_0x3062('0x1f'),'EventManager',_0x51c91b[_0x3062('0x20')]);}}})[_0x3062('0x22')](function(_0x437560){logger['error'](_0x3062('0x1f'),_0x3062('0x1c'),_0x437560);});}function afterCreateMessage(_0x1a648f){return function(_0x5cdfdf){_0x5cdfdf=_0x5cdfdf[_0x3062('0x23')]({'plain':!![]});_0x5cdfdf[_0x3062('0x24')]=_0x1a648f;_0x5cdfdf[_0x3062('0x25')]=_0x1a648f;_0x5cdfdf[_0x3062('0x26')]=_0x5cdfdf[_0x3062('0x27')];Promise['resolve']()[_0x3062('0x1d')](function(){if(typeof _0x5cdfdf[_0x3062('0x28')]===_0x3062('0x29'))return null;var _0x1d50f3=_0x3062('0x2a')+_0x5cdfdf[_0x3062('0x28')];return db['sequelize']['query'](_0x1d50f3,{'type':db[_0x3062('0x2b')][_0x3062('0x2c')][_0x3062('0x2d')],'raw':!![]});})[_0x3062('0x1d')](function(_0x5963ef){if(_0x5963ef){_0x5cdfdf[_0x3062('0x2e')]=_0x5963ef[0x0];}if(typeof _0x5cdfdf[_0x3062('0x2f')]===_0x3062('0x29'))return;return getAgent(_0x5cdfdf[_0x3062('0x2f')]);})['then'](function(_0x377ada){if(_0x377ada){_0x5cdfdf[_0x3062('0x30')]=util[_0x3062('0x31')]('SIP/%s',_0x377ada[_0x3062('0x32')]);_0x5cdfdf[_0x3062('0x33')]=_0x377ada;_0x5cdfdf[_0x3062('0x24')]=_0x1a648f;return request({'event':'incomingmessage','message':_0x5cdfdf});}else{return request({'event':_0x3062('0x34'),'message':_0x5cdfdf});}})['catch'](function(_0x24691f){logger[_0x3062('0x20')](_0x3062('0x1f'),_0x3062('0x35'),_0x24691f);});};}function afterCreateOfflineMessage(_0x4966e4){return function(_0x42a2ee){_0x42a2ee=_0x42a2ee[_0x3062('0x23')]({'plain':!![]});_0x42a2ee[_0x3062('0x24')]=_0x4966e4;_0x42a2ee['motionChannel']=_0x4966e4;_0x42a2ee['event']=_0x3062('0x36');return request({'event':_0x42a2ee[_0x3062('0x26')],'message':_0x42a2ee});};}function afterCreate(_0x43f4e2,_0xedb42d){return function(_0x4dce31){_0x4dce31=_0x4dce31[_0x3062('0x23')]({'plain':!![]});_0x4dce31[_0x3062('0x24')]=_0x43f4e2;_0x4dce31[_0x3062('0x25')]=_0x43f4e2;_0x4dce31[_0x3062('0x26')]=_0x3062('0x37');Promise[_0x3062('0x38')]()['then'](function(){var _0x2a196e=_0x3062('0x2a')+_0x4dce31['ContactId'];return db[_0x3062('0x39')][_0x3062('0x3a')](_0x2a196e,{'type':db[_0x3062('0x2b')][_0x3062('0x2c')][_0x3062('0x2d')],'raw':!![]});})[_0x3062('0x1d')](function(_0x5ef7fe){if(_0x5ef7fe){_0x4dce31['contact']=_0x5ef7fe[0x0];}if(typeof _0x4dce31['UserId']===_0x3062('0x29'))return;return getAgent(_0x4dce31[_0x3062('0x2f')]);})[_0x3062('0x1d')](function(_0x1149b2){if(_0x1149b2){_0x4dce31['interface']=util[_0x3062('0x31')](_0x3062('0x3b'),_0x1149b2[_0x3062('0x32')]);_0x4dce31[_0x3062('0x33')]=_0x1149b2;}return request({'event':_0xedb42d,'message':_0x4dce31});})[_0x3062('0x22')](function(_0x260c12){logger[_0x3062('0x20')](_0x3062('0x1f'),'AfterCreate',_0x260c12);});};}function afterUpdate(_0x12c5f4){return function(_0x4aeebc){var _0x2f4fe7=_0x4aeebc['changed'](_0x3062('0x3c'))&&_0x4aeebc[_0x3062('0x3c')];var _0x36bec4=_0x4aeebc[_0x3062('0x3d')](_0x3062('0x3e'));if(_0x2f4fe7||_0x36bec4){var _0x2877f7=_0x2f4fe7?_0x3062('0x8'):_0x3062('0x3e');var _0x50bcef=_0x4aeebc['get']({'plain':!![]});_0x50bcef[_0x3062('0x24')]=_0x12c5f4;_0x50bcef[_0x3062('0x25')]=_0x12c5f4;_0x50bcef[_0x3062('0x26')]=_0x2f4fe7?_0x3062('0x3c'):_0x3062('0x3e');var _0xe31871=_0x3062('0x2a')+_0x50bcef[_0x3062('0x28')];return db[_0x3062('0x39')][_0x3062('0x3a')](_0xe31871,{'type':db[_0x3062('0x2b')][_0x3062('0x2c')][_0x3062('0x2d')],'raw':!![]})['then'](function(_0x5ad06b){if(_0x5ad06b){_0x50bcef['contact']=_0x5ad06b[0x0];}if(typeof _0x50bcef[_0x3062('0x2f')]===_0x3062('0x29'))return;return getAgent(_0x50bcef[_0x3062('0x2f')]);})[_0x3062('0x1d')](function(_0x2fa28c){if(_0x2fa28c){_0x50bcef[_0x3062('0x30')]=util['format'](_0x3062('0x3b'),_0x2fa28c[_0x3062('0x32')]);_0x50bcef[_0x3062('0x33')]=_0x2fa28c;}return request({'event':_0x2877f7,'message':_0x50bcef});})[_0x3062('0x22')](function(_0x74389d){logger[_0x3062('0x20')]('Trigger,\x20%s',_0x3062('0x3f'),_0x74389d);});}};}function getAgent(_0x88933e){return db['User'][_0x3062('0x40')]({'where':{'id':_0x88933e},'attributes':['id',_0x3062('0x32'),_0x3062('0x41'),_0x3062('0x42'),'internal'],'raw':!![]})[_0x3062('0x1d')](function(_0x42a830){return _0x42a830;});}exports[_0x3062('0x43')]=function(){for(var _0x529f23=0x0;_0x529f23<triggers['length'];_0x529f23+=0x1){if(db[_0x3062('0x44')](triggers[_0x529f23][_0x3062('0x45')])){db[triggers[_0x529f23][_0x3062('0x45')]][_0x3062('0x46')](triggers[_0x529f23]['event'],triggers[_0x529f23][_0x3062('0x47')](triggers[_0x529f23]['channel'][_0x3062('0x48')](),triggers[_0x529f23]['condition']));}}};