Built motion from commit 85328c08.|2.5.50
[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 _0xbe79=['incomingmessage','outgoingmessage','AfterCreateMessage','offlineMessage','opened','QueryTypes','SIP/%s','AfterCreate','changed','closed','substatus','name','AfterUpdate','find','fullname','email','internal','default','length','hasOwnProperty','model','callback','toLowerCase','condition','util','jayson/promise','../logger','client','http','ChatInteraction','afterCreate','Chat','afterUpdate','ChatMessage','ChatOfflineMessage','newmessage','Sms','SmsInteraction','newinteraction','closedinteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','MailInteraction','Mail','MailMessage','Openchannel','OpenchannelInteraction','request','EventManager','then','info','error','code','Trigger,\x20%s','catch','get','motionChannel','event','direction','resolve','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','query','Sequelize','SELECT','contact','UserId','interface','format','agent','channel'];(function(_0x129882,_0x461ea5){var _0x16f823=function(_0x3b5f97){while(--_0x3b5f97){_0x129882['push'](_0x129882['shift']());}};_0x16f823(++_0x461ea5);}(_0xbe79,0x150));var _0x9be7=function(_0x3c2306,_0x59d260){_0x3c2306=_0x3c2306-0x0;var _0x4fafa7=_0xbe79[_0x3c2306];return _0x4fafa7;};'use strict';var util=require(_0x9be7('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0x9be7('0x1'));var logger=require(_0x9be7('0x2'))('triggers');var client=jayson[_0x9be7('0x3')][_0x9be7('0x4')]({'port':0x232a});var triggers=[{'channel':'Chat','model':_0x9be7('0x5'),'event':_0x9be7('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x9be7('0x7'),'model':_0x9be7('0x5'),'event':_0x9be7('0x8'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Chat','model':_0x9be7('0x9'),'event':_0x9be7('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x9be7('0x7'),'model':_0x9be7('0xa'),'event':_0x9be7('0x6'),'condition':_0x9be7('0xb'),'callback':afterCreateOfflineMessage},{'channel':_0x9be7('0xc'),'model':_0x9be7('0xd'),'event':_0x9be7('0x6'),'condition':_0x9be7('0xe'),'callback':afterCreate},{'channel':'Sms','model':'SmsInteraction','event':_0x9be7('0x8'),'condition':_0x9be7('0xf'),'callback':afterUpdate},{'channel':'Sms','model':_0x9be7('0x10'),'event':_0x9be7('0x6'),'condition':_0x9be7('0xb'),'callback':afterCreateMessage},{'channel':_0x9be7('0x11'),'model':_0x9be7('0x12'),'event':_0x9be7('0x6'),'condition':_0x9be7('0xe'),'callback':afterCreate},{'channel':_0x9be7('0x11'),'model':_0x9be7('0x12'),'event':'afterUpdate','condition':_0x9be7('0xf'),'callback':afterUpdate},{'channel':_0x9be7('0x11'),'model':_0x9be7('0x13'),'event':_0x9be7('0x6'),'condition':_0x9be7('0xb'),'callback':afterCreateMessage},{'channel':_0x9be7('0x14'),'model':_0x9be7('0x15'),'event':_0x9be7('0x6'),'condition':_0x9be7('0xe'),'callback':afterCreate},{'channel':_0x9be7('0x14'),'model':'FaxInteraction','event':'afterUpdate','condition':_0x9be7('0xf'),'callback':afterUpdate},{'channel':_0x9be7('0x14'),'model':_0x9be7('0x16'),'event':_0x9be7('0x6'),'condition':_0x9be7('0xb'),'callback':afterCreateMessage},{'channel':'Mail','model':_0x9be7('0x17'),'event':_0x9be7('0x6'),'condition':_0x9be7('0xe'),'callback':afterCreate},{'channel':'Mail','model':'MailInteraction','event':_0x9be7('0x8'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x9be7('0x18'),'model':_0x9be7('0x19'),'event':_0x9be7('0x6'),'condition':_0x9be7('0xb'),'callback':afterCreateMessage},{'channel':_0x9be7('0x1a'),'model':_0x9be7('0x1b'),'event':_0x9be7('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x9be7('0x1a'),'model':_0x9be7('0x1b'),'event':_0x9be7('0x8'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Openchannel','model':'OpenchannelMessage','event':_0x9be7('0x6'),'condition':_0x9be7('0xb'),'callback':afterCreateMessage}];function request(_0x4569af){return client[_0x9be7('0x1c')](_0x9be7('0x1d'),_0x4569af)[_0x9be7('0x1e')](function(_0x5ba49d){logger[_0x9be7('0x1f')]('Trigger,\x20%s',_0x9be7('0x1d'),_0x5ba49d);if(_0x5ba49d[_0x9be7('0x20')]){if(_0x5ba49d['error'][_0x9be7('0x21')]===0x1f4){logger[_0x9be7('0x20')](_0x9be7('0x22'),'EventManager',_0x5ba49d[_0x9be7('0x20')]);}}})[_0x9be7('0x23')](function(_0x47c1e6){logger[_0x9be7('0x20')](_0x9be7('0x22'),'EventManager',_0x47c1e6);});}function afterCreateMessage(_0xe855b7){return function(_0x578165){_0x578165=_0x578165[_0x9be7('0x24')]({'plain':!![]});_0x578165['channel']=_0xe855b7;_0x578165[_0x9be7('0x25')]=_0xe855b7;_0x578165[_0x9be7('0x26')]=_0x578165[_0x9be7('0x27')];Promise[_0x9be7('0x28')]()[_0x9be7('0x1e')](function(){if(typeof _0x578165['ContactId']===_0x9be7('0x29'))return null;var _0x2f0234=_0x9be7('0x2a')+_0x578165[_0x9be7('0x2b')];return db[_0x9be7('0x2c')][_0x9be7('0x2d')](_0x2f0234,{'type':db[_0x9be7('0x2e')]['QueryTypes'][_0x9be7('0x2f')],'raw':!![]});})['then'](function(_0x5c5fad){if(_0x5c5fad){_0x578165[_0x9be7('0x30')]=_0x5c5fad[0x0];}if(typeof _0x578165['UserId']===_0x9be7('0x29'))return;return getAgent(_0x578165[_0x9be7('0x31')]);})[_0x9be7('0x1e')](function(_0x1c37a8){if(_0x1c37a8){_0x578165[_0x9be7('0x32')]=util[_0x9be7('0x33')]('SIP/%s',_0x1c37a8['name']);_0x578165[_0x9be7('0x34')]=_0x1c37a8;_0x578165[_0x9be7('0x35')]=_0xe855b7;return request({'event':_0x9be7('0x36'),'message':_0x578165});}else{return request({'event':_0x9be7('0x37'),'message':_0x578165});}})[_0x9be7('0x23')](function(_0x3065df){logger[_0x9be7('0x20')](_0x9be7('0x22'),_0x9be7('0x38'),_0x3065df);});};}function afterCreateOfflineMessage(_0x4e671d){return function(_0xec4a0){_0xec4a0=_0xec4a0[_0x9be7('0x24')]({'plain':!![]});_0xec4a0[_0x9be7('0x35')]=_0x4e671d;_0xec4a0[_0x9be7('0x25')]=_0x4e671d;_0xec4a0[_0x9be7('0x26')]=_0x9be7('0x39');return request({'event':_0xec4a0[_0x9be7('0x26')],'message':_0xec4a0});};}function afterCreate(_0x573eea,_0x5bb262){return function(_0x2ec627){_0x2ec627=_0x2ec627['get']({'plain':!![]});_0x2ec627[_0x9be7('0x35')]=_0x573eea;_0x2ec627[_0x9be7('0x25')]=_0x573eea;_0x2ec627[_0x9be7('0x26')]=_0x9be7('0x3a');Promise[_0x9be7('0x28')]()[_0x9be7('0x1e')](function(){var _0x2fe9fe='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2ec627[_0x9be7('0x2b')];return db[_0x9be7('0x2c')][_0x9be7('0x2d')](_0x2fe9fe,{'type':db['Sequelize'][_0x9be7('0x3b')][_0x9be7('0x2f')],'raw':!![]});})['then'](function(_0x47eaf0){if(_0x47eaf0){_0x2ec627[_0x9be7('0x30')]=_0x47eaf0[0x0];}if(typeof _0x2ec627[_0x9be7('0x31')]==='undefined')return;return getAgent(_0x2ec627[_0x9be7('0x31')]);})[_0x9be7('0x1e')](function(_0x1dcab0){if(_0x1dcab0){_0x2ec627[_0x9be7('0x32')]=util['format'](_0x9be7('0x3c'),_0x1dcab0['name']);_0x2ec627[_0x9be7('0x34')]=_0x1dcab0;}return request({'event':_0x5bb262,'message':_0x2ec627});})[_0x9be7('0x23')](function(_0x5842da){logger[_0x9be7('0x20')]('Trigger,\x20%s',_0x9be7('0x3d'),_0x5842da);});};}function afterUpdate(_0x254e5e){return function(_0x4cc80a){var _0x1f04ea=_0x4cc80a[_0x9be7('0x3e')](_0x9be7('0x3f'))&&_0x4cc80a[_0x9be7('0x3f')];var _0x2fad00=_0x4cc80a[_0x9be7('0x3e')](_0x9be7('0x40'));if(_0x1f04ea||_0x2fad00){var _0x37a2df=_0x1f04ea?_0x9be7('0xf'):_0x9be7('0x40');var _0x7e84a5=_0x4cc80a[_0x9be7('0x24')]({'plain':!![]});_0x7e84a5['channel']=_0x254e5e;_0x7e84a5[_0x9be7('0x25')]=_0x254e5e;_0x7e84a5[_0x9be7('0x26')]=_0x1f04ea?_0x9be7('0x3f'):'substatus';var _0x28fb03=_0x9be7('0x2a')+_0x7e84a5[_0x9be7('0x2b')];return db['sequelize'][_0x9be7('0x2d')](_0x28fb03,{'type':db[_0x9be7('0x2e')][_0x9be7('0x3b')][_0x9be7('0x2f')],'raw':!![]})['then'](function(_0x46af39){if(_0x46af39){_0x7e84a5[_0x9be7('0x30')]=_0x46af39[0x0];}if(typeof _0x7e84a5[_0x9be7('0x31')]===_0x9be7('0x29'))return;return getAgent(_0x7e84a5[_0x9be7('0x31')]);})[_0x9be7('0x1e')](function(_0x19de7a){if(_0x19de7a){_0x7e84a5[_0x9be7('0x32')]=util[_0x9be7('0x33')](_0x9be7('0x3c'),_0x19de7a[_0x9be7('0x41')]);_0x7e84a5[_0x9be7('0x34')]=_0x19de7a;}return request({'event':_0x37a2df,'message':_0x7e84a5});})['catch'](function(_0x496c41){logger[_0x9be7('0x20')](_0x9be7('0x22'),_0x9be7('0x42'),_0x496c41);});}};}function getAgent(_0x69408d){return db['User'][_0x9be7('0x43')]({'where':{'id':_0x69408d},'attributes':['id','name',_0x9be7('0x44'),_0x9be7('0x45'),_0x9be7('0x46')],'raw':!![]})[_0x9be7('0x1e')](function(_0x312edb){return _0x312edb;});}exports[_0x9be7('0x47')]=function(){for(var _0x409bd0=0x0;_0x409bd0<triggers[_0x9be7('0x48')];_0x409bd0+=0x1){if(db[_0x9be7('0x49')](triggers[_0x409bd0][_0x9be7('0x4a')])){db[triggers[_0x409bd0][_0x9be7('0x4a')]]['hook'](triggers[_0x409bd0][_0x9be7('0x26')],triggers[_0x409bd0][_0x9be7('0x4b')](triggers[_0x409bd0][_0x9be7('0x35')][_0x9be7('0x4c')](),triggers[_0x409bd0][_0x9be7('0x4d')]));}}};