Built motion from commit (unavailable).|2.5.14
[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 _0xf2ac=['name','trigger:%s:%s','toLowerCase','merge','user:%s','trigger:%s','exec','queue','urlforward','script','query','checkTrigger','AllConditions','every','checkConditions','AnyConditions','some','account','channel','ChatWebsiteId','value','upperFirst','AccountId','operator','interaction','message','event','agent','lastevent','routeId','exports','util','mustache','./urlforward','./integration','./cmContact','../../../config/environment','../../../config/logger','trigger','../ami','defaults','redis','localhost','socket.io-emitter','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','sugarcrmAccounts','syncCustomEvent','bind','custom:agentconnect','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:rejectmessage','prototype','info','emit','clone','checkTriggers','hasOwnProperty','variables','Actions','length','interface','action','contactmanager','motionbar','data1','popup','TemplateId','html','render','data2','template\x20not\x20found','buildUri','isNil','data4','location','uriLocation','windowWidth','data5','800','windowHeight','data6','600','winApplication','winArguments','data3','format'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0xf2ac,0x91));var _0xcf2a=function(_0x5b82b7,_0x3c184d){_0x5b82b7=_0x5b82b7-0x0;var _0x3cccc=_0xf2ac[_0x5b82b7];return _0x3cccc;};'use strict';var util=require(_0xcf2a('0x0'));var _=require('lodash');var url=require('url');var Mustache=require(_0xcf2a('0x1'));var Redis=require('ioredis');var urlforward=require(_0xcf2a('0x2'));var integration=require(_0xcf2a('0x3'));var cmContact=require(_0xcf2a('0x4'));var script=require('./script');var config=require(_0xcf2a('0x5'));var logger=require(_0xcf2a('0x6'))(_0xcf2a('0x7'));var ami=require(_0xcf2a('0x8'));config['redis']=_[_0xcf2a('0x9')](config[_0xcf2a('0xa')],{'host':_0xcf2a('0xb'),'port':0x18eb});var io=require(_0xcf2a('0xc'))(new Redis(config['redis']));var operators={'equals':function(_0x317781,_0x2b2472){return _0x317781==_0x2b2472;},'not_equals':function(_0x3aa3b0,_0x580d6b){return _0x3aa3b0!=_0x580d6b;}};var barAndWebActions=['popup',_0xcf2a('0xd'),_0xcf2a('0xe')];function Trigger(_0x495c89){this[_0xcf2a('0xf')]=_0x495c89['triggers'];this[_0xcf2a('0x10')]=_0x495c89[_0xcf2a('0x10')];this[_0xcf2a('0x11')]=_0x495c89['voiceQueues'];this[_0xcf2a('0x12')]=_0x495c89[_0xcf2a('0x12')];this[_0xcf2a('0x13')]=_0x495c89['voiceExtensions'];this[_0xcf2a('0x14')]=_0x495c89[_0xcf2a('0x14')];this[_0xcf2a('0x15')]=_0x495c89[_0xcf2a('0x15')];this['salesforceAccounts']=_0x495c89[_0xcf2a('0x16')];this['sugarcrmAccounts']=_0x495c89['sugarcrmAccounts'];this[_0xcf2a('0x17')]=_0x495c89[_0xcf2a('0x17')];this[_0xcf2a('0x18')]=_0x495c89[_0xcf2a('0x18')];this[_0xcf2a('0x19')]=_0x495c89[_0xcf2a('0x19')];this['servicenowAccounts']=_0x495c89[_0xcf2a('0x1a')];this[_0xcf2a('0x1b')]=_0x495c89[_0xcf2a('0x1b')];this['freshsalesAccounts']=_0x495c89[_0xcf2a('0x1c')];this['accounts']={'zendesk':this[_0xcf2a('0x14')],'salesforce':this[_0xcf2a('0x16')],'freshdesk':this[_0xcf2a('0x15')],'sugarcrm':this[_0xcf2a('0x1d')],'zoho':this[_0xcf2a('0x17')],'desk':this[_0xcf2a('0x18')],'vtiger':this[_0xcf2a('0x19')],'dynamics365':this[_0xcf2a('0x1b')],'freshsales':this[_0xcf2a('0x1c')],'servicenow':this[_0xcf2a('0x1a')]};ami['on']('custom:agentcalled',this[_0xcf2a('0x1e')][_0xcf2a('0x1f')](this));ami['on'](_0xcf2a('0x20'),this[_0xcf2a('0x1e')]['bind'](this));ami['on']('custom:agentringnoanswer',this[_0xcf2a('0x1e')]['bind'](this));ami['on'](_0xcf2a('0x21'),this['syncCustomEvent'][_0xcf2a('0x1f')](this));ami['on'](_0xcf2a('0x22'),this[_0xcf2a('0x1e')][_0xcf2a('0x1f')](this));ami['on'](_0xcf2a('0x23'),this[_0xcf2a('0x1e')][_0xcf2a('0x1f')](this));ami['on'](_0xcf2a('0x24'),this['syncCustomEvent'][_0xcf2a('0x1f')](this));ami['on']('custom:agentcongestion',this['syncCustomEvent'][_0xcf2a('0x1f')](this));ami['on'](_0xcf2a('0x25'),this[_0xcf2a('0x1e')][_0xcf2a('0x1f')](this));ami['on'](_0xcf2a('0x26'),this[_0xcf2a('0x1e')][_0xcf2a('0x1f')](this));ami['on'](_0xcf2a('0x27'),this[_0xcf2a('0x1e')]['bind'](this));ami['on'](_0xcf2a('0x28'),this[_0xcf2a('0x29')]['bind'](this));ami['on'](_0xcf2a('0x2a'),this[_0xcf2a('0x29')][_0xcf2a('0x1f')](this));ami['on'](_0xcf2a('0x2b'),this[_0xcf2a('0x29')]['bind'](this));ami['on'](_0xcf2a('0x2c'),this[_0xcf2a('0x1e')][_0xcf2a('0x1f')](this));ami['on'](_0xcf2a('0x2d'),this['syncCustomEvent'][_0xcf2a('0x1f')](this));ami['on'](_0xcf2a('0x2e'),this[_0xcf2a('0x1e')][_0xcf2a('0x1f')](this));ami['on']('custom:outgoingmessage',this[_0xcf2a('0x1e')][_0xcf2a('0x1f')](this));ami['on']('custom:acceptmessage',this[_0xcf2a('0x1e')][_0xcf2a('0x1f')](this));ami['on'](_0xcf2a('0x2f'),this[_0xcf2a('0x1e')][_0xcf2a('0x1f')](this));}Trigger[_0xcf2a('0x30')]['emit']=function(_0x4c1a73,_0x49d862,_0x40e921){logger[_0xcf2a('0x31')](_0x4c1a73,_0x49d862,JSON['stringify'](_0x40e921));io['to'](_0x4c1a73)[_0xcf2a('0x32')](_0x49d862,_0x40e921);};Trigger[_0xcf2a('0x30')][_0xcf2a('0x1e')]=function(_0x11c79e){var _0x386d35=_[_0xcf2a('0x33')](_0x11c79e);this[_0xcf2a('0x34')](_0x386d35);};Trigger[_0xcf2a('0x30')]['syncAgentDial']=function(_0xe4958f){if(this[_0xcf2a('0x10')][_0xe4958f['interface']]){this[_0xcf2a('0x1e')](_0xe4958f);}};Trigger[_0xcf2a('0x30')][_0xcf2a('0x34')]=function(_0x5b1ba1){var _0x54d925;for(var _0x46e5eb in this[_0xcf2a('0xf')]){if(this['triggers'][_0xcf2a('0x35')](_0x46e5eb)){if(this[_0xcf2a('0xf')][_0x46e5eb]['status']){_0x54d925=this['checkTrigger'](this[_0xcf2a('0xf')][_0x46e5eb],_0x5b1ba1);if(_0x54d925){_['merge'](_0x5b1ba1,_0x5b1ba1[_0xcf2a('0x36')]);for(var _0x2818c8=0x0,_0x306497,_0x59728f,_0x23d388;_0x2818c8<this[_0xcf2a('0xf')][_0x46e5eb][_0xcf2a('0x37')][_0xcf2a('0x38')];_0x2818c8+=0x1){_0x306497=this[_0xcf2a('0xf')][_0x46e5eb][_0xcf2a('0x37')][_0x2818c8];if(this[_0xcf2a('0x10')][_0x5b1ba1[_0xcf2a('0x39')]]){switch(_0x306497[_0xcf2a('0x3a')]['toLowerCase']()){case _0xcf2a('0x3b'):break;case _0xcf2a('0x3c'):case'browser':var _0x4a40a9={};switch(barAndWebActions[_0x306497[_0xcf2a('0x3d')]]){case _0xcf2a('0x3e'):_0x4a40a9[_0xcf2a('0x3f')]=_0x306497['data2'];_0x4a40a9[_0xcf2a('0x40')]=this[_0xcf2a('0x12')][_0x306497['data2']]?Mustache[_0xcf2a('0x41')](this['templates'][_0x306497[_0xcf2a('0x42')]]['html'],_0x5b1ba1):_0xcf2a('0x43');break;case _0xcf2a('0xd'):_0x4a40a9['uri']=this[_0xcf2a('0x44')](_0x306497['data2'],_0x5b1ba1,_[_0xcf2a('0x45')](_0x306497['data3'])?!![]:parseInt(_0x306497['data3'],0xa));if(_[_0xcf2a('0x45')](_0x306497[_0xcf2a('0x46')])){_0x4a40a9[_0xcf2a('0x47')]='0';}else{_0x4a40a9[_0xcf2a('0x48')]=_0x306497[_0xcf2a('0x46')];_0x4a40a9[_0xcf2a('0x49')]=_[_0xcf2a('0x45')](_0x306497[_0xcf2a('0x4a')])?_0xcf2a('0x4b'):_0x306497[_0xcf2a('0x4a')];_0x4a40a9[_0xcf2a('0x4c')]=_[_0xcf2a('0x45')](_0x306497[_0xcf2a('0x4d')])?_0xcf2a('0x4e'):_0x306497[_0xcf2a('0x4d')];}break;case'winapp':_0x4a40a9[_0xcf2a('0x4f')]=_0x306497['data2']?Mustache['render'](_0x306497[_0xcf2a('0x42')],_0x5b1ba1):'';_0x4a40a9[_0xcf2a('0x50')]=_0x306497[_0xcf2a('0x51')]?Mustache['render'](_0x306497[_0xcf2a('0x51')],_0x5b1ba1):'';break;}this[_0xcf2a('0x32')](util[_0xcf2a('0x52')]('user:%s',this['agents'][_0x5b1ba1[_0xcf2a('0x39')]][_0xcf2a('0x53')]),util[_0xcf2a('0x52')](_0xcf2a('0x54'),_0x306497['action'][_0xcf2a('0x55')](),barAndWebActions[_0x306497[_0xcf2a('0x3d')]]),_[_0xcf2a('0x56')](_0x4a40a9,_0x5b1ba1));break;case'jscripty':this[_0xcf2a('0x32')](util[_0xcf2a('0x52')](_0xcf2a('0x57'),this['agents'][_0x5b1ba1['interface']][_0xcf2a('0x53')]),util[_0xcf2a('0x52')](_0xcf2a('0x58'),_0x306497['action'][_0xcf2a('0x55')]()),_[_0xcf2a('0x56')]({'ProjectId':parseInt(_0x306497[_0xcf2a('0x3d')],0xa)},_0x5b1ba1));break;default:this[_0xcf2a('0x32')](util['format'](_0xcf2a('0x57'),this[_0xcf2a('0x10')][_0x5b1ba1[_0xcf2a('0x39')]][_0xcf2a('0x53')]),util[_0xcf2a('0x52')](_0xcf2a('0x58'),_0x306497[_0xcf2a('0x3a')][_0xcf2a('0x55')]()),_[_0xcf2a('0x56')]({},_0x306497,_0x5b1ba1));}}switch(_0x306497[_0xcf2a('0x3a')]['toLowerCase']()){case _0xcf2a('0x3b'):cmContact[_0xcf2a('0x59')](this[_0xcf2a('0x10')][_0x5b1ba1[_0xcf2a('0x39')]],this[_0xcf2a('0xf')][_0x46e5eb],_0x306497,_0x5b1ba1);break;case'integration':integration[_0xcf2a('0x59')](_0x306497,_0x5b1ba1,this['accounts'],this[_0xcf2a('0x10')][_0x5b1ba1['interface']],this[_0xcf2a('0x11')][_0x5b1ba1[_0xcf2a('0x5a')]],this['voiceExtensions'][_0x5b1ba1['routeId']]);break;case _0xcf2a('0x5b'):urlforward[_0xcf2a('0x59')](_0x306497,_0x5b1ba1);break;case _0xcf2a('0x5c'):script[_0xcf2a('0x59')](_0x306497,_0x5b1ba1);break;}}}}}}};Trigger[_0xcf2a('0x30')][_0xcf2a('0x44')]=function(_0x8493d7,_0x14a663,_0x358b56){var _0x4ef2ca=url['parse'](Mustache[_0xcf2a('0x41')](_0x8493d7,_0x14a663),!![]);if(_0x358b56){_[_0xcf2a('0x56')](_0x4ef2ca[_0xcf2a('0x5d')],_0x14a663);}delete _0x4ef2ca['search'];var _0xb6c9b9=url[_0xcf2a('0x52')](_0x4ef2ca);_0xb6c9b9=_0xb6c9b9['replace'](/\/\?/g,'?');return _0xb6c9b9;};Trigger[_0xcf2a('0x30')][_0xcf2a('0x5e')]=function(_0x421069,_0x4ac4f0){var _0x37c8ac=!![],_0x26ad1c=!![];if(_0x421069[_0xcf2a('0x5f')]['length']){_0x37c8ac=_[_0xcf2a('0x60')](_0x421069[_0xcf2a('0x5f')],this[_0xcf2a('0x61')](_0x4ac4f0,_0x421069['channel']));}if(_0x421069[_0xcf2a('0x62')][_0xcf2a('0x38')]){_0x26ad1c=_[_0xcf2a('0x63')](_0x421069['AnyConditions'],this['checkConditions'](_0x4ac4f0,_0x421069['channel']));}return _0x37c8ac&&_0x26ad1c;};Trigger[_0xcf2a('0x30')][_0xcf2a('0x61')]=function(_0x5d82a9,_0x42a027){return function(_0x52eca2){switch(_0x52eca2['field']){case _0xcf2a('0x64'):if(_0x5d82a9[_0xcf2a('0x65')]===_0x42a027){if(_0x42a027==='chat'){return _0x5d82a9[_0xcf2a('0x66')]?operators[_0x52eca2['operator']](Number(_0x52eca2[_0xcf2a('0x67')]),_0x5d82a9['ChatWebsiteId']):![];}else{return _0x5d82a9[_[_0xcf2a('0x68')](_0x42a027)+_0xcf2a('0x69')]?operators[_0x52eca2[_0xcf2a('0x6a')]](Number(_0x52eca2[_0xcf2a('0x67')]),_0x5d82a9[_[_0xcf2a('0x68')](_0x42a027)+_0xcf2a('0x69')]):![];}}break;case _0xcf2a('0x6b'):case _0xcf2a('0x6c'):if(_0x5d82a9[_0xcf2a('0x65')]===_0x42a027){return _0x5d82a9[_0xcf2a('0x6d')]?operators[_0x52eca2[_0xcf2a('0x6a')]](_0x52eca2[_0xcf2a('0x67')],_0x5d82a9['event']):![];}break;case _0xcf2a('0x5a'):return _0x5d82a9[_0xcf2a('0x5a')]?operators[_0x52eca2[_0xcf2a('0x6a')]](_0x52eca2[_0xcf2a('0x67')],_0x5d82a9[_0xcf2a('0x5a')]):![];case _0xcf2a('0x6e'):return _0x5d82a9['membername']?operators[_0x52eca2['operator']](_0x52eca2['value'],_0x5d82a9['membername']):![];case'lastevent':return _0x5d82a9['lastevent']?operators[_0x52eca2[_0xcf2a('0x6a')]](_0x52eca2[_0xcf2a('0x67')],_0x5d82a9[_0xcf2a('0x6f')]):![];case'routeId':return _0x5d82a9[_0xcf2a('0x70')]?operators[_0x52eca2['operator']](_0x52eca2['value'],_0x5d82a9[_0xcf2a('0x70')]):![];}return![];};};module[_0xcf2a('0x71')]=Trigger;