Built motion from commit (unavailable).|2.5.19
[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 _0xe13e=['winapp','triggers','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','bind','custom:agentconnect','syncCustomEvent','custom:agentringnoanswer','custom:agentcomplete','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','info','stringify','emit','clone','interface','checkTriggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','agents','action','toLowerCase','contactmanager','browser','data1','html','template\x20not\x20found','buildUri','data2','isNil','location','uriLocation','data4','windowWidth','data5','800','windowHeight','data6','600','winApplication','render','winArguments','data3','format','user:%s','name','trigger:%s:%s','trigger:%s','exec','queue','routeId','urlforward','parse','search','replace','AllConditions','every','channel','some','checkConditions','account','chat','ChatWebsiteId','operator','AccountId','value','interaction','message','event','agent','membername','lastevent','url','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','defaults','redis','localhost','socket.io-emitter','popup'];(function(_0x326539,_0x108886){var _0x2cbb6e=function(_0x47cfa4){while(--_0x47cfa4){_0x326539['push'](_0x326539['shift']());}};_0x2cbb6e(++_0x108886);}(_0xe13e,0xde));var _0xee13=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe13e[_0x3dd15e];return _0x231fd0;};'use strict';var util=require('util');var _=require('lodash');var url=require(_0xee13('0x0'));var Mustache=require(_0xee13('0x1'));var Redis=require(_0xee13('0x2'));var urlforward=require(_0xee13('0x3'));var integration=require(_0xee13('0x4'));var cmContact=require(_0xee13('0x5'));var script=require(_0xee13('0x6'));var config=require(_0xee13('0x7'));var logger=require(_0xee13('0x8'))(_0xee13('0x9'));var ami=require(_0xee13('0xa'));config['redis']=_[_0xee13('0xb')](config[_0xee13('0xc')],{'host':_0xee13('0xd'),'port':0x18eb});var io=require(_0xee13('0xe'))(new Redis(config['redis']));var operators={'equals':function(_0xf90a9a,_0x29f96f){return _0xf90a9a==_0x29f96f;},'not_equals':function(_0x1cc55b,_0x2fa56d){return _0x1cc55b!=_0x2fa56d;}};var barAndWebActions=[_0xee13('0xf'),'url',_0xee13('0x10')];function Trigger(_0x3085c8){this['triggers']=_0x3085c8[_0xee13('0x11')];this['agents']=_0x3085c8['agents'];this['voiceQueues']=_0x3085c8[_0xee13('0x12')];this['templates']=_0x3085c8[_0xee13('0x13')];this[_0xee13('0x14')]=_0x3085c8[_0xee13('0x14')];this[_0xee13('0x15')]=_0x3085c8[_0xee13('0x15')];this[_0xee13('0x16')]=_0x3085c8[_0xee13('0x16')];this['salesforceAccounts']=_0x3085c8[_0xee13('0x17')];this[_0xee13('0x18')]=_0x3085c8[_0xee13('0x18')];this['zohoAccounts']=_0x3085c8[_0xee13('0x19')];this[_0xee13('0x1a')]=_0x3085c8['deskAccounts'];this[_0xee13('0x1b')]=_0x3085c8[_0xee13('0x1b')];this[_0xee13('0x1c')]=_0x3085c8[_0xee13('0x1c')];this[_0xee13('0x1d')]=_0x3085c8[_0xee13('0x1d')];this[_0xee13('0x1e')]=_0x3085c8[_0xee13('0x1e')];this[_0xee13('0x1f')]={'zendesk':this[_0xee13('0x15')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0xee13('0x16')],'sugarcrm':this[_0xee13('0x18')],'zoho':this['zohoAccounts'],'desk':this[_0xee13('0x1a')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0xee13('0x1d')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0xee13('0x1c')]};ami['on'](_0xee13('0x20'),this['syncCustomEvent'][_0xee13('0x21')](this));ami['on'](_0xee13('0x22'),this[_0xee13('0x23')][_0xee13('0x21')](this));ami['on'](_0xee13('0x24'),this['syncCustomEvent'][_0xee13('0x21')](this));ami['on'](_0xee13('0x25'),this['syncCustomEvent'][_0xee13('0x21')](this));ami['on']('custom:agentnosuchnumber',this[_0xee13('0x23')]['bind'](this));ami['on']('custom:agentnoanswer',this[_0xee13('0x23')][_0xee13('0x21')](this));ami['on']('custom:agentbusy',this[_0xee13('0x23')][_0xee13('0x21')](this));ami['on'](_0xee13('0x26'),this['syncCustomEvent']['bind'](this));ami['on'](_0xee13('0x27'),this[_0xee13('0x23')][_0xee13('0x21')](this));ami['on'](_0xee13('0x28'),this[_0xee13('0x23')][_0xee13('0x21')](this));ami['on'](_0xee13('0x29'),this[_0xee13('0x23')][_0xee13('0x21')](this));ami['on'](_0xee13('0x2a'),this[_0xee13('0x2b')][_0xee13('0x21')](this));ami['on'](_0xee13('0x2c'),this[_0xee13('0x2b')][_0xee13('0x21')](this));ami['on'](_0xee13('0x2d'),this['syncAgentDial']['bind'](this));ami['on'](_0xee13('0x2e'),this[_0xee13('0x23')][_0xee13('0x21')](this));ami['on'](_0xee13('0x2f'),this['syncCustomEvent'][_0xee13('0x21')](this));ami['on'](_0xee13('0x30'),this[_0xee13('0x23')][_0xee13('0x21')](this));ami['on'](_0xee13('0x31'),this[_0xee13('0x23')][_0xee13('0x21')](this));ami['on'](_0xee13('0x32'),this[_0xee13('0x23')]['bind'](this));ami['on'](_0xee13('0x33'),this['syncCustomEvent']['bind'](this));}Trigger[_0xee13('0x34')]['emit']=function(_0x226c0e,_0x5c593b,_0x4739f0){logger[_0xee13('0x35')](_0x226c0e,_0x5c593b,JSON[_0xee13('0x36')](_0x4739f0));io['to'](_0x226c0e)[_0xee13('0x37')](_0x5c593b,_0x4739f0);};Trigger[_0xee13('0x34')][_0xee13('0x23')]=function(_0x26d5f5){var _0x42ced5=_[_0xee13('0x38')](_0x26d5f5);this['checkTriggers'](_0x42ced5);};Trigger[_0xee13('0x34')][_0xee13('0x2b')]=function(_0xcaec77){if(this['agents'][_0xcaec77[_0xee13('0x39')]]){this[_0xee13('0x23')](_0xcaec77);}};Trigger[_0xee13('0x34')][_0xee13('0x3a')]=function(_0x647a47){var _0x6ee8c3;for(var _0x543490 in this[_0xee13('0x11')]){if(this[_0xee13('0x11')][_0xee13('0x3b')](_0x543490)){if(this['triggers'][_0x543490][_0xee13('0x3c')]){_0x6ee8c3=this[_0xee13('0x3d')](this['triggers'][_0x543490],_0x647a47);if(_0x6ee8c3){_[_0xee13('0x3e')](_0x647a47,_0x647a47[_0xee13('0x3f')]);for(var _0x2da61b=0x0,_0x3ebb30,_0xfd8d12,_0x4f2a45;_0x2da61b<this['triggers'][_0x543490][_0xee13('0x40')][_0xee13('0x41')];_0x2da61b+=0x1){_0x3ebb30=this[_0xee13('0x11')][_0x543490][_0xee13('0x40')][_0x2da61b];if(this[_0xee13('0x42')][_0x647a47[_0xee13('0x39')]]){switch(_0x3ebb30[_0xee13('0x43')][_0xee13('0x44')]()){case _0xee13('0x45'):break;case'motionbar':case _0xee13('0x46'):var _0x382b87={};switch(barAndWebActions[_0x3ebb30[_0xee13('0x47')]]){case _0xee13('0xf'):_0x382b87['TemplateId']=_0x3ebb30['data2'];_0x382b87['html']=this[_0xee13('0x13')][_0x3ebb30['data2']]?Mustache['render'](this[_0xee13('0x13')][_0x3ebb30['data2']][_0xee13('0x48')],_0x647a47):_0xee13('0x49');break;case _0xee13('0x0'):_0x382b87['uri']=this[_0xee13('0x4a')](_0x3ebb30[_0xee13('0x4b')],_0x647a47,_['isNil'](_0x3ebb30['data3'])?!![]:parseInt(_0x3ebb30['data3'],0xa));if(_[_0xee13('0x4c')](_0x3ebb30['data4'])){_0x382b87[_0xee13('0x4d')]='0';}else{_0x382b87[_0xee13('0x4e')]=_0x3ebb30[_0xee13('0x4f')];_0x382b87[_0xee13('0x50')]=_[_0xee13('0x4c')](_0x3ebb30[_0xee13('0x51')])?_0xee13('0x52'):_0x3ebb30[_0xee13('0x51')];_0x382b87[_0xee13('0x53')]=_[_0xee13('0x4c')](_0x3ebb30[_0xee13('0x54')])?_0xee13('0x55'):_0x3ebb30[_0xee13('0x54')];}break;case _0xee13('0x10'):_0x382b87[_0xee13('0x56')]=_0x3ebb30[_0xee13('0x4b')]?Mustache[_0xee13('0x57')](_0x3ebb30[_0xee13('0x4b')],_0x647a47):'';_0x382b87[_0xee13('0x58')]=_0x3ebb30[_0xee13('0x59')]?Mustache[_0xee13('0x57')](_0x3ebb30[_0xee13('0x59')],_0x647a47):'';break;}this[_0xee13('0x37')](util[_0xee13('0x5a')](_0xee13('0x5b'),this[_0xee13('0x42')][_0x647a47['interface']][_0xee13('0x5c')]),util[_0xee13('0x5a')](_0xee13('0x5d'),_0x3ebb30[_0xee13('0x43')][_0xee13('0x44')](),barAndWebActions[_0x3ebb30['data1']]),_['merge'](_0x382b87,_0x647a47));break;case'jscripty':this[_0xee13('0x37')](util[_0xee13('0x5a')](_0xee13('0x5b'),this[_0xee13('0x42')][_0x647a47[_0xee13('0x39')]][_0xee13('0x5c')]),util[_0xee13('0x5a')]('trigger:%s',_0x3ebb30[_0xee13('0x43')][_0xee13('0x44')]()),_[_0xee13('0x3e')]({'ProjectId':parseInt(_0x3ebb30[_0xee13('0x47')],0xa)},_0x647a47));break;default:this['emit'](util[_0xee13('0x5a')](_0xee13('0x5b'),this['agents'][_0x647a47['interface']][_0xee13('0x5c')]),util[_0xee13('0x5a')](_0xee13('0x5e'),_0x3ebb30[_0xee13('0x43')][_0xee13('0x44')]()),_[_0xee13('0x3e')]({},_0x3ebb30,_0x647a47));}}switch(_0x3ebb30[_0xee13('0x43')][_0xee13('0x44')]()){case'contactmanager':cmContact[_0xee13('0x5f')](this[_0xee13('0x42')][_0x647a47[_0xee13('0x39')]],this[_0xee13('0x11')][_0x543490],_0x3ebb30,_0x647a47);break;case'integration':integration[_0xee13('0x5f')](_0x3ebb30,_0x647a47,this['accounts'],this['agents'][_0x647a47[_0xee13('0x39')]],this['voiceQueues'][_0x647a47[_0xee13('0x60')]],this[_0xee13('0x14')][_0x647a47[_0xee13('0x61')]]);break;case _0xee13('0x62'):urlforward[_0xee13('0x5f')](_0x3ebb30,_0x647a47);break;case'script':script[_0xee13('0x5f')](_0x3ebb30,_0x647a47);break;}}}}}}};Trigger['prototype'][_0xee13('0x4a')]=function(_0x14e979,_0x19d054,_0xe27c52){var _0x259b40=url[_0xee13('0x63')](Mustache[_0xee13('0x57')](_0x14e979,_0x19d054),!![]);if(_0xe27c52){_[_0xee13('0x3e')](_0x259b40['query'],_0x19d054);}delete _0x259b40[_0xee13('0x64')];var _0xd43d73=url['format'](_0x259b40);_0xd43d73=_0xd43d73[_0xee13('0x65')](/\/\?/g,'?');return _0xd43d73;};Trigger[_0xee13('0x34')][_0xee13('0x3d')]=function(_0x3e452e,_0x5a0b19){var _0x3c9398=!![],_0x2aa091=!![];if(_0x3e452e[_0xee13('0x66')][_0xee13('0x41')]){_0x3c9398=_[_0xee13('0x67')](_0x3e452e[_0xee13('0x66')],this['checkConditions'](_0x5a0b19,_0x3e452e[_0xee13('0x68')]));}if(_0x3e452e['AnyConditions'][_0xee13('0x41')]){_0x2aa091=_[_0xee13('0x69')](_0x3e452e['AnyConditions'],this[_0xee13('0x6a')](_0x5a0b19,_0x3e452e[_0xee13('0x68')]));}return _0x3c9398&&_0x2aa091;};Trigger[_0xee13('0x34')]['checkConditions']=function(_0x37fa5f,_0x4ee2e1){return function(_0xb3b83e){switch(_0xb3b83e['field']){case _0xee13('0x6b'):if(_0x37fa5f[_0xee13('0x68')]===_0x4ee2e1){if(_0x4ee2e1===_0xee13('0x6c')){return _0x37fa5f[_0xee13('0x6d')]?operators[_0xb3b83e[_0xee13('0x6e')]](Number(_0xb3b83e['value']),_0x37fa5f[_0xee13('0x6d')]):![];}else{return _0x37fa5f[_['upperFirst'](_0x4ee2e1)+_0xee13('0x6f')]?operators[_0xb3b83e[_0xee13('0x6e')]](Number(_0xb3b83e[_0xee13('0x70')]),_0x37fa5f[_['upperFirst'](_0x4ee2e1)+'AccountId']):![];}}break;case _0xee13('0x71'):case _0xee13('0x72'):if(_0x37fa5f[_0xee13('0x68')]===_0x4ee2e1){return _0x37fa5f[_0xee13('0x73')]?operators[_0xb3b83e[_0xee13('0x6e')]](_0xb3b83e[_0xee13('0x70')],_0x37fa5f[_0xee13('0x73')]):![];}break;case'queue':return _0x37fa5f[_0xee13('0x60')]?operators[_0xb3b83e[_0xee13('0x6e')]](_0xb3b83e[_0xee13('0x70')],_0x37fa5f[_0xee13('0x60')]):![];case _0xee13('0x74'):return _0x37fa5f[_0xee13('0x75')]?operators[_0xb3b83e[_0xee13('0x6e')]](_0xb3b83e[_0xee13('0x70')],_0x37fa5f[_0xee13('0x75')]):![];case _0xee13('0x76'):return _0x37fa5f['lastevent']?operators[_0xb3b83e[_0xee13('0x6e')]](_0xb3b83e[_0xee13('0x70')],_0x37fa5f[_0xee13('0x76')]):![];case _0xee13('0x61'):return _0x37fa5f['routeId']?operators[_0xb3b83e[_0xee13('0x6e')]](_0xb3b83e[_0xee13('0x70')],_0x37fa5f['routeId']):![];}return![];};};module['exports']=Trigger;