Built motion from commit bab6f49e.|2.6.17
[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 _0x0d02=['offlineMessage','opened','format','name','catch','changed','closed','substatus','AfterUpdate','User','find','fullname','email','internal','length','model','hook','callback','toLowerCase','condition','util','../logger','triggers','client','Chat','afterCreate','newinteraction','ChatInteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','Sms','SmsInteraction','SmsMessage','WhatsappInteraction','Whatsapp','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','OpenchannelInteraction','Openchannel','OpenchannelMessage','request','EventManager','then','error','Trigger,\x20%s','channel','motionChannel','event','direction','resolve','ContactId','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','QueryTypes','SELECT','contact','UserId','undefined','interface','SIP/%s','agent','incomingmessage','AfterCreateMessage','get'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x0d02,0xec));var _0x20d0=function(_0x5b4ba0,_0x1864b1){_0x5b4ba0=_0x5b4ba0-0x0;var _0x38d463=_0x0d02[_0x5b4ba0];return _0x38d463;};'use strict';var util=require(_0x20d0('0x0'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var logger=require(_0x20d0('0x1'))(_0x20d0('0x2'));var client=jayson[_0x20d0('0x3')]['http']({'port':0x232a});var triggers=[{'channel':_0x20d0('0x4'),'model':'ChatInteraction','event':_0x20d0('0x5'),'condition':_0x20d0('0x6'),'callback':afterCreate},{'channel':'Chat','model':_0x20d0('0x7'),'event':_0x20d0('0x8'),'condition':_0x20d0('0x9'),'callback':afterUpdate},{'channel':_0x20d0('0x4'),'model':_0x20d0('0xa'),'event':_0x20d0('0x5'),'condition':_0x20d0('0xb'),'callback':afterCreateMessage},{'channel':_0x20d0('0x4'),'model':'ChatOfflineMessage','event':_0x20d0('0x5'),'condition':'newmessage','callback':afterCreateOfflineMessage},{'channel':_0x20d0('0xc'),'model':'SmsInteraction','event':_0x20d0('0x5'),'condition':'newinteraction','callback':afterCreate},{'channel':'Sms','model':_0x20d0('0xd'),'event':_0x20d0('0x8'),'condition':_0x20d0('0x9'),'callback':afterUpdate},{'channel':'Sms','model':_0x20d0('0xe'),'event':_0x20d0('0x5'),'condition':_0x20d0('0xb'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':_0x20d0('0xf'),'event':_0x20d0('0x5'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x20d0('0x10'),'model':'WhatsappInteraction','event':_0x20d0('0x8'),'condition':_0x20d0('0x9'),'callback':afterUpdate},{'channel':_0x20d0('0x10'),'model':_0x20d0('0x11'),'event':_0x20d0('0x5'),'condition':_0x20d0('0xb'),'callback':afterCreateMessage},{'channel':_0x20d0('0x12'),'model':_0x20d0('0x13'),'event':_0x20d0('0x5'),'condition':_0x20d0('0x6'),'callback':afterCreate},{'channel':_0x20d0('0x12'),'model':_0x20d0('0x13'),'event':_0x20d0('0x8'),'condition':_0x20d0('0x9'),'callback':afterUpdate},{'channel':_0x20d0('0x12'),'model':_0x20d0('0x14'),'event':_0x20d0('0x5'),'condition':_0x20d0('0xb'),'callback':afterCreateMessage},{'channel':_0x20d0('0x15'),'model':_0x20d0('0x16'),'event':_0x20d0('0x5'),'condition':_0x20d0('0x6'),'callback':afterCreate},{'channel':_0x20d0('0x15'),'model':_0x20d0('0x16'),'event':_0x20d0('0x8'),'condition':_0x20d0('0x9'),'callback':afterUpdate},{'channel':_0x20d0('0x15'),'model':'MailMessage','event':'afterCreate','condition':_0x20d0('0xb'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0x20d0('0x17'),'event':_0x20d0('0x5'),'condition':_0x20d0('0x6'),'callback':afterCreate},{'channel':_0x20d0('0x18'),'model':_0x20d0('0x17'),'event':_0x20d0('0x8'),'condition':_0x20d0('0x9'),'callback':afterUpdate},{'channel':_0x20d0('0x18'),'model':_0x20d0('0x19'),'event':'afterCreate','condition':_0x20d0('0xb'),'callback':afterCreateMessage}];function request(_0x2ce440){return client[_0x20d0('0x1a')](_0x20d0('0x1b'),_0x2ce440)[_0x20d0('0x1c')](function(_0x377739){logger['info']('Trigger,\x20%s','EventManager',_0x377739);if(_0x377739[_0x20d0('0x1d')]){if(_0x377739[_0x20d0('0x1d')]['code']===0x1f4){logger[_0x20d0('0x1d')](_0x20d0('0x1e'),'EventManager',_0x377739[_0x20d0('0x1d')]);}}})['catch'](function(_0x530068){logger[_0x20d0('0x1d')](_0x20d0('0x1e'),_0x20d0('0x1b'),_0x530068);});}function afterCreateMessage(_0x2808e8){return function(_0x4bb8d5){_0x4bb8d5=_0x4bb8d5['get']({'plain':!![]});_0x4bb8d5[_0x20d0('0x1f')]=_0x2808e8;_0x4bb8d5[_0x20d0('0x20')]=_0x2808e8;_0x4bb8d5[_0x20d0('0x21')]=_0x4bb8d5[_0x20d0('0x22')];Promise[_0x20d0('0x23')]()[_0x20d0('0x1c')](function(){if(typeof _0x4bb8d5[_0x20d0('0x24')]==='undefined')return null;var _0x4effbf=_0x20d0('0x25')+_0x4bb8d5[_0x20d0('0x24')];return db[_0x20d0('0x26')][_0x20d0('0x27')](_0x4effbf,{'type':db[_0x20d0('0x28')][_0x20d0('0x29')][_0x20d0('0x2a')],'raw':!![]});})['then'](function(_0x5ac7c5){if(_0x5ac7c5){_0x4bb8d5[_0x20d0('0x2b')]=_0x5ac7c5[0x0];}if(typeof _0x4bb8d5[_0x20d0('0x2c')]===_0x20d0('0x2d'))return;return getAgent(_0x4bb8d5[_0x20d0('0x2c')]);})['then'](function(_0x34896a){if(_0x34896a){_0x4bb8d5[_0x20d0('0x2e')]=util['format'](_0x20d0('0x2f'),_0x34896a['name']);_0x4bb8d5[_0x20d0('0x30')]=_0x34896a;_0x4bb8d5['channel']=_0x2808e8;return request({'event':_0x20d0('0x31'),'message':_0x4bb8d5});}else{return request({'event':'outgoingmessage','message':_0x4bb8d5});}})['catch'](function(_0x4354e0){logger[_0x20d0('0x1d')](_0x20d0('0x1e'),_0x20d0('0x32'),_0x4354e0);});};}function afterCreateOfflineMessage(_0x5318eb){return function(_0x5874fb){_0x5874fb=_0x5874fb[_0x20d0('0x33')]({'plain':!![]});_0x5874fb[_0x20d0('0x1f')]=_0x5318eb;_0x5874fb['motionChannel']=_0x5318eb;_0x5874fb[_0x20d0('0x21')]=_0x20d0('0x34');return request({'event':_0x5874fb[_0x20d0('0x21')],'message':_0x5874fb});};}function afterCreate(_0x3ecff5,_0x3f51b5){return function(_0x554430){_0x554430=_0x554430['get']({'plain':!![]});_0x554430[_0x20d0('0x1f')]=_0x3ecff5;_0x554430[_0x20d0('0x20')]=_0x3ecff5;_0x554430[_0x20d0('0x21')]=_0x20d0('0x35');Promise[_0x20d0('0x23')]()[_0x20d0('0x1c')](function(){var _0x3b5075='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x554430['ContactId'];return db[_0x20d0('0x26')][_0x20d0('0x27')](_0x3b5075,{'type':db[_0x20d0('0x28')][_0x20d0('0x29')]['SELECT'],'raw':!![]});})[_0x20d0('0x1c')](function(_0x5cdd59){if(_0x5cdd59){_0x554430['contact']=_0x5cdd59[0x0];}if(typeof _0x554430[_0x20d0('0x2c')]===_0x20d0('0x2d'))return;return getAgent(_0x554430[_0x20d0('0x2c')]);})[_0x20d0('0x1c')](function(_0x149b5e){if(_0x149b5e){_0x554430['interface']=util[_0x20d0('0x36')]('SIP/%s',_0x149b5e[_0x20d0('0x37')]);_0x554430[_0x20d0('0x30')]=_0x149b5e;}return request({'event':_0x3f51b5,'message':_0x554430});})[_0x20d0('0x38')](function(_0x12078d){logger[_0x20d0('0x1d')](_0x20d0('0x1e'),'AfterCreate',_0x12078d);});};}function afterUpdate(_0x47505a){return function(_0xe8c0e9){var _0x36864b=_0xe8c0e9[_0x20d0('0x39')](_0x20d0('0x3a'))&&_0xe8c0e9[_0x20d0('0x3a')];var _0x45d9fe=_0xe8c0e9[_0x20d0('0x39')](_0x20d0('0x3b'));if(_0x36864b||_0x45d9fe){var _0x118232=_0x36864b?_0x20d0('0x9'):_0x20d0('0x3b');var _0x38c5c8=_0xe8c0e9[_0x20d0('0x33')]({'plain':!![]});_0x38c5c8['channel']=_0x47505a;_0x38c5c8[_0x20d0('0x20')]=_0x47505a;_0x38c5c8['event']=_0x36864b?_0x20d0('0x3a'):_0x20d0('0x3b');var _0x4076cd=_0x20d0('0x25')+_0x38c5c8[_0x20d0('0x24')];return db[_0x20d0('0x26')][_0x20d0('0x27')](_0x4076cd,{'type':db[_0x20d0('0x28')]['QueryTypes'][_0x20d0('0x2a')],'raw':!![]})[_0x20d0('0x1c')](function(_0x1019a3){if(_0x1019a3){_0x38c5c8[_0x20d0('0x2b')]=_0x1019a3[0x0];}if(typeof _0x38c5c8[_0x20d0('0x2c')]==='undefined')return;return getAgent(_0x38c5c8[_0x20d0('0x2c')]);})[_0x20d0('0x1c')](function(_0x27f0d6){if(_0x27f0d6){_0x38c5c8['interface']=util[_0x20d0('0x36')](_0x20d0('0x2f'),_0x27f0d6[_0x20d0('0x37')]);_0x38c5c8[_0x20d0('0x30')]=_0x27f0d6;}return request({'event':_0x118232,'message':_0x38c5c8});})[_0x20d0('0x38')](function(_0x47bdf3){logger['error'](_0x20d0('0x1e'),_0x20d0('0x3c'),_0x47bdf3);});}};}function getAgent(_0x4aefcc){return db[_0x20d0('0x3d')][_0x20d0('0x3e')]({'where':{'id':_0x4aefcc},'attributes':['id',_0x20d0('0x37'),_0x20d0('0x3f'),_0x20d0('0x40'),_0x20d0('0x41')],'raw':!![]})[_0x20d0('0x1c')](function(_0xc9a0f){return _0xc9a0f;});}exports['default']=function(){for(var _0x2cf1a2=0x0;_0x2cf1a2<triggers[_0x20d0('0x42')];_0x2cf1a2+=0x1){if(db['hasOwnProperty'](triggers[_0x2cf1a2][_0x20d0('0x43')])){db[triggers[_0x2cf1a2][_0x20d0('0x43')]][_0x20d0('0x44')](triggers[_0x2cf1a2][_0x20d0('0x21')],triggers[_0x2cf1a2][_0x20d0('0x45')](triggers[_0x2cf1a2][_0x20d0('0x1f')][_0x20d0('0x46')](),triggers[_0x2cf1a2][_0x20d0('0x47')]));}}};