f3324ab3695b699efe84c63ccfaabea9ee1a3c2e
[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 _0x5d32=['error','code','Trigger,\x20%s','catch','channel','motionChannel','event','direction','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','QueryTypes','SELECT','UserId','interface','format','SIP/%s','name','AfterCreateMessage','get','opened','query','contact','agent','AfterCreate','changed','closed','substatus','User','find','fullname','email','internal','default','length','model','hook','callback','util','jayson/promise','triggers','client','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','ChatOfflineMessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','EventManager','then','info'];(function(_0x4494bd,_0x5d4c66){var _0x49ede9=function(_0x360670){while(--_0x360670){_0x4494bd['push'](_0x4494bd['shift']());}};_0x49ede9(++_0x5d4c66);}(_0x5d32,0x1cd));var _0x25d3=function(_0x5316d3,_0x5cba98){_0x5316d3=_0x5316d3-0x0;var _0x27d9fa=_0x5d32[_0x5316d3];return _0x27d9fa;};'use strict';var util=require(_0x25d3('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0x25d3('0x1'));var logger=require('../logger')(_0x25d3('0x2'));var client=jayson[_0x25d3('0x3')]['http']({'port':0x232a});var triggers=[{'channel':_0x25d3('0x4'),'model':_0x25d3('0x5'),'event':_0x25d3('0x6'),'condition':_0x25d3('0x7'),'callback':afterCreate},{'channel':_0x25d3('0x4'),'model':_0x25d3('0x5'),'event':_0x25d3('0x8'),'condition':_0x25d3('0x9'),'callback':afterUpdate},{'channel':'Chat','model':_0x25d3('0xa'),'event':_0x25d3('0x6'),'condition':_0x25d3('0xb'),'callback':afterCreateMessage},{'channel':_0x25d3('0x4'),'model':_0x25d3('0xc'),'event':_0x25d3('0x6'),'condition':_0x25d3('0xb'),'callback':afterCreateOfflineMessage},{'channel':_0x25d3('0xd'),'model':_0x25d3('0xe'),'event':_0x25d3('0x6'),'condition':_0x25d3('0x7'),'callback':afterCreate},{'channel':_0x25d3('0xd'),'model':_0x25d3('0xe'),'event':_0x25d3('0x8'),'condition':_0x25d3('0x9'),'callback':afterUpdate},{'channel':'Sms','model':_0x25d3('0xf'),'event':'afterCreate','condition':_0x25d3('0xb'),'callback':afterCreateMessage},{'channel':_0x25d3('0x10'),'model':_0x25d3('0x11'),'event':_0x25d3('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x25d3('0x10'),'model':_0x25d3('0x11'),'event':_0x25d3('0x8'),'condition':_0x25d3('0x9'),'callback':afterUpdate},{'channel':_0x25d3('0x10'),'model':_0x25d3('0x12'),'event':_0x25d3('0x6'),'condition':_0x25d3('0xb'),'callback':afterCreateMessage},{'channel':_0x25d3('0x13'),'model':'FaxInteraction','event':'afterCreate','condition':_0x25d3('0x7'),'callback':afterCreate},{'channel':'Fax','model':'FaxInteraction','event':_0x25d3('0x8'),'condition':_0x25d3('0x9'),'callback':afterUpdate},{'channel':_0x25d3('0x13'),'model':'FaxMessage','event':_0x25d3('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x25d3('0x14'),'model':'MailInteraction','event':_0x25d3('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x25d3('0x14'),'model':_0x25d3('0x15'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x25d3('0x14'),'model':_0x25d3('0x16'),'event':_0x25d3('0x6'),'condition':_0x25d3('0xb'),'callback':afterCreateMessage},{'channel':_0x25d3('0x17'),'model':_0x25d3('0x18'),'event':_0x25d3('0x6'),'condition':_0x25d3('0x7'),'callback':afterCreate},{'channel':_0x25d3('0x17'),'model':_0x25d3('0x18'),'event':_0x25d3('0x8'),'condition':_0x25d3('0x9'),'callback':afterUpdate},{'channel':'Openchannel','model':_0x25d3('0x19'),'event':'afterCreate','condition':_0x25d3('0xb'),'callback':afterCreateMessage}];function request(_0x2387c3){return client['request'](_0x25d3('0x1a'),_0x2387c3)[_0x25d3('0x1b')](function(_0x33d19e){logger[_0x25d3('0x1c')]('Trigger,\x20%s',_0x25d3('0x1a'),_0x33d19e);if(_0x33d19e[_0x25d3('0x1d')]){if(_0x33d19e[_0x25d3('0x1d')][_0x25d3('0x1e')]===0x1f4){logger[_0x25d3('0x1d')](_0x25d3('0x1f'),_0x25d3('0x1a'),_0x33d19e['error']);}}})[_0x25d3('0x20')](function(_0x1bbca6){logger[_0x25d3('0x1d')](_0x25d3('0x1f'),'EventManager',_0x1bbca6);});}function afterCreateMessage(_0x1a6250){return function(_0x30a776){_0x30a776=_0x30a776['get']({'plain':!![]});_0x30a776[_0x25d3('0x21')]=_0x1a6250;_0x30a776[_0x25d3('0x22')]=_0x1a6250;_0x30a776[_0x25d3('0x23')]=_0x30a776[_0x25d3('0x24')];Promise[_0x25d3('0x25')]()[_0x25d3('0x1b')](function(){if(typeof _0x30a776[_0x25d3('0x26')]===_0x25d3('0x27'))return null;var _0x76fb2d=_0x25d3('0x28')+_0x30a776[_0x25d3('0x26')];return db[_0x25d3('0x29')]['query'](_0x76fb2d,{'type':db[_0x25d3('0x2a')][_0x25d3('0x2b')][_0x25d3('0x2c')],'raw':!![]});})['then'](function(_0x3e67f4){if(_0x3e67f4){_0x30a776['contact']=_0x3e67f4[0x0];}if(typeof _0x30a776[_0x25d3('0x2d')]==='undefined')return;return getAgent(_0x30a776[_0x25d3('0x2d')]);})[_0x25d3('0x1b')](function(_0x6077a1){if(_0x6077a1){_0x30a776[_0x25d3('0x2e')]=util[_0x25d3('0x2f')](_0x25d3('0x30'),_0x6077a1[_0x25d3('0x31')]);_0x30a776['agent']=_0x6077a1;_0x30a776[_0x25d3('0x21')]=_0x1a6250;return request({'event':'incomingmessage','message':_0x30a776});}else{return request({'event':'outgoingmessage','message':_0x30a776});}})[_0x25d3('0x20')](function(_0x3651fb){logger[_0x25d3('0x1d')](_0x25d3('0x1f'),_0x25d3('0x32'),_0x3651fb);});};}function afterCreateOfflineMessage(_0x104a61){return function(_0x2a0b02){_0x2a0b02=_0x2a0b02['get']({'plain':!![]});_0x2a0b02[_0x25d3('0x21')]=_0x104a61;_0x2a0b02[_0x25d3('0x22')]=_0x104a61;_0x2a0b02[_0x25d3('0x23')]='offlineMessage';return request({'event':_0x2a0b02[_0x25d3('0x23')],'message':_0x2a0b02});};}function afterCreate(_0x11411d,_0x4526cf){return function(_0x1b473b){var _0xbb8c78=_0x1b473b[_0x25d3('0x33')]({'plain':!![]});_0xbb8c78['channel']=_0x11411d;_0xbb8c78[_0x25d3('0x22')]=_0x11411d;_0xbb8c78[_0x25d3('0x23')]=_0x25d3('0x34');Promise['resolve']()[_0x25d3('0x1b')](function(){var _0x4888e1=_0x25d3('0x28')+_0xbb8c78[_0x25d3('0x26')];return db['sequelize'][_0x25d3('0x35')](_0x4888e1,{'type':db[_0x25d3('0x2a')]['QueryTypes'][_0x25d3('0x2c')],'raw':!![]});})[_0x25d3('0x1b')](function(_0x19336a){if(_0x19336a){_0xbb8c78[_0x25d3('0x36')]=_0x19336a[0x0];}if(_0xbb8c78['UserId']){return getAgent(_0xbb8c78[_0x25d3('0x2d')]);}return;})[_0x25d3('0x1b')](function(_0x3333e4){if(_0x3333e4){_0xbb8c78[_0x25d3('0x2e')]=util['format'](_0x25d3('0x30'),_0x3333e4[_0x25d3('0x31')]);_0xbb8c78[_0x25d3('0x37')]=_0x3333e4;}return request({'event':_0x4526cf,'message':_0xbb8c78});})[_0x25d3('0x20')](function(_0x2e98f8){logger[_0x25d3('0x1d')](_0x25d3('0x1f'),_0x25d3('0x38'),_0x2e98f8);});};}function afterUpdate(_0x2034df){return function(_0xbe8c14){var _0x97456c=_0xbe8c14[_0x25d3('0x39')]('closed')&&_0xbe8c14[_0x25d3('0x3a')];var _0x4ed047=_0xbe8c14[_0x25d3('0x39')]('substatus');if(_0x97456c||_0x4ed047){var _0x1354fc=_0x97456c?'closedinteraction':_0x25d3('0x3b');var _0x302c70=_0xbe8c14[_0x25d3('0x33')]({'plain':!![]});_0x302c70[_0x25d3('0x21')]=_0x2034df;_0x302c70['motionChannel']=_0x2034df;_0x302c70[_0x25d3('0x23')]=_0x97456c?_0x25d3('0x3a'):'substatus';var _0x568645=_0x25d3('0x28')+_0x302c70[_0x25d3('0x26')];return db[_0x25d3('0x29')][_0x25d3('0x35')](_0x568645,{'type':db[_0x25d3('0x2a')][_0x25d3('0x2b')][_0x25d3('0x2c')],'raw':!![]})[_0x25d3('0x1b')](function(_0x277abe){if(_0x277abe){_0x302c70['contact']=_0x277abe[0x0];}if(typeof _0x302c70[_0x25d3('0x2d')]===_0x25d3('0x27'))return;return getAgent(_0x302c70[_0x25d3('0x2d')]);})[_0x25d3('0x1b')](function(_0x317318){if(_0x317318){_0x302c70['interface']=util[_0x25d3('0x2f')](_0x25d3('0x30'),_0x317318[_0x25d3('0x31')]);_0x302c70[_0x25d3('0x37')]=_0x317318;}return request({'event':_0x1354fc,'message':_0x302c70});})[_0x25d3('0x20')](function(_0x2330b2){logger[_0x25d3('0x1d')](_0x25d3('0x1f'),'AfterUpdate',_0x2330b2);});}};}function getAgent(_0xc2a5f4){return db[_0x25d3('0x3c')][_0x25d3('0x3d')]({'where':{'id':_0xc2a5f4},'attributes':['id',_0x25d3('0x31'),_0x25d3('0x3e'),_0x25d3('0x3f'),_0x25d3('0x40')],'raw':!![]})[_0x25d3('0x1b')](function(_0x4b9aa2){return _0x4b9aa2;});}exports[_0x25d3('0x41')]=function(){for(var _0x396b04=0x0;_0x396b04<triggers[_0x25d3('0x42')];_0x396b04+=0x1){if(db['hasOwnProperty'](triggers[_0x396b04][_0x25d3('0x43')])){db[triggers[_0x396b04][_0x25d3('0x43')]][_0x25d3('0x44')](triggers[_0x396b04][_0x25d3('0x23')],triggers[_0x396b04][_0x25d3('0x45')](triggers[_0x396b04][_0x25d3('0x21')]['toLowerCase'](),triggers[_0x396b04]['condition']));}}};