Built motion from commit 87cd5f02.|2.5.48
[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 _0x8004=['equals','exports','util','lodash','mustache','ioredis','./urlforward','./cmContact','./script','../../../config/environment','trigger','../ami','redis','defaults','localhost','socket.io-emitter','popup','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:timeout','custom:dialbegin','custom:dialconnect','syncAgentDial','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','emit','stringify','prototype','clone','motionChannel','undefined','voice','checkTriggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','motionbar','browser','data1','TemplateId','data2','html','render','uri','buildUri','data3','isNil','uriLocation','data4','windowWidth','data5','800','windowHeight','data6','winArguments','user:%s','interface','name','trigger:%s:%s','action','toLowerCase','jscripty','format','trigger:%s','exec','integration','queue','urlforward','parse','query','search','channel','every','some','checkConditions','field','account','ChatWebsiteId','operator','AccountId','value','upperFirst','interaction','message','event','membername','lastevent','routeId','null','substatus','created'];(function(_0x29bde3,_0x932a0f){var _0x5c3dec=function(_0xc296b7){while(--_0xc296b7){_0x29bde3['push'](_0x29bde3['shift']());}};_0x5c3dec(++_0x932a0f);}(_0x8004,0x176));var _0x4800=function(_0x5059fb,_0x5de9ff){_0x5059fb=_0x5059fb-0x0;var _0x2ba580=_0x8004[_0x5059fb];return _0x2ba580;};'use strict';var util=require(_0x4800('0x0'));var _=require(_0x4800('0x1'));var url=require('url');var Mustache=require(_0x4800('0x2'));var Redis=require(_0x4800('0x3'));var urlforward=require(_0x4800('0x4'));var integration=require('./integration');var cmContact=require(_0x4800('0x5'));var script=require(_0x4800('0x6'));var config=require(_0x4800('0x7'));var logger=require('../../../config/logger')(_0x4800('0x8'));var ami=require(_0x4800('0x9'));config[_0x4800('0xa')]=_[_0x4800('0xb')](config[_0x4800('0xa')],{'host':_0x4800('0xc'),'port':0x18eb});var io=require(_0x4800('0xd'))(new Redis(config[_0x4800('0xa')]));var operators={'equals':function(_0x53e2bd,_0xb79395){return _0x53e2bd==_0xb79395;},'not_equals':function(_0x205a46,_0xb2f53c){return _0x205a46!=_0xb2f53c;}};var barAndWebActions=[_0x4800('0xe'),_0x4800('0xf'),_0x4800('0x10')];function Trigger(_0x583607){this[_0x4800('0x11')]=_0x583607['triggers'];this['agents']=_0x583607[_0x4800('0x12')];this[_0x4800('0x13')]=_0x583607[_0x4800('0x13')];this[_0x4800('0x14')]=_0x583607[_0x4800('0x14')];this[_0x4800('0x15')]=_0x583607[_0x4800('0x15')];this[_0x4800('0x16')]=_0x583607[_0x4800('0x16')];this[_0x4800('0x17')]=_0x583607[_0x4800('0x17')];this[_0x4800('0x18')]=_0x583607[_0x4800('0x18')];this[_0x4800('0x19')]=_0x583607[_0x4800('0x19')];this['zohoAccounts']=_0x583607[_0x4800('0x1a')];this[_0x4800('0x1b')]=_0x583607[_0x4800('0x1b')];this['vtigerAccounts']=_0x583607['vtigerAccounts'];this[_0x4800('0x1c')]=_0x583607[_0x4800('0x1c')];this[_0x4800('0x1d')]=_0x583607[_0x4800('0x1d')];this[_0x4800('0x1e')]=_0x583607[_0x4800('0x1e')];this[_0x4800('0x1f')]={'zendesk':this[_0x4800('0x16')],'salesforce':this['salesforceAccounts'],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0x4800('0x1a')],'desk':this[_0x4800('0x1b')],'vtiger':this['vtigerAccounts'],'dynamics365':this['dynamics365Accounts'],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x4800('0x1c')]};ami['on'](_0x4800('0x20'),this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on']('custom:agentconnect',this[_0x4800('0x21')]['bind'](this));ami['on']('custom:agentringnoanswer',this[_0x4800('0x21')]['bind'](this));ami['on'](_0x4800('0x23'),this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on'](_0x4800('0x24'),this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on'](_0x4800('0x25'),this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on'](_0x4800('0x26'),this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on'](_0x4800('0x27'),this[_0x4800('0x21')]['bind'](this));ami['on'](_0x4800('0x28'),this[_0x4800('0x21')]['bind'](this));ami['on'](_0x4800('0x29'),this['syncCustomEvent']['bind'](this));ami['on']('custom:queuecallerabandon',this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on'](_0x4800('0x2a'),this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on'](_0x4800('0x2b'),this['syncAgentDial'][_0x4800('0x22')](this));ami['on'](_0x4800('0x2c'),this[_0x4800('0x2d')]['bind'](this));ami['on']('custom:dialend',this[_0x4800('0x2d')][_0x4800('0x22')](this));ami['on'](_0x4800('0x2e'),this[_0x4800('0x21')]['bind'](this));ami['on'](_0x4800('0x2f'),this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on']('custom:substatus',this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on'](_0x4800('0x30'),this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on'](_0x4800('0x31'),this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on'](_0x4800('0x32'),this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on'](_0x4800('0x33'),this[_0x4800('0x21')][_0x4800('0x22')](this));ami['on']('custom:offlineMessage',this[_0x4800('0x21')]['bind'](this));}Trigger['prototype'][_0x4800('0x34')]=function(_0x338b6a,_0x2b43be,_0x3846ad){logger['info'](_0x338b6a,_0x2b43be,JSON[_0x4800('0x35')](_0x3846ad));io['to'](_0x338b6a)['emit'](_0x2b43be,_0x3846ad);};Trigger[_0x4800('0x36')][_0x4800('0x21')]=function(_0x583fd9){var _0x4df940=_[_0x4800('0x37')](_0x583fd9);if(typeof _0x4df940[_0x4800('0x38')]===_0x4800('0x39')){_0x4df940[_0x4800('0x38')]=_0x4800('0x3a');}this['checkTriggers'](_0x4df940);};Trigger[_0x4800('0x36')][_0x4800('0x2d')]=function(_0x44dd0b){if(this[_0x4800('0x12')][_0x44dd0b['interface']]){this[_0x4800('0x21')](_0x44dd0b);}};Trigger[_0x4800('0x36')][_0x4800('0x3b')]=function(_0x2ef531){var _0x5789ba;for(var _0x6a8e3f in this[_0x4800('0x11')]){if(this[_0x4800('0x11')][_0x4800('0x3c')](_0x6a8e3f)){if(this[_0x4800('0x11')][_0x6a8e3f][_0x4800('0x3d')]){_0x5789ba=this[_0x4800('0x3e')](this[_0x4800('0x11')][_0x6a8e3f],_0x2ef531);if(_0x5789ba){_[_0x4800('0x3f')](_0x2ef531,_0x2ef531[_0x4800('0x40')]);for(var _0x23ce7a=0x0,_0x5ea0eb,_0x4d8d1b,_0x2843f7;_0x23ce7a<this[_0x4800('0x11')][_0x6a8e3f][_0x4800('0x41')][_0x4800('0x42')];_0x23ce7a+=0x1){_0x5ea0eb=this[_0x4800('0x11')][_0x6a8e3f][_0x4800('0x41')][_0x23ce7a];if(this['agents'][_0x2ef531['interface']]){switch(_0x5ea0eb['action']['toLowerCase']()){case'contactmanager':break;case _0x4800('0x43'):case _0x4800('0x44'):var _0x1147d2={};switch(barAndWebActions[_0x5ea0eb[_0x4800('0x45')]]){case _0x4800('0xe'):_0x1147d2[_0x4800('0x46')]=_0x5ea0eb[_0x4800('0x47')];_0x1147d2[_0x4800('0x48')]=this[_0x4800('0x14')][_0x5ea0eb['data2']]?Mustache[_0x4800('0x49')](this['templates'][_0x5ea0eb[_0x4800('0x47')]][_0x4800('0x48')],_0x2ef531):'template\x20not\x20found';break;case _0x4800('0xf'):_0x1147d2[_0x4800('0x4a')]=this[_0x4800('0x4b')](_0x5ea0eb[_0x4800('0x47')],_0x2ef531,_['isNil'](_0x5ea0eb[_0x4800('0x4c')])?!![]:parseInt(_0x5ea0eb[_0x4800('0x4c')],0xa));if(_[_0x4800('0x4d')](_0x5ea0eb['data4'])){_0x1147d2['location']='0';}else{_0x1147d2[_0x4800('0x4e')]=_0x5ea0eb[_0x4800('0x4f')];_0x1147d2[_0x4800('0x50')]=_[_0x4800('0x4d')](_0x5ea0eb[_0x4800('0x51')])?_0x4800('0x52'):_0x5ea0eb[_0x4800('0x51')];_0x1147d2[_0x4800('0x53')]=_[_0x4800('0x4d')](_0x5ea0eb[_0x4800('0x54')])?'600':_0x5ea0eb[_0x4800('0x54')];}break;case _0x4800('0x10'):_0x1147d2['winApplication']=_0x5ea0eb[_0x4800('0x47')]?Mustache[_0x4800('0x49')](_0x5ea0eb[_0x4800('0x47')],_0x2ef531):'';_0x1147d2[_0x4800('0x55')]=_0x5ea0eb[_0x4800('0x4c')]?Mustache[_0x4800('0x49')](_0x5ea0eb[_0x4800('0x4c')],_0x2ef531):'';break;}this[_0x4800('0x34')](util['format'](_0x4800('0x56'),this[_0x4800('0x12')][_0x2ef531[_0x4800('0x57')]][_0x4800('0x58')]),util['format'](_0x4800('0x59'),_0x5ea0eb[_0x4800('0x5a')][_0x4800('0x5b')](),barAndWebActions[_0x5ea0eb[_0x4800('0x45')]]),_['merge'](_0x1147d2,_0x2ef531));break;case _0x4800('0x5c'):this[_0x4800('0x34')](util['format'](_0x4800('0x56'),this[_0x4800('0x12')][_0x2ef531[_0x4800('0x57')]]['name']),util[_0x4800('0x5d')](_0x4800('0x5e'),_0x5ea0eb[_0x4800('0x5a')][_0x4800('0x5b')]()),_[_0x4800('0x3f')]({'ProjectId':parseInt(_0x5ea0eb['data1'],0xa)},_0x2ef531));break;default:this[_0x4800('0x34')](util[_0x4800('0x5d')]('user:%s',this['agents'][_0x2ef531[_0x4800('0x57')]][_0x4800('0x58')]),util[_0x4800('0x5d')]('trigger:%s',_0x5ea0eb[_0x4800('0x5a')][_0x4800('0x5b')]()),_[_0x4800('0x3f')]({},_0x5ea0eb,_0x2ef531));}}switch(_0x5ea0eb[_0x4800('0x5a')][_0x4800('0x5b')]()){case'contactmanager':cmContact[_0x4800('0x5f')](this[_0x4800('0x12')][_0x2ef531['interface']],this['triggers'][_0x6a8e3f],_0x5ea0eb,_0x2ef531);break;case _0x4800('0x60'):integration[_0x4800('0x5f')](_0x5ea0eb,_0x2ef531,this['accounts'],this['agents'][_0x2ef531[_0x4800('0x57')]],this[_0x4800('0x13')][_0x2ef531[_0x4800('0x61')]],this[_0x4800('0x15')][_0x2ef531['routeId']]);break;case _0x4800('0x62'):urlforward[_0x4800('0x5f')](_0x5ea0eb,_0x2ef531);break;case'script':script[_0x4800('0x5f')](_0x5ea0eb,_0x2ef531);break;}}}}}}};Trigger[_0x4800('0x36')][_0x4800('0x4b')]=function(_0x133a89,_0x2f5061,_0x399813){var _0x217b47=url[_0x4800('0x63')](Mustache[_0x4800('0x49')](_0x133a89,_0x2f5061),!![]);if(_0x399813){_[_0x4800('0x3f')](_0x217b47[_0x4800('0x64')],_0x2f5061);}delete _0x217b47[_0x4800('0x65')];var _0x5286a6=url[_0x4800('0x5d')](_0x217b47);_0x5286a6=_0x5286a6['replace'](/\/\?/g,'?');return _0x5286a6;};Trigger['prototype']['checkTrigger']=function(_0x50ca42,_0x45d0a8){var _0x4e12bf=!![];var _0x190695=!![];var _0x554b53=![];if(_0x50ca42[_0x4800('0x66')]===_0x45d0a8[_0x4800('0x38')]){_0x554b53=!![];}if(_0x50ca42['AllConditions'][_0x4800('0x42')]){_0x4e12bf=_[_0x4800('0x67')](_0x50ca42['AllConditions'],this['checkConditions'](_0x45d0a8,_0x50ca42[_0x4800('0x66')]));}if(_0x50ca42['AnyConditions'][_0x4800('0x42')]){_0x190695=_[_0x4800('0x68')](_0x50ca42['AnyConditions'],this[_0x4800('0x69')](_0x45d0a8,_0x50ca42[_0x4800('0x66')]));}return _0x554b53&&_0x4e12bf&&_0x190695;};Trigger[_0x4800('0x36')][_0x4800('0x69')]=function(_0x3f40be,_0x5bdfd3){return function(_0x3a7b97){switch(_0x3a7b97[_0x4800('0x6a')]){case _0x4800('0x6b'):if(_0x3f40be['channel']===_0x5bdfd3){if(_0x5bdfd3==='chat'){return _0x3f40be[_0x4800('0x6c')]?operators[_0x3a7b97[_0x4800('0x6d')]](Number(_0x3a7b97['value']),_0x3f40be[_0x4800('0x6c')]):![];}else{return _0x3f40be[_['upperFirst'](_0x5bdfd3)+_0x4800('0x6e')]?operators[_0x3a7b97['operator']](Number(_0x3a7b97[_0x4800('0x6f')]),_0x3f40be[_[_0x4800('0x70')](_0x5bdfd3)+'AccountId']):![];}}break;case _0x4800('0x71'):case _0x4800('0x72'):if(_0x3f40be[_0x4800('0x66')]===_0x5bdfd3){return _0x3f40be[_0x4800('0x73')]?operators[_0x3a7b97[_0x4800('0x6d')]](_0x3a7b97['value'],_0x3f40be['event']):![];}break;case _0x4800('0x61'):return _0x3f40be['queue']?operators[_0x3a7b97[_0x4800('0x6d')]](_0x3a7b97['value'],_0x3f40be[_0x4800('0x61')]):![];case'agent':return _0x3f40be[_0x4800('0x74')]?operators[_0x3a7b97[_0x4800('0x6d')]](_0x3a7b97[_0x4800('0x6f')],_0x3f40be[_0x4800('0x74')]):![];case _0x4800('0x75'):return _0x3f40be['lastevent']?operators[_0x3a7b97[_0x4800('0x6d')]](_0x3a7b97[_0x4800('0x6f')],_0x3f40be[_0x4800('0x75')]):![];case'routeId':return _0x3f40be[_0x4800('0x76')]?operators[_0x3a7b97[_0x4800('0x6d')]](_0x3a7b97['value'],_0x3f40be[_0x4800('0x76')]):![];case'mailSubstatus':if(_0x3a7b97['value']===_0x4800('0x77'))_0x3a7b97[_0x4800('0x6f')]=null;return typeof _0x3f40be['substatus']!==_0x4800('0x39')?operators[_0x3a7b97[_0x4800('0x6d')]](_0x3a7b97[_0x4800('0x6f')],_0x3f40be[_0x4800('0x78')]):![];case'offlineMessage':if(_0x3f40be[_0x4800('0x66')]===_0x5bdfd3){return _0x3a7b97[_0x4800('0x6f')]===_0x4800('0x79')&&_0x3a7b97['operator']===_0x4800('0x7a')?!![]:![];}break;}return![];};};module[_0x4800('0x7b')]=Trigger;