Built motion from commit (unavailable).|2.5.9
[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 _0xb353=['name','contactmanager','exec','queue','routeId','urlforward','script','parse','query','search','replace','AllConditions','every','checkConditions','AnyConditions','account','channel','chat','ChatWebsiteId','operator','AccountId','value','upperFirst','interaction','message','event','agent','membername','lastevent','util','lodash','url','ioredis','./urlforward','./integration','./script','../../../config/environment','../ami','redis','defaults','localhost','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','bind','custom:agentringnoanswer','syncCustomEvent','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:incomingmessage','custom:outgoingmessage','prototype','emit','info','stringify','clone','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','toLowerCase','motionbar','browser','data1','TemplateId','data2','render','html','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','uriLocation','data5','windowHeight','data6','600','winArguments','format','user:%s','action'];(function(_0x1b841d,_0x5e898c){var _0x2c5c80=function(_0x539d10){while(--_0x539d10){_0x1b841d['push'](_0x1b841d['shift']());}};_0x2c5c80(++_0x5e898c);}(_0xb353,0x1e5));var _0x3b35=function(_0x57068e,_0x39f69f){_0x57068e=_0x57068e-0x0;var _0x2506dc=_0xb353[_0x57068e];return _0x2506dc;};'use strict';var util=require(_0x3b35('0x0'));var _=require(_0x3b35('0x1'));var url=require(_0x3b35('0x2'));var Mustache=require('mustache');var Redis=require(_0x3b35('0x3'));var urlforward=require(_0x3b35('0x4'));var integration=require(_0x3b35('0x5'));var cmContact=require('./cmContact');var script=require(_0x3b35('0x6'));var config=require(_0x3b35('0x7'));var logger=require('../../../config/logger')('trigger');var ami=require(_0x3b35('0x8'));config[_0x3b35('0x9')]=_[_0x3b35('0xa')](config['redis'],{'host':_0x3b35('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x3b35('0x9')]));var operators={'equals':function(_0x225e61,_0xbf81c0){return _0x225e61==_0xbf81c0;},'not_equals':function(_0x3ac976,_0xea8c87){return _0x3ac976!=_0xea8c87;}};var barAndWebActions=[_0x3b35('0xc'),_0x3b35('0x2'),_0x3b35('0xd')];function Trigger(_0x378ec5){this[_0x3b35('0xe')]=_0x378ec5[_0x3b35('0xe')];this['agents']=_0x378ec5[_0x3b35('0xf')];this[_0x3b35('0x10')]=_0x378ec5[_0x3b35('0x10')];this[_0x3b35('0x11')]=_0x378ec5['templates'];this[_0x3b35('0x12')]=_0x378ec5[_0x3b35('0x12')];this['zendeskAccounts']=_0x378ec5[_0x3b35('0x13')];this['freshdeskAccounts']=_0x378ec5[_0x3b35('0x14')];this[_0x3b35('0x15')]=_0x378ec5[_0x3b35('0x15')];this['sugarcrmAccounts']=_0x378ec5['sugarcrmAccounts'];this[_0x3b35('0x16')]=_0x378ec5['zohoAccounts'];this[_0x3b35('0x17')]=_0x378ec5[_0x3b35('0x17')];this[_0x3b35('0x18')]=_0x378ec5['vtigerAccounts'];this[_0x3b35('0x19')]=_0x378ec5['servicenowAccounts'];this[_0x3b35('0x1a')]=_0x378ec5[_0x3b35('0x1a')];this[_0x3b35('0x1b')]=_0x378ec5['freshsalesAccounts'];this[_0x3b35('0x1c')]={'zendesk':this[_0x3b35('0x13')],'salesforce':this[_0x3b35('0x15')],'freshdesk':this[_0x3b35('0x14')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this['zohoAccounts'],'desk':this['deskAccounts'],'vtiger':this[_0x3b35('0x18')],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0x3b35('0x1b')],'servicenow':this['servicenowAccounts']};ami['on'](_0x3b35('0x1d'),this['syncCustomEvent'][_0x3b35('0x1e')](this));ami['on']('custom:agentconnect',this['syncCustomEvent']['bind'](this));ami['on'](_0x3b35('0x1f'),this[_0x3b35('0x20')]['bind'](this));ami['on'](_0x3b35('0x21'),this['syncCustomEvent']['bind'](this));ami['on'](_0x3b35('0x22'),this[_0x3b35('0x20')][_0x3b35('0x1e')](this));ami['on'](_0x3b35('0x23'),this[_0x3b35('0x20')][_0x3b35('0x1e')](this));ami['on'](_0x3b35('0x24'),this['syncCustomEvent'][_0x3b35('0x1e')](this));ami['on'](_0x3b35('0x25'),this[_0x3b35('0x20')]['bind'](this));ami['on'](_0x3b35('0x26'),this[_0x3b35('0x20')]['bind'](this));ami['on'](_0x3b35('0x27'),this['syncCustomEvent'][_0x3b35('0x1e')](this));ami['on'](_0x3b35('0x28'),this[_0x3b35('0x20')]['bind'](this));ami['on'](_0x3b35('0x29'),this[_0x3b35('0x2a')][_0x3b35('0x1e')](this));ami['on'](_0x3b35('0x2b'),this[_0x3b35('0x2a')][_0x3b35('0x1e')](this));ami['on']('custom:dialend',this[_0x3b35('0x2a')][_0x3b35('0x1e')](this));ami['on'](_0x3b35('0x2c'),this[_0x3b35('0x20')][_0x3b35('0x1e')](this));ami['on']('custom:closedinteraction',this[_0x3b35('0x20')][_0x3b35('0x1e')](this));ami['on'](_0x3b35('0x2d'),this[_0x3b35('0x20')][_0x3b35('0x1e')](this));ami['on'](_0x3b35('0x2e'),this[_0x3b35('0x20')][_0x3b35('0x1e')](this));ami['on']('custom:acceptmessage',this[_0x3b35('0x20')][_0x3b35('0x1e')](this));ami['on']('custom:rejectmessage',this[_0x3b35('0x20')][_0x3b35('0x1e')](this));}Trigger[_0x3b35('0x2f')][_0x3b35('0x30')]=function(_0x41a61b,_0x4089a1,_0x1c7fb3){logger[_0x3b35('0x31')](_0x41a61b,_0x4089a1,JSON[_0x3b35('0x32')](_0x1c7fb3));io['to'](_0x41a61b)[_0x3b35('0x30')](_0x4089a1,_0x1c7fb3);};Trigger[_0x3b35('0x2f')][_0x3b35('0x20')]=function(_0x4f017f){var _0xb24602=_[_0x3b35('0x33')](_0x4f017f);this[_0x3b35('0x34')](_0xb24602);};Trigger[_0x3b35('0x2f')][_0x3b35('0x2a')]=function(_0x455b76){if(this[_0x3b35('0xf')][_0x455b76[_0x3b35('0x35')]]){this[_0x3b35('0x20')](_0x455b76);}};Trigger[_0x3b35('0x2f')]['checkTriggers']=function(_0x1df92a){var _0x1b62c4;for(var _0x4846f5 in this[_0x3b35('0xe')]){if(this[_0x3b35('0xe')][_0x3b35('0x36')](_0x4846f5)){if(this[_0x3b35('0xe')][_0x4846f5][_0x3b35('0x37')]){_0x1b62c4=this[_0x3b35('0x38')](this[_0x3b35('0xe')][_0x4846f5],_0x1df92a);if(_0x1b62c4){_[_0x3b35('0x39')](_0x1df92a,_0x1df92a[_0x3b35('0x3a')]);for(var _0x86d8e3=0x0,_0x58a9b0,_0x6a5bf9,_0x86630;_0x86d8e3<this[_0x3b35('0xe')][_0x4846f5][_0x3b35('0x3b')][_0x3b35('0x3c')];_0x86d8e3+=0x1){_0x58a9b0=this['triggers'][_0x4846f5][_0x3b35('0x3b')][_0x86d8e3];if(this[_0x3b35('0xf')][_0x1df92a[_0x3b35('0x35')]]){switch(_0x58a9b0['action'][_0x3b35('0x3d')]()){case'contactmanager':break;case _0x3b35('0x3e'):case _0x3b35('0x3f'):var _0x2ce150={};switch(barAndWebActions[_0x58a9b0[_0x3b35('0x40')]]){case'popup':_0x2ce150[_0x3b35('0x41')]=_0x58a9b0[_0x3b35('0x42')];_0x2ce150['html']=this[_0x3b35('0x11')][_0x58a9b0['data2']]?Mustache[_0x3b35('0x43')](this[_0x3b35('0x11')][_0x58a9b0[_0x3b35('0x42')]][_0x3b35('0x44')],_0x1df92a):_0x3b35('0x45');break;case _0x3b35('0x2'):_0x2ce150[_0x3b35('0x46')]=this[_0x3b35('0x47')](_0x58a9b0[_0x3b35('0x42')],_0x1df92a,_[_0x3b35('0x48')](_0x58a9b0[_0x3b35('0x49')])?!![]:parseInt(_0x58a9b0[_0x3b35('0x49')],0xa));if(_[_0x3b35('0x48')](_0x58a9b0[_0x3b35('0x4a')])){_0x2ce150[_0x3b35('0x4b')]='0';}else{_0x2ce150[_0x3b35('0x4c')]=_0x58a9b0['data4'];_0x2ce150['windowWidth']=_['isNil'](_0x58a9b0[_0x3b35('0x4d')])?'800':_0x58a9b0[_0x3b35('0x4d')];_0x2ce150[_0x3b35('0x4e')]=_['isNil'](_0x58a9b0[_0x3b35('0x4f')])?_0x3b35('0x50'):_0x58a9b0[_0x3b35('0x4f')];}break;case _0x3b35('0xd'):_0x2ce150['winApplication']=_0x58a9b0[_0x3b35('0x42')]?Mustache[_0x3b35('0x43')](_0x58a9b0[_0x3b35('0x42')],_0x1df92a):'';_0x2ce150[_0x3b35('0x51')]=_0x58a9b0[_0x3b35('0x49')]?Mustache[_0x3b35('0x43')](_0x58a9b0['data3'],_0x1df92a):'';break;}this['emit'](util[_0x3b35('0x52')](_0x3b35('0x53'),this[_0x3b35('0xf')][_0x1df92a[_0x3b35('0x35')]]['name']),util['format']('trigger:%s:%s',_0x58a9b0[_0x3b35('0x54')][_0x3b35('0x3d')](),barAndWebActions[_0x58a9b0[_0x3b35('0x40')]]),_[_0x3b35('0x39')](_0x2ce150,_0x1df92a));break;case'jscripty':this['emit'](util[_0x3b35('0x52')](_0x3b35('0x53'),this[_0x3b35('0xf')][_0x1df92a['interface']][_0x3b35('0x55')]),util[_0x3b35('0x52')]('trigger:%s',_0x58a9b0[_0x3b35('0x54')][_0x3b35('0x3d')]()),_['merge']({'ProjectId':parseInt(_0x58a9b0[_0x3b35('0x40')],0xa)},_0x1df92a));break;default:this[_0x3b35('0x30')](util[_0x3b35('0x52')]('user:%s',this[_0x3b35('0xf')][_0x1df92a[_0x3b35('0x35')]][_0x3b35('0x55')]),util['format']('trigger:%s',_0x58a9b0[_0x3b35('0x54')][_0x3b35('0x3d')]()),_[_0x3b35('0x39')]({},_0x58a9b0,_0x1df92a));}}switch(_0x58a9b0[_0x3b35('0x54')][_0x3b35('0x3d')]()){case _0x3b35('0x56'):cmContact[_0x3b35('0x57')](this['agents'][_0x1df92a[_0x3b35('0x35')]],this[_0x3b35('0xe')][_0x4846f5],_0x58a9b0,_0x1df92a);break;case'integration':integration[_0x3b35('0x57')](_0x58a9b0,_0x1df92a,this[_0x3b35('0x1c')],this[_0x3b35('0xf')][_0x1df92a[_0x3b35('0x35')]],this[_0x3b35('0x10')][_0x1df92a[_0x3b35('0x58')]],this['voiceExtensions'][_0x1df92a[_0x3b35('0x59')]]);break;case _0x3b35('0x5a'):urlforward['exec'](_0x58a9b0,_0x1df92a);break;case _0x3b35('0x5b'):script[_0x3b35('0x57')](_0x58a9b0,_0x1df92a);break;}}}}}}};Trigger[_0x3b35('0x2f')][_0x3b35('0x47')]=function(_0xf45c9a,_0x26a35c,_0x2e322e){var _0x2f826b=url[_0x3b35('0x5c')](Mustache[_0x3b35('0x43')](_0xf45c9a,_0x26a35c),!![]);if(_0x2e322e){_[_0x3b35('0x39')](_0x2f826b[_0x3b35('0x5d')],_0x26a35c);}delete _0x2f826b[_0x3b35('0x5e')];var _0x50dcc1=url[_0x3b35('0x52')](_0x2f826b);_0x50dcc1=_0x50dcc1[_0x3b35('0x5f')](/\/\?/g,'?');return _0x50dcc1;};Trigger['prototype'][_0x3b35('0x38')]=function(_0x48b24d,_0xfc5a4b){var _0x39b783=!![],_0x1fceeb=!![];if(_0x48b24d[_0x3b35('0x60')][_0x3b35('0x3c')]){_0x39b783=_[_0x3b35('0x61')](_0x48b24d[_0x3b35('0x60')],this[_0x3b35('0x62')](_0xfc5a4b,_0x48b24d['channel']));}if(_0x48b24d[_0x3b35('0x63')]['length']){_0x1fceeb=_['some'](_0x48b24d[_0x3b35('0x63')],this[_0x3b35('0x62')](_0xfc5a4b,_0x48b24d['channel']));}return _0x39b783&&_0x1fceeb;};Trigger[_0x3b35('0x2f')][_0x3b35('0x62')]=function(_0x40173d,_0x3139f3){return function(_0x2892b2){switch(_0x2892b2['field']){case _0x3b35('0x64'):if(_0x40173d[_0x3b35('0x65')]===_0x3139f3){if(_0x3139f3===_0x3b35('0x66')){return _0x40173d[_0x3b35('0x67')]?operators[_0x2892b2[_0x3b35('0x68')]](Number(_0x2892b2['value']),_0x40173d['ChatWebsiteId']):![];}else{return _0x40173d[_['upperFirst'](_0x3139f3)+_0x3b35('0x69')]?operators[_0x2892b2[_0x3b35('0x68')]](Number(_0x2892b2[_0x3b35('0x6a')]),_0x40173d[_[_0x3b35('0x6b')](_0x3139f3)+_0x3b35('0x69')]):![];}}break;case _0x3b35('0x6c'):case _0x3b35('0x6d'):if(_0x40173d['channel']===_0x3139f3){return _0x40173d[_0x3b35('0x6e')]?operators[_0x2892b2[_0x3b35('0x68')]](_0x2892b2[_0x3b35('0x6a')],_0x40173d[_0x3b35('0x6e')]):![];}break;case _0x3b35('0x58'):return _0x40173d[_0x3b35('0x58')]?operators[_0x2892b2[_0x3b35('0x68')]](_0x2892b2[_0x3b35('0x6a')],_0x40173d[_0x3b35('0x58')]):![];case _0x3b35('0x6f'):return _0x40173d[_0x3b35('0x70')]?operators[_0x2892b2[_0x3b35('0x68')]](_0x2892b2[_0x3b35('0x6a')],_0x40173d['membername']):![];case'lastevent':return _0x40173d[_0x3b35('0x71')]?operators[_0x2892b2['operator']](_0x2892b2['value'],_0x40173d['lastevent']):![];case'routeId':return _0x40173d[_0x3b35('0x59')]?operators[_0x2892b2[_0x3b35('0x68')]](_0x2892b2[_0x3b35('0x6a')],_0x40173d[_0x3b35('0x59')]):![];}return![];};};module['exports']=Trigger;