Built motion from commit (unavailable).|2.5.4
[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 _0xeba1=['data2','html','render','template\x20not\x20found','buildUri','data3','data4','uriLocation','windowWidth','data5','windowHeight','600','data6','winApplication','winArguments','format','user:%s','name','trigger:%s','exec','queue','routeId','urlforward','script','parse','search','checkTrigger','every','AllConditions','channel','AnyConditions','checkConditions','field','account','chat','ChatWebsiteId','operator','upperFirst','AccountId','value','interaction','message','event','agent','membername','lastevent','exports','util','lodash','ioredis','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','../ami','redis','defaults','localhost','socket.io-emitter','popup','url','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:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialend','custom:newinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','emit','info','prototype','clone','checkTriggers','interface','merge','variables','Actions','length','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId'];(function(_0x3aaf8d,_0x4dcb4e){var _0xb43179=function(_0x4b1299){while(--_0x4b1299){_0x3aaf8d['push'](_0x3aaf8d['shift']());}};_0xb43179(++_0x4dcb4e);}(_0xeba1,0x182));var _0x1eba=function(_0xc00ed,_0x5d809c){_0xc00ed=_0xc00ed-0x0;var _0x53c738=_0xeba1[_0xc00ed];return _0x53c738;};'use strict';var util=require(_0x1eba('0x0'));var _=require(_0x1eba('0x1'));var url=require('url');var Mustache=require('mustache');var Redis=require(_0x1eba('0x2'));var urlforward=require('./urlforward');var integration=require(_0x1eba('0x3'));var cmContact=require(_0x1eba('0x4'));var script=require(_0x1eba('0x5'));var config=require(_0x1eba('0x6'));var logger=require(_0x1eba('0x7'))('trigger');var ami=require(_0x1eba('0x8'));config[_0x1eba('0x9')]=_[_0x1eba('0xa')](config['redis'],{'host':_0x1eba('0xb'),'port':0x18eb});var io=require(_0x1eba('0xc'))(new Redis(config[_0x1eba('0x9')]));var operators={'equals':function(_0x61b80b,_0xb49508){return _0x61b80b==_0xb49508;},'not_equals':function(_0x5bafc5,_0x421b67){return _0x5bafc5!=_0x421b67;}};var barAndWebActions=[_0x1eba('0xd'),_0x1eba('0xe'),'winapp'];function Trigger(_0x354c3e){this[_0x1eba('0xf')]=_0x354c3e['triggers'];this[_0x1eba('0x10')]=_0x354c3e['agents'];this[_0x1eba('0x11')]=_0x354c3e['voiceQueues'];this['templates']=_0x354c3e[_0x1eba('0x12')];this[_0x1eba('0x13')]=_0x354c3e[_0x1eba('0x13')];this['zendeskAccounts']=_0x354c3e[_0x1eba('0x14')];this[_0x1eba('0x15')]=_0x354c3e[_0x1eba('0x15')];this[_0x1eba('0x16')]=_0x354c3e[_0x1eba('0x16')];this[_0x1eba('0x17')]=_0x354c3e[_0x1eba('0x17')];this[_0x1eba('0x18')]=_0x354c3e[_0x1eba('0x18')];this[_0x1eba('0x19')]=_0x354c3e[_0x1eba('0x19')];this[_0x1eba('0x1a')]=_0x354c3e[_0x1eba('0x1a')];this[_0x1eba('0x1b')]=_0x354c3e[_0x1eba('0x1b')];this['dynamics365Accounts']=_0x354c3e[_0x1eba('0x1c')];this[_0x1eba('0x1d')]=_0x354c3e[_0x1eba('0x1d')];this[_0x1eba('0x1e')]={'zendesk':this[_0x1eba('0x14')],'salesforce':this[_0x1eba('0x16')],'freshdesk':this[_0x1eba('0x15')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0x1eba('0x18')],'desk':this[_0x1eba('0x19')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0x1eba('0x1c')],'freshsales':this[_0x1eba('0x1d')],'servicenow':this[_0x1eba('0x1b')]};ami['on'](_0x1eba('0x1f'),this[_0x1eba('0x20')][_0x1eba('0x21')](this));ami['on'](_0x1eba('0x22'),this[_0x1eba('0x20')][_0x1eba('0x21')](this));ami['on'](_0x1eba('0x23'),this[_0x1eba('0x20')][_0x1eba('0x21')](this));ami['on']('custom:agentcomplete',this['syncCustomEvent'][_0x1eba('0x21')](this));ami['on'](_0x1eba('0x24'),this[_0x1eba('0x20')][_0x1eba('0x21')](this));ami['on'](_0x1eba('0x25'),this[_0x1eba('0x20')][_0x1eba('0x21')](this));ami['on'](_0x1eba('0x26'),this[_0x1eba('0x20')][_0x1eba('0x21')](this));ami['on'](_0x1eba('0x27'),this[_0x1eba('0x20')]['bind'](this));ami['on']('custom:agentreject',this[_0x1eba('0x20')][_0x1eba('0x21')](this));ami['on']('custom:queuecallerabandon',this['syncCustomEvent']['bind'](this));ami['on'](_0x1eba('0x28'),this[_0x1eba('0x20')]['bind'](this));ami['on'](_0x1eba('0x29'),this[_0x1eba('0x2a')][_0x1eba('0x21')](this));ami['on']('custom:dialconnect',this[_0x1eba('0x2a')][_0x1eba('0x21')](this));ami['on'](_0x1eba('0x2b'),this[_0x1eba('0x2a')][_0x1eba('0x21')](this));ami['on'](_0x1eba('0x2c'),this[_0x1eba('0x20')][_0x1eba('0x21')](this));ami['on']('custom:closedinteraction',this[_0x1eba('0x20')][_0x1eba('0x21')](this));ami['on'](_0x1eba('0x2d'),this[_0x1eba('0x20')][_0x1eba('0x21')](this));ami['on'](_0x1eba('0x2e'),this['syncCustomEvent']['bind'](this));ami['on'](_0x1eba('0x2f'),this[_0x1eba('0x20')][_0x1eba('0x21')](this));ami['on'](_0x1eba('0x30'),this[_0x1eba('0x20')][_0x1eba('0x21')](this));}Trigger['prototype'][_0x1eba('0x31')]=function(_0x5133f3,_0x4e0009,_0x28241e){logger[_0x1eba('0x32')](_0x5133f3,_0x4e0009,JSON['stringify'](_0x28241e));io['to'](_0x5133f3)[_0x1eba('0x31')](_0x4e0009,_0x28241e);};Trigger[_0x1eba('0x33')]['syncCustomEvent']=function(_0x20657c){var _0x1fe22d=_[_0x1eba('0x34')](_0x20657c);this[_0x1eba('0x35')](_0x1fe22d);};Trigger[_0x1eba('0x33')]['syncAgentDial']=function(_0x1ac2db){if(this[_0x1eba('0x10')][_0x1ac2db[_0x1eba('0x36')]]){this[_0x1eba('0x20')](_0x1ac2db);}};Trigger[_0x1eba('0x33')][_0x1eba('0x35')]=function(_0xded7b9){var _0x49c4d3;for(var _0x2e11e4 in this[_0x1eba('0xf')]){if(this[_0x1eba('0xf')]['hasOwnProperty'](_0x2e11e4)){if(this[_0x1eba('0xf')][_0x2e11e4]['status']){_0x49c4d3=this['checkTrigger'](this[_0x1eba('0xf')][_0x2e11e4],_0xded7b9);if(_0x49c4d3){_[_0x1eba('0x37')](_0xded7b9,_0xded7b9[_0x1eba('0x38')]);for(var _0x2e2365=0x0,_0x5edcde,_0x27c2d7,_0x3bde3b;_0x2e2365<this[_0x1eba('0xf')][_0x2e11e4][_0x1eba('0x39')][_0x1eba('0x3a')];_0x2e2365+=0x1){_0x5edcde=this['triggers'][_0x2e11e4][_0x1eba('0x39')][_0x2e2365];if(this[_0x1eba('0x10')][_0xded7b9[_0x1eba('0x36')]]){switch(_0x5edcde[_0x1eba('0x3b')][_0x1eba('0x3c')]()){case _0x1eba('0x3d'):break;case _0x1eba('0x3e'):case _0x1eba('0x3f'):var _0x202c74={};switch(barAndWebActions[_0x5edcde[_0x1eba('0x40')]]){case _0x1eba('0xd'):_0x202c74[_0x1eba('0x41')]=_0x5edcde[_0x1eba('0x42')];_0x202c74[_0x1eba('0x43')]=this['templates'][_0x5edcde['data2']]?Mustache[_0x1eba('0x44')](this[_0x1eba('0x12')][_0x5edcde[_0x1eba('0x42')]]['html'],_0xded7b9):_0x1eba('0x45');break;case _0x1eba('0xe'):_0x202c74['uri']=this[_0x1eba('0x46')](_0x5edcde[_0x1eba('0x42')],_0xded7b9,_['isNil'](_0x5edcde[_0x1eba('0x47')])?!![]:parseInt(_0x5edcde[_0x1eba('0x47')],0xa));if(_['isNil'](_0x5edcde[_0x1eba('0x48')])){_0x202c74['location']='0';}else{_0x202c74[_0x1eba('0x49')]=_0x5edcde[_0x1eba('0x48')];_0x202c74[_0x1eba('0x4a')]=_['isNil'](_0x5edcde[_0x1eba('0x4b')])?'800':_0x5edcde[_0x1eba('0x4b')];_0x202c74[_0x1eba('0x4c')]=_['isNil'](_0x5edcde['data6'])?_0x1eba('0x4d'):_0x5edcde[_0x1eba('0x4e')];}break;case'winapp':_0x202c74[_0x1eba('0x4f')]=_0x5edcde['data2']?Mustache['render'](_0x5edcde[_0x1eba('0x42')],_0xded7b9):'';_0x202c74[_0x1eba('0x50')]=_0x5edcde[_0x1eba('0x47')]?Mustache[_0x1eba('0x44')](_0x5edcde[_0x1eba('0x47')],_0xded7b9):'';break;}this[_0x1eba('0x31')](util[_0x1eba('0x51')](_0x1eba('0x52'),this[_0x1eba('0x10')][_0xded7b9['interface']][_0x1eba('0x53')]),util['format']('trigger:%s:%s',_0x5edcde['action'][_0x1eba('0x3c')](),barAndWebActions[_0x5edcde[_0x1eba('0x40')]]),_[_0x1eba('0x37')](_0x202c74,_0xded7b9));break;case'jscripty':this[_0x1eba('0x31')](util[_0x1eba('0x51')]('user:%s',this[_0x1eba('0x10')][_0xded7b9['interface']]['name']),util['format']('trigger:%s',_0x5edcde[_0x1eba('0x3b')][_0x1eba('0x3c')]()),_[_0x1eba('0x37')]({'ProjectId':parseInt(_0x5edcde[_0x1eba('0x40')],0xa)},_0xded7b9));break;default:this[_0x1eba('0x31')](util['format'](_0x1eba('0x52'),this[_0x1eba('0x10')][_0xded7b9[_0x1eba('0x36')]]['name']),util['format'](_0x1eba('0x54'),_0x5edcde[_0x1eba('0x3b')][_0x1eba('0x3c')]()),_[_0x1eba('0x37')]({},_0x5edcde,_0xded7b9));}}switch(_0x5edcde[_0x1eba('0x3b')][_0x1eba('0x3c')]()){case _0x1eba('0x3d'):cmContact[_0x1eba('0x55')](this[_0x1eba('0x10')][_0xded7b9[_0x1eba('0x36')]],this[_0x1eba('0xf')][_0x2e11e4],_0x5edcde,_0xded7b9);break;case'integration':integration['exec'](_0x5edcde,_0xded7b9,this[_0x1eba('0x1e')],this['agents'][_0xded7b9[_0x1eba('0x36')]],this[_0x1eba('0x11')][_0xded7b9[_0x1eba('0x56')]],this[_0x1eba('0x13')][_0xded7b9[_0x1eba('0x57')]]);break;case _0x1eba('0x58'):urlforward[_0x1eba('0x55')](_0x5edcde,_0xded7b9);break;case _0x1eba('0x59'):script[_0x1eba('0x55')](_0x5edcde,_0xded7b9);break;}}}}}}};Trigger[_0x1eba('0x33')]['buildUri']=function(_0x2cb0ce,_0x31189a,_0x3162bb){var _0x4d1830=url[_0x1eba('0x5a')](Mustache[_0x1eba('0x44')](_0x2cb0ce,_0x31189a),!![]);if(_0x3162bb){_[_0x1eba('0x37')](_0x4d1830['query'],_0x31189a);}delete _0x4d1830[_0x1eba('0x5b')];var _0x235a03=url[_0x1eba('0x51')](_0x4d1830);_0x235a03=_0x235a03['replace'](/\/\?/g,'?');return _0x235a03;};Trigger['prototype'][_0x1eba('0x5c')]=function(_0x288901,_0x5dc825){var _0x2e9159=!![],_0x5d072=!![];if(_0x288901['AllConditions']['length']){_0x2e9159=_[_0x1eba('0x5d')](_0x288901[_0x1eba('0x5e')],this['checkConditions'](_0x5dc825,_0x288901[_0x1eba('0x5f')]));}if(_0x288901[_0x1eba('0x60')][_0x1eba('0x3a')]){_0x5d072=_['some'](_0x288901[_0x1eba('0x60')],this[_0x1eba('0x61')](_0x5dc825,_0x288901[_0x1eba('0x5f')]));}return _0x2e9159&&_0x5d072;};Trigger[_0x1eba('0x33')][_0x1eba('0x61')]=function(_0x218766,_0x4d371b){return function(_0x230cde){switch(_0x230cde[_0x1eba('0x62')]){case _0x1eba('0x63'):if(_0x218766[_0x1eba('0x5f')]===_0x4d371b){if(_0x4d371b===_0x1eba('0x64')){return _0x218766[_0x1eba('0x65')]?operators[_0x230cde[_0x1eba('0x66')]](Number(_0x230cde['value']),_0x218766[_0x1eba('0x65')]):![];}else{return _0x218766[_[_0x1eba('0x67')](_0x4d371b)+_0x1eba('0x68')]?operators[_0x230cde[_0x1eba('0x66')]](Number(_0x230cde[_0x1eba('0x69')]),_0x218766[_[_0x1eba('0x67')](_0x4d371b)+_0x1eba('0x68')]):![];}}break;case _0x1eba('0x6a'):case _0x1eba('0x6b'):if(_0x218766[_0x1eba('0x5f')]===_0x4d371b){return _0x218766[_0x1eba('0x6c')]?operators[_0x230cde[_0x1eba('0x66')]](_0x230cde[_0x1eba('0x69')],_0x218766[_0x1eba('0x6c')]):![];}break;case _0x1eba('0x56'):return _0x218766[_0x1eba('0x56')]?operators[_0x230cde[_0x1eba('0x66')]](_0x230cde[_0x1eba('0x69')],_0x218766[_0x1eba('0x56')]):![];case _0x1eba('0x6d'):return _0x218766[_0x1eba('0x6e')]?operators[_0x230cde['operator']](_0x230cde[_0x1eba('0x69')],_0x218766[_0x1eba('0x6e')]):![];case'lastevent':return _0x218766['lastevent']?operators[_0x230cde['operator']](_0x230cde[_0x1eba('0x69')],_0x218766[_0x1eba('0x6f')]):![];case _0x1eba('0x57'):return _0x218766['routeId']?operators[_0x230cde[_0x1eba('0x66')]](_0x230cde[_0x1eba('0x69')],_0x218766[_0x1eba('0x57')]):![];}return![];};};module[_0x1eba('0x70')]=Trigger;