Built motion from commit (unavailable).|2.5.15
[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 _0xf257=['some','channel','chat','ChatWebsiteId','operator','AccountId','value','upperFirst','interaction','event','agent','membername','lastevent','exports','url','mustache','ioredis','./urlforward','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','popup','triggers','agents','voiceQueues','templates','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','stringify','clone','interface','checkTriggers','status','checkTrigger','merge','Actions','length','action','toLowerCase','contactmanager','motionbar','browser','data1','html','data2','render','template\x20not\x20found','uri','buildUri','isNil','data4','uriLocation','windowWidth','data5','800','windowHeight','600','data6','winapp','winApplication','data3','format','user:%s','name','trigger:%s:%s','jscripty','trigger:%s','integration','exec','queue','routeId','parse','replace','AllConditions','every','checkConditions','AnyConditions'];(function(_0x24f75b,_0x8b108c){var _0x1eb17a=function(_0x131645){while(--_0x131645){_0x24f75b['push'](_0x24f75b['shift']());}};_0x1eb17a(++_0x8b108c);}(_0xf257,0x82));var _0x7f25=function(_0x2af655,_0x43eac3){_0x2af655=_0x2af655-0x0;var _0x54380a=_0xf257[_0x2af655];return _0x54380a;};'use strict';var util=require('util');var _=require('lodash');var url=require(_0x7f25('0x0'));var Mustache=require(_0x7f25('0x1'));var Redis=require(_0x7f25('0x2'));var urlforward=require(_0x7f25('0x3'));var integration=require('./integration');var cmContact=require(_0x7f25('0x4'));var script=require(_0x7f25('0x5'));var config=require(_0x7f25('0x6'));var logger=require(_0x7f25('0x7'))(_0x7f25('0x8'));var ami=require(_0x7f25('0x9'));config[_0x7f25('0xa')]=_[_0x7f25('0xb')](config[_0x7f25('0xa')],{'host':_0x7f25('0xc'),'port':0x18eb});var io=require(_0x7f25('0xd'))(new Redis(config[_0x7f25('0xa')]));var operators={'equals':function(_0x245602,_0xd7da73){return _0x245602==_0xd7da73;},'not_equals':function(_0x57ba17,_0x1b9268){return _0x57ba17!=_0x1b9268;}};var barAndWebActions=[_0x7f25('0xe'),'url','winapp'];function Trigger(_0x26a033){this['triggers']=_0x26a033[_0x7f25('0xf')];this[_0x7f25('0x10')]=_0x26a033[_0x7f25('0x10')];this[_0x7f25('0x11')]=_0x26a033[_0x7f25('0x11')];this[_0x7f25('0x12')]=_0x26a033[_0x7f25('0x12')];this['voiceExtensions']=_0x26a033['voiceExtensions'];this[_0x7f25('0x13')]=_0x26a033['zendeskAccounts'];this[_0x7f25('0x14')]=_0x26a033[_0x7f25('0x14')];this[_0x7f25('0x15')]=_0x26a033[_0x7f25('0x15')];this[_0x7f25('0x16')]=_0x26a033['sugarcrmAccounts'];this['zohoAccounts']=_0x26a033['zohoAccounts'];this[_0x7f25('0x17')]=_0x26a033[_0x7f25('0x17')];this[_0x7f25('0x18')]=_0x26a033[_0x7f25('0x18')];this[_0x7f25('0x19')]=_0x26a033[_0x7f25('0x19')];this[_0x7f25('0x1a')]=_0x26a033[_0x7f25('0x1a')];this['freshsalesAccounts']=_0x26a033[_0x7f25('0x1b')];this[_0x7f25('0x1c')]={'zendesk':this[_0x7f25('0x13')],'salesforce':this[_0x7f25('0x15')],'freshdesk':this[_0x7f25('0x14')],'sugarcrm':this[_0x7f25('0x16')],'zoho':this['zohoAccounts'],'desk':this['deskAccounts'],'vtiger':this[_0x7f25('0x18')],'dynamics365':this[_0x7f25('0x1a')],'freshsales':this[_0x7f25('0x1b')],'servicenow':this[_0x7f25('0x19')]};ami['on'](_0x7f25('0x1d'),this[_0x7f25('0x1e')][_0x7f25('0x1f')](this));ami['on'](_0x7f25('0x20'),this[_0x7f25('0x1e')]['bind'](this));ami['on'](_0x7f25('0x21'),this[_0x7f25('0x1e')][_0x7f25('0x1f')](this));ami['on'](_0x7f25('0x22'),this[_0x7f25('0x1e')]['bind'](this));ami['on'](_0x7f25('0x23'),this[_0x7f25('0x1e')][_0x7f25('0x1f')](this));ami['on']('custom:agentnoanswer',this[_0x7f25('0x1e')]['bind'](this));ami['on'](_0x7f25('0x24'),this[_0x7f25('0x1e')][_0x7f25('0x1f')](this));ami['on'](_0x7f25('0x25'),this[_0x7f25('0x1e')][_0x7f25('0x1f')](this));ami['on'](_0x7f25('0x26'),this[_0x7f25('0x1e')][_0x7f25('0x1f')](this));ami['on'](_0x7f25('0x27'),this['syncCustomEvent']['bind'](this));ami['on'](_0x7f25('0x28'),this[_0x7f25('0x1e')]['bind'](this));ami['on'](_0x7f25('0x29'),this[_0x7f25('0x2a')][_0x7f25('0x1f')](this));ami['on'](_0x7f25('0x2b'),this[_0x7f25('0x2a')][_0x7f25('0x1f')](this));ami['on']('custom:dialend',this[_0x7f25('0x2a')]['bind'](this));ami['on'](_0x7f25('0x2c'),this['syncCustomEvent'][_0x7f25('0x1f')](this));ami['on'](_0x7f25('0x2d'),this[_0x7f25('0x1e')]['bind'](this));ami['on'](_0x7f25('0x2e'),this[_0x7f25('0x1e')][_0x7f25('0x1f')](this));ami['on'](_0x7f25('0x2f'),this[_0x7f25('0x1e')][_0x7f25('0x1f')](this));ami['on'](_0x7f25('0x30'),this[_0x7f25('0x1e')]['bind'](this));ami['on'](_0x7f25('0x31'),this[_0x7f25('0x1e')][_0x7f25('0x1f')](this));}Trigger[_0x7f25('0x32')][_0x7f25('0x33')]=function(_0x560d88,_0x4cc461,_0x56ac18){logger[_0x7f25('0x34')](_0x560d88,_0x4cc461,JSON[_0x7f25('0x35')](_0x56ac18));io['to'](_0x560d88)[_0x7f25('0x33')](_0x4cc461,_0x56ac18);};Trigger['prototype'][_0x7f25('0x1e')]=function(_0x152e4b){var _0x4ed4e3=_[_0x7f25('0x36')](_0x152e4b);this['checkTriggers'](_0x4ed4e3);};Trigger[_0x7f25('0x32')][_0x7f25('0x2a')]=function(_0x4b4478){if(this[_0x7f25('0x10')][_0x4b4478[_0x7f25('0x37')]]){this[_0x7f25('0x1e')](_0x4b4478);}};Trigger[_0x7f25('0x32')][_0x7f25('0x38')]=function(_0x217b73){var _0x4b4a23;for(var _0x1a4118 in this[_0x7f25('0xf')]){if(this[_0x7f25('0xf')]['hasOwnProperty'](_0x1a4118)){if(this[_0x7f25('0xf')][_0x1a4118][_0x7f25('0x39')]){_0x4b4a23=this[_0x7f25('0x3a')](this[_0x7f25('0xf')][_0x1a4118],_0x217b73);if(_0x4b4a23){_[_0x7f25('0x3b')](_0x217b73,_0x217b73['variables']);for(var _0x4429b2=0x0,_0x1d2a06,_0x8a1083,_0x26031b;_0x4429b2<this[_0x7f25('0xf')][_0x1a4118][_0x7f25('0x3c')][_0x7f25('0x3d')];_0x4429b2+=0x1){_0x1d2a06=this[_0x7f25('0xf')][_0x1a4118]['Actions'][_0x4429b2];if(this[_0x7f25('0x10')][_0x217b73['interface']]){switch(_0x1d2a06[_0x7f25('0x3e')][_0x7f25('0x3f')]()){case _0x7f25('0x40'):break;case _0x7f25('0x41'):case _0x7f25('0x42'):var _0x564d94={};switch(barAndWebActions[_0x1d2a06[_0x7f25('0x43')]]){case'popup':_0x564d94['TemplateId']=_0x1d2a06['data2'];_0x564d94[_0x7f25('0x44')]=this['templates'][_0x1d2a06[_0x7f25('0x45')]]?Mustache[_0x7f25('0x46')](this[_0x7f25('0x12')][_0x1d2a06['data2']]['html'],_0x217b73):_0x7f25('0x47');break;case _0x7f25('0x0'):_0x564d94[_0x7f25('0x48')]=this[_0x7f25('0x49')](_0x1d2a06['data2'],_0x217b73,_[_0x7f25('0x4a')](_0x1d2a06['data3'])?!![]:parseInt(_0x1d2a06['data3'],0xa));if(_['isNil'](_0x1d2a06[_0x7f25('0x4b')])){_0x564d94['location']='0';}else{_0x564d94[_0x7f25('0x4c')]=_0x1d2a06[_0x7f25('0x4b')];_0x564d94[_0x7f25('0x4d')]=_[_0x7f25('0x4a')](_0x1d2a06[_0x7f25('0x4e')])?_0x7f25('0x4f'):_0x1d2a06['data5'];_0x564d94[_0x7f25('0x50')]=_['isNil'](_0x1d2a06['data6'])?_0x7f25('0x51'):_0x1d2a06[_0x7f25('0x52')];}break;case _0x7f25('0x53'):_0x564d94[_0x7f25('0x54')]=_0x1d2a06[_0x7f25('0x45')]?Mustache[_0x7f25('0x46')](_0x1d2a06[_0x7f25('0x45')],_0x217b73):'';_0x564d94['winArguments']=_0x1d2a06['data3']?Mustache[_0x7f25('0x46')](_0x1d2a06[_0x7f25('0x55')],_0x217b73):'';break;}this['emit'](util[_0x7f25('0x56')](_0x7f25('0x57'),this[_0x7f25('0x10')][_0x217b73['interface']][_0x7f25('0x58')]),util['format'](_0x7f25('0x59'),_0x1d2a06[_0x7f25('0x3e')][_0x7f25('0x3f')](),barAndWebActions[_0x1d2a06['data1']]),_[_0x7f25('0x3b')](_0x564d94,_0x217b73));break;case _0x7f25('0x5a'):this[_0x7f25('0x33')](util[_0x7f25('0x56')]('user:%s',this[_0x7f25('0x10')][_0x217b73[_0x7f25('0x37')]][_0x7f25('0x58')]),util['format'](_0x7f25('0x5b'),_0x1d2a06['action']['toLowerCase']()),_['merge']({'ProjectId':parseInt(_0x1d2a06['data1'],0xa)},_0x217b73));break;default:this['emit'](util[_0x7f25('0x56')](_0x7f25('0x57'),this[_0x7f25('0x10')][_0x217b73[_0x7f25('0x37')]]['name']),util[_0x7f25('0x56')](_0x7f25('0x5b'),_0x1d2a06[_0x7f25('0x3e')][_0x7f25('0x3f')]()),_['merge']({},_0x1d2a06,_0x217b73));}}switch(_0x1d2a06[_0x7f25('0x3e')][_0x7f25('0x3f')]()){case _0x7f25('0x40'):cmContact['exec'](this['agents'][_0x217b73[_0x7f25('0x37')]],this[_0x7f25('0xf')][_0x1a4118],_0x1d2a06,_0x217b73);break;case _0x7f25('0x5c'):integration[_0x7f25('0x5d')](_0x1d2a06,_0x217b73,this['accounts'],this[_0x7f25('0x10')][_0x217b73['interface']],this[_0x7f25('0x11')][_0x217b73[_0x7f25('0x5e')]],this['voiceExtensions'][_0x217b73[_0x7f25('0x5f')]]);break;case'urlforward':urlforward[_0x7f25('0x5d')](_0x1d2a06,_0x217b73);break;case'script':script['exec'](_0x1d2a06,_0x217b73);break;}}}}}}};Trigger['prototype'][_0x7f25('0x49')]=function(_0xe6598d,_0x4f4ec5,_0x27e6c3){var _0x3e7826=url[_0x7f25('0x60')](Mustache['render'](_0xe6598d,_0x4f4ec5),!![]);if(_0x27e6c3){_['merge'](_0x3e7826['query'],_0x4f4ec5);}delete _0x3e7826['search'];var _0x2631ed=url[_0x7f25('0x56')](_0x3e7826);_0x2631ed=_0x2631ed[_0x7f25('0x61')](/\/\?/g,'?');return _0x2631ed;};Trigger[_0x7f25('0x32')][_0x7f25('0x3a')]=function(_0x3ae219,_0x242911){var _0x3638ce=!![],_0x9f1c53=!![];if(_0x3ae219[_0x7f25('0x62')][_0x7f25('0x3d')]){_0x3638ce=_[_0x7f25('0x63')](_0x3ae219[_0x7f25('0x62')],this[_0x7f25('0x64')](_0x242911,_0x3ae219['channel']));}if(_0x3ae219[_0x7f25('0x65')][_0x7f25('0x3d')]){_0x9f1c53=_[_0x7f25('0x66')](_0x3ae219['AnyConditions'],this[_0x7f25('0x64')](_0x242911,_0x3ae219[_0x7f25('0x67')]));}return _0x3638ce&&_0x9f1c53;};Trigger[_0x7f25('0x32')]['checkConditions']=function(_0x5d3659,_0x321557){return function(_0x59923c){switch(_0x59923c['field']){case'account':if(_0x5d3659[_0x7f25('0x67')]===_0x321557){if(_0x321557===_0x7f25('0x68')){return _0x5d3659[_0x7f25('0x69')]?operators[_0x59923c[_0x7f25('0x6a')]](Number(_0x59923c['value']),_0x5d3659[_0x7f25('0x69')]):![];}else{return _0x5d3659[_['upperFirst'](_0x321557)+_0x7f25('0x6b')]?operators[_0x59923c[_0x7f25('0x6a')]](Number(_0x59923c[_0x7f25('0x6c')]),_0x5d3659[_[_0x7f25('0x6d')](_0x321557)+_0x7f25('0x6b')]):![];}}break;case _0x7f25('0x6e'):case'message':if(_0x5d3659[_0x7f25('0x67')]===_0x321557){return _0x5d3659[_0x7f25('0x6f')]?operators[_0x59923c[_0x7f25('0x6a')]](_0x59923c[_0x7f25('0x6c')],_0x5d3659[_0x7f25('0x6f')]):![];}break;case _0x7f25('0x5e'):return _0x5d3659['queue']?operators[_0x59923c['operator']](_0x59923c['value'],_0x5d3659[_0x7f25('0x5e')]):![];case _0x7f25('0x70'):return _0x5d3659[_0x7f25('0x71')]?operators[_0x59923c['operator']](_0x59923c[_0x7f25('0x6c')],_0x5d3659['membername']):![];case _0x7f25('0x72'):return _0x5d3659['lastevent']?operators[_0x59923c[_0x7f25('0x6a')]](_0x59923c['value'],_0x5d3659[_0x7f25('0x72')]):![];case _0x7f25('0x5f'):return _0x5d3659[_0x7f25('0x5f')]?operators[_0x59923c[_0x7f25('0x6a')]](_0x59923c[_0x7f25('0x6c')],_0x5d3659[_0x7f25('0x5f')]):![];}return![];};};module[_0x7f25('0x73')]=Trigger;