Built motion from commit (unavailable).|2.5.10
[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 _0x477f=['value','upperFirst','AccountId','operator','interaction','message','queue','agent','membername','lastevent','exports','util','url','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','popup','winapp','triggers','agents','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:acceptmessage','prototype','emit','info','stringify','clone','checkTriggers','interface','hasOwnProperty','status','variables','Actions','length','action','toLowerCase','contactmanager','motionbar','browser','TemplateId','data2','html','uri','buildUri','data3','isNil','data4','windowWidth','data5','800','windowHeight','data6','render','format','user:%s','trigger:%s:%s','merge','jscripty','trigger:%s','data1','name','integration','exec','accounts','voiceQueues','routeId','urlforward','script','parse','query','search','replace','checkTrigger','AllConditions','every','checkConditions','channel','AnyConditions','some','field','account','chat','ChatWebsiteId'];(function(_0x8dc04d,_0xaa7559){var _0x2f5f28=function(_0xdd2d1d){while(--_0xdd2d1d){_0x8dc04d['push'](_0x8dc04d['shift']());}};_0x2f5f28(++_0xaa7559);}(_0x477f,0xfb));var _0xf477=function(_0x13f3e0,_0x27d1ee){_0x13f3e0=_0x13f3e0-0x0;var _0x98f9c8=_0x477f[_0x13f3e0];return _0x98f9c8;};'use strict';var util=require(_0xf477('0x0'));var _=require('lodash');var url=require(_0xf477('0x1'));var Mustache=require('mustache');var Redis=require('ioredis');var urlforward=require('./urlforward');var integration=require(_0xf477('0x2'));var cmContact=require(_0xf477('0x3'));var script=require(_0xf477('0x4'));var config=require(_0xf477('0x5'));var logger=require(_0xf477('0x6'))(_0xf477('0x7'));var ami=require(_0xf477('0x8'));config[_0xf477('0x9')]=_[_0xf477('0xa')](config[_0xf477('0x9')],{'host':_0xf477('0xb'),'port':0x18eb});var io=require(_0xf477('0xc'))(new Redis(config['redis']));var operators={'equals':function(_0x5d007f,_0x9c377f){return _0x5d007f==_0x9c377f;},'not_equals':function(_0x4d4c69,_0xc1551b){return _0x4d4c69!=_0xc1551b;}};var barAndWebActions=[_0xf477('0xd'),_0xf477('0x1'),_0xf477('0xe')];function Trigger(_0x198f6d){this[_0xf477('0xf')]=_0x198f6d['triggers'];this['agents']=_0x198f6d[_0xf477('0x10')];this['voiceQueues']=_0x198f6d['voiceQueues'];this['templates']=_0x198f6d[_0xf477('0x11')];this['voiceExtensions']=_0x198f6d[_0xf477('0x12')];this[_0xf477('0x13')]=_0x198f6d[_0xf477('0x13')];this['freshdeskAccounts']=_0x198f6d[_0xf477('0x14')];this[_0xf477('0x15')]=_0x198f6d[_0xf477('0x15')];this[_0xf477('0x16')]=_0x198f6d[_0xf477('0x16')];this[_0xf477('0x17')]=_0x198f6d[_0xf477('0x17')];this[_0xf477('0x18')]=_0x198f6d[_0xf477('0x18')];this[_0xf477('0x19')]=_0x198f6d[_0xf477('0x19')];this[_0xf477('0x1a')]=_0x198f6d['servicenowAccounts'];this[_0xf477('0x1b')]=_0x198f6d['dynamics365Accounts'];this[_0xf477('0x1c')]=_0x198f6d[_0xf477('0x1c')];this['accounts']={'zendesk':this[_0xf477('0x13')],'salesforce':this[_0xf477('0x15')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0xf477('0x16')],'zoho':this[_0xf477('0x17')],'desk':this[_0xf477('0x18')],'vtiger':this[_0xf477('0x19')],'dynamics365':this[_0xf477('0x1b')],'freshsales':this[_0xf477('0x1c')],'servicenow':this[_0xf477('0x1a')]};ami['on'](_0xf477('0x1d'),this[_0xf477('0x1e')][_0xf477('0x1f')](this));ami['on']('custom:agentconnect',this[_0xf477('0x1e')][_0xf477('0x1f')](this));ami['on'](_0xf477('0x20'),this['syncCustomEvent'][_0xf477('0x1f')](this));ami['on'](_0xf477('0x21'),this[_0xf477('0x1e')][_0xf477('0x1f')](this));ami['on'](_0xf477('0x22'),this[_0xf477('0x1e')][_0xf477('0x1f')](this));ami['on']('custom:agentnoanswer',this[_0xf477('0x1e')][_0xf477('0x1f')](this));ami['on'](_0xf477('0x23'),this['syncCustomEvent']['bind'](this));ami['on'](_0xf477('0x24'),this[_0xf477('0x1e')][_0xf477('0x1f')](this));ami['on'](_0xf477('0x25'),this[_0xf477('0x1e')]['bind'](this));ami['on'](_0xf477('0x26'),this['syncCustomEvent'][_0xf477('0x1f')](this));ami['on'](_0xf477('0x27'),this[_0xf477('0x1e')][_0xf477('0x1f')](this));ami['on'](_0xf477('0x28'),this[_0xf477('0x29')]['bind'](this));ami['on'](_0xf477('0x2a'),this[_0xf477('0x29')][_0xf477('0x1f')](this));ami['on'](_0xf477('0x2b'),this[_0xf477('0x29')][_0xf477('0x1f')](this));ami['on'](_0xf477('0x2c'),this[_0xf477('0x1e')][_0xf477('0x1f')](this));ami['on'](_0xf477('0x2d'),this[_0xf477('0x1e')][_0xf477('0x1f')](this));ami['on'](_0xf477('0x2e'),this[_0xf477('0x1e')][_0xf477('0x1f')](this));ami['on']('custom:outgoingmessage',this[_0xf477('0x1e')][_0xf477('0x1f')](this));ami['on'](_0xf477('0x2f'),this[_0xf477('0x1e')][_0xf477('0x1f')](this));ami['on']('custom:rejectmessage',this[_0xf477('0x1e')][_0xf477('0x1f')](this));}Trigger[_0xf477('0x30')][_0xf477('0x31')]=function(_0xe2e1dc,_0x3559ce,_0x103808){logger[_0xf477('0x32')](_0xe2e1dc,_0x3559ce,JSON[_0xf477('0x33')](_0x103808));io['to'](_0xe2e1dc)['emit'](_0x3559ce,_0x103808);};Trigger[_0xf477('0x30')][_0xf477('0x1e')]=function(_0x42c602){var _0x4a465b=_[_0xf477('0x34')](_0x42c602);this[_0xf477('0x35')](_0x4a465b);};Trigger[_0xf477('0x30')][_0xf477('0x29')]=function(_0x5bea6b){if(this[_0xf477('0x10')][_0x5bea6b[_0xf477('0x36')]]){this[_0xf477('0x1e')](_0x5bea6b);}};Trigger['prototype'][_0xf477('0x35')]=function(_0x289c3c){var _0x51c5fd;for(var _0x43a183 in this['triggers']){if(this[_0xf477('0xf')][_0xf477('0x37')](_0x43a183)){if(this[_0xf477('0xf')][_0x43a183][_0xf477('0x38')]){_0x51c5fd=this['checkTrigger'](this['triggers'][_0x43a183],_0x289c3c);if(_0x51c5fd){_['merge'](_0x289c3c,_0x289c3c[_0xf477('0x39')]);for(var _0x5a521a=0x0,_0x247589,_0x174e9f,_0x2c188e;_0x5a521a<this[_0xf477('0xf')][_0x43a183][_0xf477('0x3a')][_0xf477('0x3b')];_0x5a521a+=0x1){_0x247589=this[_0xf477('0xf')][_0x43a183]['Actions'][_0x5a521a];if(this[_0xf477('0x10')][_0x289c3c[_0xf477('0x36')]]){switch(_0x247589[_0xf477('0x3c')][_0xf477('0x3d')]()){case _0xf477('0x3e'):break;case _0xf477('0x3f'):case _0xf477('0x40'):var _0x39cf8a={};switch(barAndWebActions[_0x247589['data1']]){case _0xf477('0xd'):_0x39cf8a[_0xf477('0x41')]=_0x247589[_0xf477('0x42')];_0x39cf8a['html']=this['templates'][_0x247589[_0xf477('0x42')]]?Mustache['render'](this[_0xf477('0x11')][_0x247589[_0xf477('0x42')]][_0xf477('0x43')],_0x289c3c):'template\x20not\x20found';break;case'url':_0x39cf8a[_0xf477('0x44')]=this[_0xf477('0x45')](_0x247589[_0xf477('0x42')],_0x289c3c,_['isNil'](_0x247589['data3'])?!![]:parseInt(_0x247589[_0xf477('0x46')],0xa));if(_[_0xf477('0x47')](_0x247589[_0xf477('0x48')])){_0x39cf8a['location']='0';}else{_0x39cf8a['uriLocation']=_0x247589[_0xf477('0x48')];_0x39cf8a[_0xf477('0x49')]=_[_0xf477('0x47')](_0x247589[_0xf477('0x4a')])?_0xf477('0x4b'):_0x247589[_0xf477('0x4a')];_0x39cf8a[_0xf477('0x4c')]=_[_0xf477('0x47')](_0x247589['data6'])?'600':_0x247589[_0xf477('0x4d')];}break;case _0xf477('0xe'):_0x39cf8a['winApplication']=_0x247589[_0xf477('0x42')]?Mustache[_0xf477('0x4e')](_0x247589[_0xf477('0x42')],_0x289c3c):'';_0x39cf8a['winArguments']=_0x247589['data3']?Mustache[_0xf477('0x4e')](_0x247589[_0xf477('0x46')],_0x289c3c):'';break;}this[_0xf477('0x31')](util[_0xf477('0x4f')](_0xf477('0x50'),this[_0xf477('0x10')][_0x289c3c[_0xf477('0x36')]]['name']),util['format'](_0xf477('0x51'),_0x247589[_0xf477('0x3c')][_0xf477('0x3d')](),barAndWebActions[_0x247589['data1']]),_[_0xf477('0x52')](_0x39cf8a,_0x289c3c));break;case _0xf477('0x53'):this[_0xf477('0x31')](util[_0xf477('0x4f')](_0xf477('0x50'),this[_0xf477('0x10')][_0x289c3c[_0xf477('0x36')]]['name']),util[_0xf477('0x4f')](_0xf477('0x54'),_0x247589[_0xf477('0x3c')][_0xf477('0x3d')]()),_['merge']({'ProjectId':parseInt(_0x247589[_0xf477('0x55')],0xa)},_0x289c3c));break;default:this[_0xf477('0x31')](util[_0xf477('0x4f')]('user:%s',this['agents'][_0x289c3c['interface']][_0xf477('0x56')]),util['format']('trigger:%s',_0x247589['action'][_0xf477('0x3d')]()),_[_0xf477('0x52')]({},_0x247589,_0x289c3c));}}switch(_0x247589[_0xf477('0x3c')][_0xf477('0x3d')]()){case _0xf477('0x3e'):cmContact['exec'](this[_0xf477('0x10')][_0x289c3c[_0xf477('0x36')]],this['triggers'][_0x43a183],_0x247589,_0x289c3c);break;case _0xf477('0x57'):integration[_0xf477('0x58')](_0x247589,_0x289c3c,this[_0xf477('0x59')],this[_0xf477('0x10')][_0x289c3c['interface']],this[_0xf477('0x5a')][_0x289c3c['queue']],this[_0xf477('0x12')][_0x289c3c[_0xf477('0x5b')]]);break;case _0xf477('0x5c'):urlforward['exec'](_0x247589,_0x289c3c);break;case _0xf477('0x5d'):script['exec'](_0x247589,_0x289c3c);break;}}}}}}};Trigger[_0xf477('0x30')][_0xf477('0x45')]=function(_0x3d6bb8,_0x195f08,_0x3d67a7){var _0x39d854=url[_0xf477('0x5e')](Mustache['render'](_0x3d6bb8,_0x195f08),!![]);if(_0x3d67a7){_['merge'](_0x39d854[_0xf477('0x5f')],_0x195f08);}delete _0x39d854[_0xf477('0x60')];var _0x1fd25c=url[_0xf477('0x4f')](_0x39d854);_0x1fd25c=_0x1fd25c[_0xf477('0x61')](/\/\?/g,'?');return _0x1fd25c;};Trigger[_0xf477('0x30')][_0xf477('0x62')]=function(_0x1396bc,_0x43fcbd){var _0x522422=!![],_0x93ece2=!![];if(_0x1396bc[_0xf477('0x63')][_0xf477('0x3b')]){_0x522422=_[_0xf477('0x64')](_0x1396bc[_0xf477('0x63')],this[_0xf477('0x65')](_0x43fcbd,_0x1396bc[_0xf477('0x66')]));}if(_0x1396bc[_0xf477('0x67')][_0xf477('0x3b')]){_0x93ece2=_[_0xf477('0x68')](_0x1396bc[_0xf477('0x67')],this[_0xf477('0x65')](_0x43fcbd,_0x1396bc[_0xf477('0x66')]));}return _0x522422&&_0x93ece2;};Trigger[_0xf477('0x30')]['checkConditions']=function(_0xdf2747,_0x32f63a){return function(_0x336f6a){switch(_0x336f6a[_0xf477('0x69')]){case _0xf477('0x6a'):if(_0xdf2747[_0xf477('0x66')]===_0x32f63a){if(_0x32f63a===_0xf477('0x6b')){return _0xdf2747[_0xf477('0x6c')]?operators[_0x336f6a['operator']](Number(_0x336f6a[_0xf477('0x6d')]),_0xdf2747['ChatWebsiteId']):![];}else{return _0xdf2747[_[_0xf477('0x6e')](_0x32f63a)+_0xf477('0x6f')]?operators[_0x336f6a[_0xf477('0x70')]](Number(_0x336f6a['value']),_0xdf2747[_[_0xf477('0x6e')](_0x32f63a)+_0xf477('0x6f')]):![];}}break;case _0xf477('0x71'):case _0xf477('0x72'):if(_0xdf2747[_0xf477('0x66')]===_0x32f63a){return _0xdf2747['event']?operators[_0x336f6a[_0xf477('0x70')]](_0x336f6a['value'],_0xdf2747['event']):![];}break;case'queue':return _0xdf2747['queue']?operators[_0x336f6a[_0xf477('0x70')]](_0x336f6a[_0xf477('0x6d')],_0xdf2747[_0xf477('0x73')]):![];case _0xf477('0x74'):return _0xdf2747[_0xf477('0x75')]?operators[_0x336f6a[_0xf477('0x70')]](_0x336f6a[_0xf477('0x6d')],_0xdf2747[_0xf477('0x75')]):![];case'lastevent':return _0xdf2747[_0xf477('0x76')]?operators[_0x336f6a['operator']](_0x336f6a[_0xf477('0x6d')],_0xdf2747['lastevent']):![];case'routeId':return _0xdf2747['routeId']?operators[_0x336f6a[_0xf477('0x70')]](_0x336f6a[_0xf477('0x6d')],_0xdf2747[_0xf477('0x5b')]):![];}return![];};};module[_0xf477('0x77')]=Trigger;