Built motion from commit (unavailable).|2.5.0
[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 _0xb587=['./urlforward','./integration','./cmContact','./script','../rpc/cmContact','../../../config/environment','../../../config/logger','../ami','redis','defaults','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','accounts','freshsalesAccounts','custom:agentcalled','bind','custom:agentconnect','syncCustomEvent','custom:agentcomplete','custom:queuecallerabandon','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','emit','stringify','prototype','clone','checkTriggers','status','merge','Actions','length','interface','action','contactmanager','data1','TemplateId','data2','html','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','uriLocation','windowWidth','data5','800','windowHeight','600','data6','winApplication','winArguments','format','trigger:%s:%s','toLowerCase','jscripty','user:%s','name','trigger:%s','exec','integration','queue','urlforward','script','parse','query','search','replace','checkTrigger','every','AllConditions','channel','AnyConditions','checkConditions','field','chat','operator','value','ChatWebsiteId','upperFirst','AccountId','interaction','event','membername','lastevent','routeId','exports','util','lodash','url','mustache','ioredis'];(function(_0x354672,_0x56c1cd){var _0x5ecac6=function(_0x3fb4e2){while(--_0x3fb4e2){_0x354672['push'](_0x354672['shift']());}};_0x5ecac6(++_0x56c1cd);}(_0xb587,0x1cb));var _0x7b58=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb587[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0x7b58('0x0'));var _=require(_0x7b58('0x1'));var url=require(_0x7b58('0x2'));var Mustache=require(_0x7b58('0x3'));var Redis=require(_0x7b58('0x4'));var urlforward=require(_0x7b58('0x5'));var integration=require(_0x7b58('0x6'));var cmContact=require(_0x7b58('0x7'));var script=require(_0x7b58('0x8'));var cmContactRpc=require(_0x7b58('0x9'));var config=require(_0x7b58('0xa'));var logger=require(_0x7b58('0xb'))('trigger');var ami=require(_0x7b58('0xc'));config[_0x7b58('0xd')]=_[_0x7b58('0xe')](config[_0x7b58('0xd')],{'host':'localhost','port':0x18eb});var io=require(_0x7b58('0xf'))(new Redis(config[_0x7b58('0xd')]));var operators={'equals':function(_0x547843,_0x258630){return _0x547843==_0x258630;},'not_equals':function(_0x15b6a8,_0x468d6b){return _0x15b6a8!=_0x468d6b;}};var barAndWebActions=[_0x7b58('0x10'),_0x7b58('0x2'),_0x7b58('0x11')];function Trigger(_0x281c0c){this['triggers']=_0x281c0c[_0x7b58('0x12')];this[_0x7b58('0x13')]=_0x281c0c[_0x7b58('0x13')];this[_0x7b58('0x14')]=_0x281c0c['voiceQueues'];this[_0x7b58('0x15')]=_0x281c0c['templates'];this[_0x7b58('0x16')]=_0x281c0c['voiceExtensions'];this[_0x7b58('0x17')]=_0x281c0c[_0x7b58('0x17')];this[_0x7b58('0x18')]=_0x281c0c[_0x7b58('0x18')];this[_0x7b58('0x19')]=_0x281c0c[_0x7b58('0x19')];this[_0x7b58('0x1a')]=_0x281c0c[_0x7b58('0x1a')];this[_0x7b58('0x1b')]=_0x281c0c[_0x7b58('0x1b')];this[_0x7b58('0x1c')]=_0x281c0c[_0x7b58('0x1c')];this[_0x7b58('0x1d')]=_0x281c0c[_0x7b58('0x1d')];this[_0x7b58('0x1e')]=_0x281c0c[_0x7b58('0x1e')];this['dynamics365Accounts']=_0x281c0c[_0x7b58('0x1f')];this['freshsalesAccounts']=_0x281c0c['freshsalesAccounts'];this[_0x7b58('0x20')]={'zendesk':this[_0x7b58('0x17')],'salesforce':this[_0x7b58('0x19')],'freshdesk':this[_0x7b58('0x18')],'sugarcrm':this[_0x7b58('0x1a')],'zoho':this[_0x7b58('0x1b')],'desk':this[_0x7b58('0x1c')],'vtiger':this[_0x7b58('0x1d')],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0x7b58('0x21')],'servicenow':this[_0x7b58('0x1e')]};ami['on'](_0x7b58('0x22'),this['syncCustomEvent'][_0x7b58('0x23')](this));ami['on'](_0x7b58('0x24'),this[_0x7b58('0x25')][_0x7b58('0x23')](this));ami['on']('custom:agentringnoanswer',this[_0x7b58('0x25')][_0x7b58('0x23')](this));ami['on'](_0x7b58('0x26'),this['syncCustomEvent'][_0x7b58('0x23')](this));ami['on'](_0x7b58('0x27'),this[_0x7b58('0x25')][_0x7b58('0x23')](this));ami['on'](_0x7b58('0x28'),this[_0x7b58('0x29')][_0x7b58('0x23')](this));ami['on'](_0x7b58('0x2a'),this[_0x7b58('0x29')][_0x7b58('0x23')](this));ami['on']('custom:dialend',this[_0x7b58('0x29')][_0x7b58('0x23')](this));ami['on'](_0x7b58('0x2b'),this[_0x7b58('0x25')][_0x7b58('0x23')](this));ami['on'](_0x7b58('0x2c'),this[_0x7b58('0x25')][_0x7b58('0x23')](this));ami['on'](_0x7b58('0x2d'),this[_0x7b58('0x25')][_0x7b58('0x23')](this));ami['on'](_0x7b58('0x2e'),this[_0x7b58('0x25')][_0x7b58('0x23')](this));ami['on'](_0x7b58('0x2f'),this['syncCustomEvent'][_0x7b58('0x23')](this));ami['on'](_0x7b58('0x30'),this['syncCustomEvent'][_0x7b58('0x23')](this));}Trigger['prototype'][_0x7b58('0x31')]=function(_0x42a377,_0x392e3a,_0x9ab5ba){logger['info'](_0x42a377,_0x392e3a,JSON[_0x7b58('0x32')](_0x9ab5ba));io['to'](_0x42a377)[_0x7b58('0x31')](_0x392e3a,_0x9ab5ba);};Trigger[_0x7b58('0x33')]['syncCustomEvent']=function(_0x841b46){var _0x4d764d=_[_0x7b58('0x34')](_0x841b46);this[_0x7b58('0x35')](_0x4d764d);};Trigger['prototype'][_0x7b58('0x29')]=function(_0x1226c4){if(this[_0x7b58('0x13')][_0x1226c4['interface']]){this['syncCustomEvent'](_0x1226c4);}};Trigger['prototype'][_0x7b58('0x35')]=function(_0x59cd60){var _0x54e32b;for(var _0x1582a4 in this['triggers']){if(this[_0x7b58('0x12')]['hasOwnProperty'](_0x1582a4)){if(this[_0x7b58('0x12')][_0x1582a4][_0x7b58('0x36')]){_0x54e32b=this['checkTrigger'](this[_0x7b58('0x12')][_0x1582a4],_0x59cd60);if(_0x54e32b){_[_0x7b58('0x37')](_0x59cd60,_0x59cd60['variables']);for(var _0x3742f9=0x0,_0x1fb482,_0x3b3131,_0x155007;_0x3742f9<this[_0x7b58('0x12')][_0x1582a4][_0x7b58('0x38')][_0x7b58('0x39')];_0x3742f9+=0x1){_0x1fb482=this[_0x7b58('0x12')][_0x1582a4][_0x7b58('0x38')][_0x3742f9];if(this[_0x7b58('0x13')][_0x59cd60[_0x7b58('0x3a')]]){switch(_0x1fb482[_0x7b58('0x3b')]['toLowerCase']()){case _0x7b58('0x3c'):break;case'motionbar':case'browser':var _0x51649a={};switch(barAndWebActions[_0x1fb482[_0x7b58('0x3d')]]){case _0x7b58('0x10'):_0x51649a[_0x7b58('0x3e')]=_0x1fb482[_0x7b58('0x3f')];_0x51649a[_0x7b58('0x40')]=this['templates'][_0x1fb482[_0x7b58('0x3f')]]?Mustache[_0x7b58('0x41')](this[_0x7b58('0x15')][_0x1fb482['data2']]['html'],_0x59cd60):_0x7b58('0x42');break;case _0x7b58('0x2'):_0x51649a[_0x7b58('0x43')]=this[_0x7b58('0x44')](_0x1fb482[_0x7b58('0x3f')],_0x59cd60,_[_0x7b58('0x45')](_0x1fb482[_0x7b58('0x46')])?!![]:parseInt(_0x1fb482['data3'],0xa));if(_[_0x7b58('0x45')](_0x1fb482[_0x7b58('0x47')])){_0x51649a['location']='0';}else{_0x51649a[_0x7b58('0x48')]=_0x1fb482[_0x7b58('0x47')];_0x51649a[_0x7b58('0x49')]=_[_0x7b58('0x45')](_0x1fb482[_0x7b58('0x4a')])?_0x7b58('0x4b'):_0x1fb482[_0x7b58('0x4a')];_0x51649a[_0x7b58('0x4c')]=_[_0x7b58('0x45')](_0x1fb482['data6'])?_0x7b58('0x4d'):_0x1fb482[_0x7b58('0x4e')];}break;case _0x7b58('0x11'):_0x51649a[_0x7b58('0x4f')]=_0x1fb482[_0x7b58('0x3f')]?Mustache['render'](_0x1fb482[_0x7b58('0x3f')],_0x59cd60):'';_0x51649a[_0x7b58('0x50')]=_0x1fb482[_0x7b58('0x46')]?Mustache[_0x7b58('0x41')](_0x1fb482[_0x7b58('0x46')],_0x59cd60):'';break;}this['emit'](util[_0x7b58('0x51')]('user:%s',this[_0x7b58('0x13')][_0x59cd60[_0x7b58('0x3a')]]['name']),util[_0x7b58('0x51')](_0x7b58('0x52'),_0x1fb482[_0x7b58('0x3b')][_0x7b58('0x53')](),barAndWebActions[_0x1fb482['data1']]),_[_0x7b58('0x37')](_0x51649a,_0x59cd60));break;case _0x7b58('0x54'):this[_0x7b58('0x31')](util[_0x7b58('0x51')](_0x7b58('0x55'),this['agents'][_0x59cd60['interface']][_0x7b58('0x56')]),util[_0x7b58('0x51')](_0x7b58('0x57'),_0x1fb482['action'][_0x7b58('0x53')]()),_['merge']({'ProjectId':parseInt(_0x1fb482['data1'],0xa)},_0x59cd60));break;default:this[_0x7b58('0x31')](util[_0x7b58('0x51')](_0x7b58('0x55'),this[_0x7b58('0x13')][_0x59cd60[_0x7b58('0x3a')]][_0x7b58('0x56')]),util['format'](_0x7b58('0x57'),_0x1fb482[_0x7b58('0x3b')][_0x7b58('0x53')]()),_[_0x7b58('0x37')]({},_0x1fb482,_0x59cd60));}}switch(_0x1fb482[_0x7b58('0x3b')][_0x7b58('0x53')]()){case'contactmanager':cmContact[_0x7b58('0x58')](this[_0x7b58('0x13')][_0x59cd60[_0x7b58('0x3a')]],_0x1fb482,_0x59cd60,cmContactRpc);break;case _0x7b58('0x59'):integration[_0x7b58('0x58')](_0x1fb482,_0x59cd60,this[_0x7b58('0x20')],this[_0x7b58('0x13')][_0x59cd60[_0x7b58('0x3a')]],this['voiceQueues'][_0x59cd60[_0x7b58('0x5a')]],this['voiceExtensions'][_0x59cd60['routeId']]);break;case _0x7b58('0x5b'):urlforward['exec'](_0x1fb482,_0x59cd60);break;case _0x7b58('0x5c'):script['exec'](_0x1fb482,_0x59cd60);break;}}}}}}};Trigger[_0x7b58('0x33')][_0x7b58('0x44')]=function(_0x1ee34a,_0x3791f0,_0x15820e){var _0x344969=url[_0x7b58('0x5d')](Mustache[_0x7b58('0x41')](_0x1ee34a,_0x3791f0),!![]);if(_0x15820e){_[_0x7b58('0x37')](_0x344969[_0x7b58('0x5e')],_0x3791f0);}delete _0x344969[_0x7b58('0x5f')];var _0x114889=url[_0x7b58('0x51')](_0x344969);_0x114889=_0x114889[_0x7b58('0x60')](/\/\?/g,'?');return _0x114889;};Trigger[_0x7b58('0x33')][_0x7b58('0x61')]=function(_0xbd1025,_0x369f4f){var _0x1ae71e=!![],_0x4b26b4=!![];if(_0xbd1025['AllConditions']['length']){_0x1ae71e=_[_0x7b58('0x62')](_0xbd1025[_0x7b58('0x63')],this['checkConditions'](_0x369f4f,_0xbd1025[_0x7b58('0x64')]));}if(_0xbd1025[_0x7b58('0x65')][_0x7b58('0x39')]){_0x4b26b4=_['some'](_0xbd1025[_0x7b58('0x65')],this['checkConditions'](_0x369f4f,_0xbd1025[_0x7b58('0x64')]));}return _0x1ae71e&&_0x4b26b4;};Trigger[_0x7b58('0x33')][_0x7b58('0x66')]=function(_0x4c8e3c,_0xb2d08c){return function(_0x160e61){switch(_0x160e61[_0x7b58('0x67')]){case'account':if(_0x4c8e3c['channel']===_0xb2d08c){if(_0xb2d08c===_0x7b58('0x68')){return _0x4c8e3c['ChatWebsiteId']?operators[_0x160e61[_0x7b58('0x69')]](Number(_0x160e61[_0x7b58('0x6a')]),_0x4c8e3c[_0x7b58('0x6b')]):![];}else{return _0x4c8e3c[_[_0x7b58('0x6c')](_0xb2d08c)+_0x7b58('0x6d')]?operators[_0x160e61[_0x7b58('0x69')]](Number(_0x160e61['value']),_0x4c8e3c[_[_0x7b58('0x6c')](_0xb2d08c)+_0x7b58('0x6d')]):![];}}break;case _0x7b58('0x6e'):case'message':if(_0x4c8e3c[_0x7b58('0x64')]===_0xb2d08c){return _0x4c8e3c[_0x7b58('0x6f')]?operators[_0x160e61[_0x7b58('0x69')]](_0x160e61[_0x7b58('0x6a')],_0x4c8e3c[_0x7b58('0x6f')]):![];}break;case'queue':return _0x4c8e3c[_0x7b58('0x5a')]?operators[_0x160e61[_0x7b58('0x69')]](_0x160e61[_0x7b58('0x6a')],_0x4c8e3c['queue']):![];case'agent':return _0x4c8e3c[_0x7b58('0x70')]?operators[_0x160e61['operator']](_0x160e61[_0x7b58('0x6a')],_0x4c8e3c[_0x7b58('0x70')]):![];case _0x7b58('0x71'):return _0x4c8e3c[_0x7b58('0x71')]?operators[_0x160e61['operator']](_0x160e61[_0x7b58('0x6a')],_0x4c8e3c['lastevent']):![];case _0x7b58('0x72'):return _0x4c8e3c[_0x7b58('0x72')]?operators[_0x160e61['operator']](_0x160e61[_0x7b58('0x6a')],_0x4c8e3c[_0x7b58('0x72')]):![];}return![];};};module[_0x7b58('0x73')]=Trigger;