Built motion from commit (unavailable).|2.5.21
[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 _0x0a4b=['../../../config/environment','../../../config/logger','trigger','redis','defaults','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentbusy','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','custom:dialconnect','syncAgentDial','custom:dialend','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','info','stringify','emit','checkTriggers','checkTrigger','merge','variables','Actions','length','interface','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','render','template\x20not\x20found','buildUri','isNil','data3','data4','location','uriLocation','windowWidth','data5','800','windowHeight','600','winApplication','format','user:%s','trigger:%s:%s','jscripty','name','trigger:%s','integration','queue','routeId','exec','script','search','replace','AllConditions','every','checkConditions','channel','AnyConditions','some','field','account','chat','operator','value','ChatWebsiteId','upperFirst','AccountId','message','event','agent','membername','lastevent','util','url','mustache','./script'];(function(_0x5c654b,_0x208da5){var _0x73d5f1=function(_0x161208){while(--_0x161208){_0x5c654b['push'](_0x5c654b['shift']());}};_0x73d5f1(++_0x208da5);}(_0x0a4b,0x6d));var _0xb0a4=function(_0x2db4a2,_0x2f9650){_0x2db4a2=_0x2db4a2-0x0;var _0x4b2f52=_0x0a4b[_0x2db4a2];return _0x4b2f52;};'use strict';var util=require(_0xb0a4('0x0'));var _=require('lodash');var url=require(_0xb0a4('0x1'));var Mustache=require(_0xb0a4('0x2'));var Redis=require('ioredis');var urlforward=require('./urlforward');var integration=require('./integration');var cmContact=require('./cmContact');var script=require(_0xb0a4('0x3'));var config=require(_0xb0a4('0x4'));var logger=require(_0xb0a4('0x5'))(_0xb0a4('0x6'));var ami=require('../ami');config[_0xb0a4('0x7')]=_[_0xb0a4('0x8')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xb0a4('0x9'))(new Redis(config[_0xb0a4('0x7')]));var operators={'equals':function(_0x566163,_0x5bd59c){return _0x566163==_0x5bd59c;},'not_equals':function(_0x4e2ae8,_0x392cfd){return _0x4e2ae8!=_0x392cfd;}};var barAndWebActions=[_0xb0a4('0xa'),_0xb0a4('0x1'),_0xb0a4('0xb')];function Trigger(_0x5b9a42){this[_0xb0a4('0xc')]=_0x5b9a42[_0xb0a4('0xc')];this[_0xb0a4('0xd')]=_0x5b9a42[_0xb0a4('0xd')];this[_0xb0a4('0xe')]=_0x5b9a42['voiceQueues'];this[_0xb0a4('0xf')]=_0x5b9a42[_0xb0a4('0xf')];this['voiceExtensions']=_0x5b9a42[_0xb0a4('0x10')];this['zendeskAccounts']=_0x5b9a42[_0xb0a4('0x11')];this[_0xb0a4('0x12')]=_0x5b9a42['freshdeskAccounts'];this['salesforceAccounts']=_0x5b9a42[_0xb0a4('0x13')];this[_0xb0a4('0x14')]=_0x5b9a42[_0xb0a4('0x14')];this[_0xb0a4('0x15')]=_0x5b9a42['zohoAccounts'];this['deskAccounts']=_0x5b9a42[_0xb0a4('0x16')];this['vtigerAccounts']=_0x5b9a42[_0xb0a4('0x17')];this[_0xb0a4('0x18')]=_0x5b9a42[_0xb0a4('0x18')];this[_0xb0a4('0x19')]=_0x5b9a42['dynamics365Accounts'];this[_0xb0a4('0x1a')]=_0x5b9a42[_0xb0a4('0x1a')];this[_0xb0a4('0x1b')]={'zendesk':this[_0xb0a4('0x11')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0xb0a4('0x12')],'sugarcrm':this[_0xb0a4('0x14')],'zoho':this[_0xb0a4('0x15')],'desk':this['deskAccounts'],'vtiger':this[_0xb0a4('0x17')],'dynamics365':this[_0xb0a4('0x19')],'freshsales':this[_0xb0a4('0x1a')],'servicenow':this[_0xb0a4('0x18')]};ami['on'](_0xb0a4('0x1c'),this[_0xb0a4('0x1d')][_0xb0a4('0x1e')](this));ami['on'](_0xb0a4('0x1f'),this[_0xb0a4('0x1d')]['bind'](this));ami['on'](_0xb0a4('0x20'),this[_0xb0a4('0x1d')]['bind'](this));ami['on'](_0xb0a4('0x21'),this['syncCustomEvent'][_0xb0a4('0x1e')](this));ami['on']('custom:agentnosuchnumber',this[_0xb0a4('0x1d')][_0xb0a4('0x1e')](this));ami['on']('custom:agentnoanswer',this[_0xb0a4('0x1d')]['bind'](this));ami['on'](_0xb0a4('0x22'),this[_0xb0a4('0x1d')][_0xb0a4('0x1e')](this));ami['on']('custom:agentcongestion',this[_0xb0a4('0x1d')]['bind'](this));ami['on'](_0xb0a4('0x23'),this[_0xb0a4('0x1d')][_0xb0a4('0x1e')](this));ami['on'](_0xb0a4('0x24'),this[_0xb0a4('0x1d')][_0xb0a4('0x1e')](this));ami['on'](_0xb0a4('0x25'),this['syncCustomEvent']['bind'](this));ami['on'](_0xb0a4('0x26'),this['syncAgentDial'][_0xb0a4('0x1e')](this));ami['on'](_0xb0a4('0x27'),this[_0xb0a4('0x28')]['bind'](this));ami['on'](_0xb0a4('0x29'),this['syncAgentDial']['bind'](this));ami['on']('custom:newinteraction',this[_0xb0a4('0x1d')][_0xb0a4('0x1e')](this));ami['on'](_0xb0a4('0x2a'),this[_0xb0a4('0x1d')][_0xb0a4('0x1e')](this));ami['on'](_0xb0a4('0x2b'),this[_0xb0a4('0x1d')][_0xb0a4('0x1e')](this));ami['on'](_0xb0a4('0x2c'),this['syncCustomEvent']['bind'](this));ami['on'](_0xb0a4('0x2d'),this[_0xb0a4('0x1d')]['bind'](this));ami['on'](_0xb0a4('0x2e'),this[_0xb0a4('0x1d')][_0xb0a4('0x1e')](this));}Trigger[_0xb0a4('0x2f')]['emit']=function(_0x4d4b8d,_0x1ebac3,_0x2645be){logger[_0xb0a4('0x30')](_0x4d4b8d,_0x1ebac3,JSON[_0xb0a4('0x31')](_0x2645be));io['to'](_0x4d4b8d)[_0xb0a4('0x32')](_0x1ebac3,_0x2645be);};Trigger['prototype']['syncCustomEvent']=function(_0x2b1e5c){var _0x7ecf61=_['clone'](_0x2b1e5c);this[_0xb0a4('0x33')](_0x7ecf61);};Trigger[_0xb0a4('0x2f')][_0xb0a4('0x28')]=function(_0x4708cb){if(this[_0xb0a4('0xd')][_0x4708cb['interface']]){this[_0xb0a4('0x1d')](_0x4708cb);}};Trigger['prototype'][_0xb0a4('0x33')]=function(_0x26de2e){var _0x3d513;for(var _0x4a6039 in this[_0xb0a4('0xc')]){if(this[_0xb0a4('0xc')]['hasOwnProperty'](_0x4a6039)){if(this[_0xb0a4('0xc')][_0x4a6039]['status']){_0x3d513=this[_0xb0a4('0x34')](this[_0xb0a4('0xc')][_0x4a6039],_0x26de2e);if(_0x3d513){_[_0xb0a4('0x35')](_0x26de2e,_0x26de2e[_0xb0a4('0x36')]);for(var _0x48182e=0x0,_0x1b50e0,_0x1dd4c9,_0x59b4c4;_0x48182e<this[_0xb0a4('0xc')][_0x4a6039][_0xb0a4('0x37')][_0xb0a4('0x38')];_0x48182e+=0x1){_0x1b50e0=this[_0xb0a4('0xc')][_0x4a6039]['Actions'][_0x48182e];if(this[_0xb0a4('0xd')][_0x26de2e[_0xb0a4('0x39')]]){switch(_0x1b50e0[_0xb0a4('0x3a')][_0xb0a4('0x3b')]()){case _0xb0a4('0x3c'):break;case _0xb0a4('0x3d'):case _0xb0a4('0x3e'):var _0x205db9={};switch(barAndWebActions[_0x1b50e0[_0xb0a4('0x3f')]]){case _0xb0a4('0xa'):_0x205db9[_0xb0a4('0x40')]=_0x1b50e0[_0xb0a4('0x41')];_0x205db9[_0xb0a4('0x42')]=this[_0xb0a4('0xf')][_0x1b50e0['data2']]?Mustache[_0xb0a4('0x43')](this[_0xb0a4('0xf')][_0x1b50e0[_0xb0a4('0x41')]][_0xb0a4('0x42')],_0x26de2e):_0xb0a4('0x44');break;case _0xb0a4('0x1'):_0x205db9['uri']=this[_0xb0a4('0x45')](_0x1b50e0['data2'],_0x26de2e,_[_0xb0a4('0x46')](_0x1b50e0[_0xb0a4('0x47')])?!![]:parseInt(_0x1b50e0[_0xb0a4('0x47')],0xa));if(_[_0xb0a4('0x46')](_0x1b50e0[_0xb0a4('0x48')])){_0x205db9[_0xb0a4('0x49')]='0';}else{_0x205db9[_0xb0a4('0x4a')]=_0x1b50e0['data4'];_0x205db9[_0xb0a4('0x4b')]=_[_0xb0a4('0x46')](_0x1b50e0[_0xb0a4('0x4c')])?_0xb0a4('0x4d'):_0x1b50e0[_0xb0a4('0x4c')];_0x205db9[_0xb0a4('0x4e')]=_['isNil'](_0x1b50e0['data6'])?_0xb0a4('0x4f'):_0x1b50e0['data6'];}break;case _0xb0a4('0xb'):_0x205db9[_0xb0a4('0x50')]=_0x1b50e0[_0xb0a4('0x41')]?Mustache['render'](_0x1b50e0[_0xb0a4('0x41')],_0x26de2e):'';_0x205db9['winArguments']=_0x1b50e0[_0xb0a4('0x47')]?Mustache[_0xb0a4('0x43')](_0x1b50e0['data3'],_0x26de2e):'';break;}this['emit'](util[_0xb0a4('0x51')](_0xb0a4('0x52'),this[_0xb0a4('0xd')][_0x26de2e[_0xb0a4('0x39')]]['name']),util['format'](_0xb0a4('0x53'),_0x1b50e0[_0xb0a4('0x3a')][_0xb0a4('0x3b')](),barAndWebActions[_0x1b50e0[_0xb0a4('0x3f')]]),_['merge'](_0x205db9,_0x26de2e));break;case _0xb0a4('0x54'):this[_0xb0a4('0x32')](util[_0xb0a4('0x51')]('user:%s',this[_0xb0a4('0xd')][_0x26de2e['interface']][_0xb0a4('0x55')]),util[_0xb0a4('0x51')](_0xb0a4('0x56'),_0x1b50e0['action'][_0xb0a4('0x3b')]()),_[_0xb0a4('0x35')]({'ProjectId':parseInt(_0x1b50e0[_0xb0a4('0x3f')],0xa)},_0x26de2e));break;default:this[_0xb0a4('0x32')](util['format'](_0xb0a4('0x52'),this[_0xb0a4('0xd')][_0x26de2e[_0xb0a4('0x39')]][_0xb0a4('0x55')]),util[_0xb0a4('0x51')](_0xb0a4('0x56'),_0x1b50e0['action'][_0xb0a4('0x3b')]()),_[_0xb0a4('0x35')]({},_0x1b50e0,_0x26de2e));}}switch(_0x1b50e0['action']['toLowerCase']()){case _0xb0a4('0x3c'):cmContact['exec'](this[_0xb0a4('0xd')][_0x26de2e[_0xb0a4('0x39')]],this[_0xb0a4('0xc')][_0x4a6039],_0x1b50e0,_0x26de2e);break;case _0xb0a4('0x57'):integration['exec'](_0x1b50e0,_0x26de2e,this[_0xb0a4('0x1b')],this[_0xb0a4('0xd')][_0x26de2e[_0xb0a4('0x39')]],this[_0xb0a4('0xe')][_0x26de2e[_0xb0a4('0x58')]],this['voiceExtensions'][_0x26de2e[_0xb0a4('0x59')]]);break;case'urlforward':urlforward[_0xb0a4('0x5a')](_0x1b50e0,_0x26de2e);break;case _0xb0a4('0x5b'):script['exec'](_0x1b50e0,_0x26de2e);break;}}}}}}};Trigger[_0xb0a4('0x2f')][_0xb0a4('0x45')]=function(_0x3b1066,_0x465e19,_0x4d6570){var _0x279566=url['parse'](Mustache[_0xb0a4('0x43')](_0x3b1066,_0x465e19),!![]);if(_0x4d6570){_['merge'](_0x279566['query'],_0x465e19);}delete _0x279566[_0xb0a4('0x5c')];var _0x3236c4=url['format'](_0x279566);_0x3236c4=_0x3236c4[_0xb0a4('0x5d')](/\/\?/g,'?');return _0x3236c4;};Trigger[_0xb0a4('0x2f')][_0xb0a4('0x34')]=function(_0x1c3a4b,_0x5a650c){var _0x28a790=!![],_0x363414=!![];if(_0x1c3a4b[_0xb0a4('0x5e')]['length']){_0x28a790=_[_0xb0a4('0x5f')](_0x1c3a4b[_0xb0a4('0x5e')],this[_0xb0a4('0x60')](_0x5a650c,_0x1c3a4b[_0xb0a4('0x61')]));}if(_0x1c3a4b[_0xb0a4('0x62')]['length']){_0x363414=_[_0xb0a4('0x63')](_0x1c3a4b['AnyConditions'],this[_0xb0a4('0x60')](_0x5a650c,_0x1c3a4b[_0xb0a4('0x61')]));}return _0x28a790&&_0x363414;};Trigger[_0xb0a4('0x2f')][_0xb0a4('0x60')]=function(_0x35366b,_0x35cc41){return function(_0x574a89){switch(_0x574a89[_0xb0a4('0x64')]){case _0xb0a4('0x65'):if(_0x35366b[_0xb0a4('0x61')]===_0x35cc41){if(_0x35cc41===_0xb0a4('0x66')){return _0x35366b['ChatWebsiteId']?operators[_0x574a89[_0xb0a4('0x67')]](Number(_0x574a89[_0xb0a4('0x68')]),_0x35366b[_0xb0a4('0x69')]):![];}else{return _0x35366b[_[_0xb0a4('0x6a')](_0x35cc41)+_0xb0a4('0x6b')]?operators[_0x574a89[_0xb0a4('0x67')]](Number(_0x574a89['value']),_0x35366b[_[_0xb0a4('0x6a')](_0x35cc41)+_0xb0a4('0x6b')]):![];}}break;case'interaction':case _0xb0a4('0x6c'):if(_0x35366b['channel']===_0x35cc41){return _0x35366b[_0xb0a4('0x6d')]?operators[_0x574a89[_0xb0a4('0x67')]](_0x574a89[_0xb0a4('0x68')],_0x35366b[_0xb0a4('0x6d')]):![];}break;case _0xb0a4('0x58'):return _0x35366b[_0xb0a4('0x58')]?operators[_0x574a89['operator']](_0x574a89[_0xb0a4('0x68')],_0x35366b[_0xb0a4('0x58')]):![];case _0xb0a4('0x6e'):return _0x35366b[_0xb0a4('0x6f')]?operators[_0x574a89[_0xb0a4('0x67')]](_0x574a89[_0xb0a4('0x68')],_0x35366b[_0xb0a4('0x6f')]):![];case'lastevent':return _0x35366b[_0xb0a4('0x70')]?operators[_0x574a89[_0xb0a4('0x67')]](_0x574a89[_0xb0a4('0x68')],_0x35366b[_0xb0a4('0x70')]):![];case _0xb0a4('0x59'):return _0x35366b['routeId']?operators[_0x574a89[_0xb0a4('0x67')]](_0x574a89[_0xb0a4('0x68')],_0x35366b[_0xb0a4('0x59')]):![];}return![];};};module['exports']=Trigger;