Built motion from commit (unavailable).|2.2.3
[motion2.git] / server / services / ami / trigger / 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 _0xbb1f=['../rpc/cmContact','../../../config/environment','trigger','../ami','defaults','localhost','socket.io-emitter','redis','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','zohoAccounts','deskAccounts','vtigerAccounts','sugarcrmAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:queuecallerabandon','custom:dialbegin','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','clone','checkTriggers','hasOwnProperty','status','checkTrigger','merge','Actions','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','render','html','template\x20not\x20found','uri','isNil','data3','data4','location','uriLocation','windowWidth','data5','800','windowHeight','data6','600','winApplication','winArguments','format','user:%s','interface','name','trigger:%s:%s','jscripty','trigger:%s','integration','exec','accounts','queue','urlforward','buildUri','parse','query','search','AllConditions','length','every','checkConditions','channel','AnyConditions','some','account','operator','value','upperFirst','AccountId','interaction','message','event','lastevent','routeId','util','lodash','url','mustache','ioredis','./urlforward'];(function(_0x318dda,_0x1aa800){var _0x3f97ca=function(_0x1dc61a){while(--_0x1dc61a){_0x318dda['push'](_0x318dda['shift']());}};_0x3f97ca(++_0x1aa800);}(_0xbb1f,0x68));var _0xfbb1=function(_0x1ab0e6,_0x17ba8d){_0x1ab0e6=_0x1ab0e6-0x0;var _0x248815=_0xbb1f[_0x1ab0e6];return _0x248815;};'use strict';var util=require(_0xfbb1('0x0'));var _=require(_0xfbb1('0x1'));var url=require(_0xfbb1('0x2'));var Mustache=require(_0xfbb1('0x3'));var Redis=require(_0xfbb1('0x4'));var urlforward=require(_0xfbb1('0x5'));var integration=require('./integration');var cmContact=require('./cmContact');var cmContactRpc=require(_0xfbb1('0x6'));var config=require(_0xfbb1('0x7'));var logger=require('../../../config/logger')(_0xfbb1('0x8'));var ami=require(_0xfbb1('0x9'));config['redis']=_[_0xfbb1('0xa')](config['redis'],{'host':_0xfbb1('0xb'),'port':0x18eb});var io=require(_0xfbb1('0xc'))(new Redis(config[_0xfbb1('0xd')]));var operators={'equals':function(_0x40b6a2,_0x3e6d3e){return _0x40b6a2==_0x3e6d3e;},'not_equals':function(_0x2dc9b2,_0x401f5c){return _0x2dc9b2!=_0x401f5c;}};var barAndWebActions=[_0xfbb1('0xe'),'url',_0xfbb1('0xf')];function Trigger(_0x5dc834){this[_0xfbb1('0x10')]=_0x5dc834[_0xfbb1('0x10')];this[_0xfbb1('0x11')]=_0x5dc834[_0xfbb1('0x11')];this[_0xfbb1('0x12')]=_0x5dc834[_0xfbb1('0x12')];this[_0xfbb1('0x13')]=_0x5dc834[_0xfbb1('0x13')];this[_0xfbb1('0x14')]=_0x5dc834['voiceExtensions'];this[_0xfbb1('0x15')]=_0x5dc834[_0xfbb1('0x15')];this['freshdeskAccounts']=_0x5dc834[_0xfbb1('0x16')];this[_0xfbb1('0x17')]=_0x5dc834[_0xfbb1('0x17')];this['sugarcrmAccounts']=_0x5dc834['sugarcrmAccounts'];this['zohoAccounts']=_0x5dc834[_0xfbb1('0x18')];this[_0xfbb1('0x19')]=_0x5dc834['deskAccounts'];this[_0xfbb1('0x1a')]=_0x5dc834[_0xfbb1('0x1a')];this['accounts']={'zendesk':this[_0xfbb1('0x15')],'salesforce':this[_0xfbb1('0x17')],'freshdesk':this[_0xfbb1('0x16')],'sugarcrm':this[_0xfbb1('0x1b')],'zoho':this[_0xfbb1('0x18')],'desk':this['deskAccounts'],'vtiger':this['vtigerAccounts']};ami['on'](_0xfbb1('0x1c'),this[_0xfbb1('0x1d')][_0xfbb1('0x1e')](this));ami['on']('custom:agentconnect',this[_0xfbb1('0x1d')][_0xfbb1('0x1e')](this));ami['on'](_0xfbb1('0x1f'),this[_0xfbb1('0x1d')][_0xfbb1('0x1e')](this));ami['on'](_0xfbb1('0x20'),this[_0xfbb1('0x1d')]['bind'](this));ami['on'](_0xfbb1('0x21'),this['syncCustomEvent'][_0xfbb1('0x1e')](this));ami['on'](_0xfbb1('0x22'),this[_0xfbb1('0x1d')][_0xfbb1('0x1e')](this));ami['on'](_0xfbb1('0x23'),this[_0xfbb1('0x1d')]['bind'](this));ami['on'](_0xfbb1('0x24'),this[_0xfbb1('0x1d')][_0xfbb1('0x1e')](this));ami['on'](_0xfbb1('0x25'),this[_0xfbb1('0x1d')][_0xfbb1('0x1e')](this));ami['on'](_0xfbb1('0x26'),this[_0xfbb1('0x1d')][_0xfbb1('0x1e')](this));ami['on'](_0xfbb1('0x27'),this[_0xfbb1('0x1d')][_0xfbb1('0x1e')](this));ami['on'](_0xfbb1('0x28'),this[_0xfbb1('0x1d')]['bind'](this));ami['on'](_0xfbb1('0x29'),this[_0xfbb1('0x1d')][_0xfbb1('0x1e')](this));ami['on'](_0xfbb1('0x2a'),this[_0xfbb1('0x1d')][_0xfbb1('0x1e')](this));}Trigger[_0xfbb1('0x2b')][_0xfbb1('0x2c')]=function(_0x2c2d6b,_0x2a03a,_0x3df1dd){logger['info'](_0x2c2d6b,_0x2a03a,JSON['stringify'](_0x3df1dd));io['to'](_0x2c2d6b)['emit'](_0x2a03a,_0x3df1dd);};Trigger[_0xfbb1('0x2b')]['syncCustomEvent']=function(_0x4f55b4){var _0x3dbd19=_[_0xfbb1('0x2d')](_0x4f55b4);this['checkTriggers'](_0x3dbd19);};Trigger[_0xfbb1('0x2b')][_0xfbb1('0x2e')]=function(_0x19326d){var _0x2cd398;for(var _0x512847 in this[_0xfbb1('0x10')]){if(this['triggers'][_0xfbb1('0x2f')](_0x512847)){if(this['triggers'][_0x512847][_0xfbb1('0x30')]){_0x2cd398=this[_0xfbb1('0x31')](this[_0xfbb1('0x10')][_0x512847],_0x19326d);if(_0x2cd398){_[_0xfbb1('0x32')](_0x19326d,_0x19326d['variables']);for(var _0x51cc46=0x0,_0x1255a4,_0x37bbaf,_0x3505d0;_0x51cc46<this[_0xfbb1('0x10')][_0x512847][_0xfbb1('0x33')]['length'];_0x51cc46+=0x1){_0x1255a4=this[_0xfbb1('0x10')][_0x512847][_0xfbb1('0x33')][_0x51cc46];if(this['agents'][_0x19326d['interface']]){switch(_0x1255a4[_0xfbb1('0x34')][_0xfbb1('0x35')]()){case _0xfbb1('0x36'):break;case _0xfbb1('0x37'):case _0xfbb1('0x38'):var _0x5aa4ab={};switch(barAndWebActions[_0x1255a4[_0xfbb1('0x39')]]){case'popup':_0x5aa4ab[_0xfbb1('0x3a')]=_0x1255a4['data2'];_0x5aa4ab['html']=this[_0xfbb1('0x13')][_0x1255a4[_0xfbb1('0x3b')]]?Mustache[_0xfbb1('0x3c')](this[_0xfbb1('0x13')][_0x1255a4[_0xfbb1('0x3b')]][_0xfbb1('0x3d')],_0x19326d):_0xfbb1('0x3e');break;case _0xfbb1('0x2'):_0x5aa4ab[_0xfbb1('0x3f')]=this['buildUri'](_0x1255a4[_0xfbb1('0x3b')],_0x19326d,_[_0xfbb1('0x40')](_0x1255a4['data3'])?!![]:parseInt(_0x1255a4[_0xfbb1('0x41')],0xa));if(_[_0xfbb1('0x40')](_0x1255a4[_0xfbb1('0x42')])){_0x5aa4ab[_0xfbb1('0x43')]='0';}else{_0x5aa4ab[_0xfbb1('0x44')]=_0x1255a4[_0xfbb1('0x42')];_0x5aa4ab[_0xfbb1('0x45')]=_[_0xfbb1('0x40')](_0x1255a4[_0xfbb1('0x46')])?_0xfbb1('0x47'):_0x1255a4['data5'];_0x5aa4ab[_0xfbb1('0x48')]=_[_0xfbb1('0x40')](_0x1255a4[_0xfbb1('0x49')])?_0xfbb1('0x4a'):_0x1255a4[_0xfbb1('0x49')];}break;case _0xfbb1('0xf'):_0x5aa4ab[_0xfbb1('0x4b')]=_0x1255a4[_0xfbb1('0x3b')]?Mustache[_0xfbb1('0x3c')](_0x1255a4[_0xfbb1('0x3b')],_0x19326d):'';_0x5aa4ab[_0xfbb1('0x4c')]=_0x1255a4[_0xfbb1('0x41')]?Mustache[_0xfbb1('0x3c')](_0x1255a4[_0xfbb1('0x41')],_0x19326d):'';break;}this[_0xfbb1('0x2c')](util[_0xfbb1('0x4d')](_0xfbb1('0x4e'),this[_0xfbb1('0x11')][_0x19326d[_0xfbb1('0x4f')]][_0xfbb1('0x50')]),util[_0xfbb1('0x4d')](_0xfbb1('0x51'),_0x1255a4[_0xfbb1('0x34')][_0xfbb1('0x35')](),barAndWebActions[_0x1255a4[_0xfbb1('0x39')]]),_['merge'](_0x5aa4ab,_0x19326d));break;case _0xfbb1('0x52'):this[_0xfbb1('0x2c')](util[_0xfbb1('0x4d')](_0xfbb1('0x4e'),this[_0xfbb1('0x11')][_0x19326d[_0xfbb1('0x4f')]][_0xfbb1('0x50')]),util['format'](_0xfbb1('0x53'),_0x1255a4[_0xfbb1('0x34')]['toLowerCase']()),_[_0xfbb1('0x32')]({'ProjectId':parseInt(_0x1255a4[_0xfbb1('0x39')],0xa)},_0x19326d));break;default:this[_0xfbb1('0x2c')](util[_0xfbb1('0x4d')](_0xfbb1('0x4e'),this['agents'][_0x19326d['interface']][_0xfbb1('0x50')]),util[_0xfbb1('0x4d')]('trigger:%s',_0x1255a4[_0xfbb1('0x34')][_0xfbb1('0x35')]()),_[_0xfbb1('0x32')]({},_0x1255a4,_0x19326d));}}switch(_0x1255a4['action'][_0xfbb1('0x35')]()){case'contactmanager':cmContact['exec'](this[_0xfbb1('0x11')][_0x19326d[_0xfbb1('0x4f')]],_0x1255a4,_0x19326d,cmContactRpc);break;case _0xfbb1('0x54'):integration[_0xfbb1('0x55')](_0x1255a4,_0x19326d,this[_0xfbb1('0x56')],this[_0xfbb1('0x11')][_0x19326d[_0xfbb1('0x4f')]],this[_0xfbb1('0x12')][_0x19326d[_0xfbb1('0x57')]],this[_0xfbb1('0x14')][_0x19326d['routeId']]);break;case _0xfbb1('0x58'):urlforward[_0xfbb1('0x55')](_0x1255a4,_0x19326d);break;}}}}}}};Trigger[_0xfbb1('0x2b')][_0xfbb1('0x59')]=function(_0x194cae,_0x5f2a44,_0x1c1843){var _0x1ee472=url[_0xfbb1('0x5a')](Mustache[_0xfbb1('0x3c')](_0x194cae,_0x5f2a44),!![]);if(_0x1c1843){_[_0xfbb1('0x32')](_0x1ee472[_0xfbb1('0x5b')],_0x5f2a44);}delete _0x1ee472[_0xfbb1('0x5c')];return url[_0xfbb1('0x4d')](_0x1ee472);};Trigger[_0xfbb1('0x2b')][_0xfbb1('0x31')]=function(_0x4c2e35,_0x4c9d6f){var _0x114982=!![],_0x124a1c=!![];if(_0x4c2e35[_0xfbb1('0x5d')][_0xfbb1('0x5e')]){_0x114982=_[_0xfbb1('0x5f')](_0x4c2e35[_0xfbb1('0x5d')],this[_0xfbb1('0x60')](_0x4c9d6f,_0x4c2e35[_0xfbb1('0x61')]));}if(_0x4c2e35[_0xfbb1('0x62')][_0xfbb1('0x5e')]){_0x124a1c=_[_0xfbb1('0x63')](_0x4c2e35[_0xfbb1('0x62')],this['checkConditions'](_0x4c9d6f,_0x4c2e35[_0xfbb1('0x61')]));}return _0x114982&&_0x124a1c;};Trigger['prototype'][_0xfbb1('0x60')]=function(_0x24c3e1,_0x50750f){return function(_0x4a6190){switch(_0x4a6190['field']){case _0xfbb1('0x64'):if(_0x24c3e1[_0xfbb1('0x61')]===_0x50750f){if(_0x50750f==='chat'){return _0x24c3e1['ChatWebsiteId']?operators[_0x4a6190[_0xfbb1('0x65')]](Number(_0x4a6190[_0xfbb1('0x66')]),_0x24c3e1['ChatWebsiteId']):![];}else{return _0x24c3e1[_[_0xfbb1('0x67')](_0x50750f)+_0xfbb1('0x68')]?operators[_0x4a6190['operator']](Number(_0x4a6190['value']),_0x24c3e1[_[_0xfbb1('0x67')](_0x50750f)+'AccountId']):![];}}break;case _0xfbb1('0x69'):case _0xfbb1('0x6a'):if(_0x24c3e1[_0xfbb1('0x61')]===_0x50750f){return _0x24c3e1['event']?operators[_0x4a6190['operator']](_0x4a6190[_0xfbb1('0x66')],_0x24c3e1[_0xfbb1('0x6b')]):![];}break;case _0xfbb1('0x57'):return _0x24c3e1[_0xfbb1('0x57')]?operators[_0x4a6190[_0xfbb1('0x65')]](_0x4a6190[_0xfbb1('0x66')],_0x24c3e1[_0xfbb1('0x57')]):![];case _0xfbb1('0x6c'):return _0x24c3e1[_0xfbb1('0x6c')]?operators[_0x4a6190['operator']](_0x4a6190['value'],_0x24c3e1[_0xfbb1('0x6c')]):![];case _0xfbb1('0x6d'):return _0x24c3e1[_0xfbb1('0x6d')]?operators[_0x4a6190['operator']](_0x4a6190[_0xfbb1('0x66')],_0x24c3e1['routeId']):![];}return![];};};module['exports']=Trigger;