1a2264a5b5ae66046cf330e476714048f0878be8
[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 _0x9dc4=['../../../config/environment','../../../config/logger','trigger','../ami','defaults','redis','localhost','socket.io-emitter','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','accounts','custom:agentcalled','bind','custom:agentconnect','syncCustomEvent','custom:agentringnoanswer','custom:agentcomplete','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','stringify','clone','checkTriggers','hasOwnProperty','merge','variables','Actions','length','interface','contactmanager','browser','data1','popup','data2','render','template\x20not\x20found','buildUri','isNil','data3','data4','location','uriLocation','windowWidth','data5','windowHeight','data6','winApplication','format','user:%s','name','trigger:%s:%s','action','toLowerCase','jscripty','trigger:%s','exec','integration','queue','routeId','urlforward','script','parse','search','replace','checkTrigger','AllConditions','checkConditions','channel','AnyConditions','some','account','chat','ChatWebsiteId','operator','upperFirst','value','message','event','agent','membername','lastevent','exports','util','lodash','url','mustache','ioredis','./integration','./cmContact','./script'];(function(_0x33edfa,_0x5ee1be){var _0xaf2666=function(_0x262de3){while(--_0x262de3){_0x33edfa['push'](_0x33edfa['shift']());}};_0xaf2666(++_0x5ee1be);}(_0x9dc4,0x6c));var _0x49dc=function(_0x43af06,_0x1e8cfc){_0x43af06=_0x43af06-0x0;var _0x275ef5=_0x9dc4[_0x43af06];return _0x275ef5;};'use strict';var util=require(_0x49dc('0x0'));var _=require(_0x49dc('0x1'));var url=require(_0x49dc('0x2'));var Mustache=require(_0x49dc('0x3'));var Redis=require(_0x49dc('0x4'));var urlforward=require('./urlforward');var integration=require(_0x49dc('0x5'));var cmContact=require(_0x49dc('0x6'));var script=require(_0x49dc('0x7'));var config=require(_0x49dc('0x8'));var logger=require(_0x49dc('0x9'))(_0x49dc('0xa'));var ami=require(_0x49dc('0xb'));config['redis']=_[_0x49dc('0xc')](config[_0x49dc('0xd')],{'host':_0x49dc('0xe'),'port':0x18eb});var io=require(_0x49dc('0xf'))(new Redis(config['redis']));var operators={'equals':function(_0x4dbe0e,_0x4d9edf){return _0x4dbe0e==_0x4d9edf;},'not_equals':function(_0x2edc23,_0x3bd849){return _0x2edc23!=_0x3bd849;}};var barAndWebActions=['popup',_0x49dc('0x2'),_0x49dc('0x10')];function Trigger(_0x1d9467){this[_0x49dc('0x11')]=_0x1d9467[_0x49dc('0x11')];this[_0x49dc('0x12')]=_0x1d9467[_0x49dc('0x12')];this[_0x49dc('0x13')]=_0x1d9467[_0x49dc('0x13')];this[_0x49dc('0x14')]=_0x1d9467[_0x49dc('0x14')];this[_0x49dc('0x15')]=_0x1d9467[_0x49dc('0x15')];this[_0x49dc('0x16')]=_0x1d9467['zendeskAccounts'];this[_0x49dc('0x17')]=_0x1d9467['freshdeskAccounts'];this[_0x49dc('0x18')]=_0x1d9467['salesforceAccounts'];this[_0x49dc('0x19')]=_0x1d9467[_0x49dc('0x19')];this[_0x49dc('0x1a')]=_0x1d9467[_0x49dc('0x1a')];this[_0x49dc('0x1b')]=_0x1d9467['deskAccounts'];this['vtigerAccounts']=_0x1d9467[_0x49dc('0x1c')];this[_0x49dc('0x1d')]=_0x1d9467[_0x49dc('0x1d')];this[_0x49dc('0x1e')]=_0x1d9467[_0x49dc('0x1e')];this['freshsalesAccounts']=_0x1d9467['freshsalesAccounts'];this[_0x49dc('0x1f')]={'zendesk':this[_0x49dc('0x16')],'salesforce':this[_0x49dc('0x18')],'freshdesk':this[_0x49dc('0x17')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0x49dc('0x1a')],'desk':this[_0x49dc('0x1b')],'vtiger':this[_0x49dc('0x1c')],'dynamics365':this['dynamics365Accounts'],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x49dc('0x1d')]};ami['on'](_0x49dc('0x20'),this['syncCustomEvent'][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x22'),this[_0x49dc('0x23')]['bind'](this));ami['on'](_0x49dc('0x24'),this[_0x49dc('0x23')][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x25'),this[_0x49dc('0x23')][_0x49dc('0x21')](this));ami['on']('custom:agentnosuchnumber',this['syncCustomEvent'][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x26'),this[_0x49dc('0x23')][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x27'),this[_0x49dc('0x23')][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x28'),this['syncCustomEvent'][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x29'),this[_0x49dc('0x23')][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x2a'),this[_0x49dc('0x23')][_0x49dc('0x21')](this));ami['on']('custom:timeout',this['syncCustomEvent'][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x2b'),this[_0x49dc('0x2c')]['bind'](this));ami['on'](_0x49dc('0x2d'),this[_0x49dc('0x2c')][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x2e'),this[_0x49dc('0x2c')][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x2f'),this[_0x49dc('0x23')][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x30'),this['syncCustomEvent'][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x31'),this[_0x49dc('0x23')]['bind'](this));ami['on']('custom:outgoingmessage',this[_0x49dc('0x23')][_0x49dc('0x21')](this));ami['on'](_0x49dc('0x32'),this[_0x49dc('0x23')]['bind'](this));ami['on'](_0x49dc('0x33'),this[_0x49dc('0x23')][_0x49dc('0x21')](this));}Trigger[_0x49dc('0x34')][_0x49dc('0x35')]=function(_0x471ade,_0x5289ee,_0xd25309){logger['info'](_0x471ade,_0x5289ee,JSON[_0x49dc('0x36')](_0xd25309));io['to'](_0x471ade)[_0x49dc('0x35')](_0x5289ee,_0xd25309);};Trigger[_0x49dc('0x34')][_0x49dc('0x23')]=function(_0x106713){var _0x2c4db4=_[_0x49dc('0x37')](_0x106713);this[_0x49dc('0x38')](_0x2c4db4);};Trigger[_0x49dc('0x34')]['syncAgentDial']=function(_0x537b58){if(this[_0x49dc('0x12')][_0x537b58['interface']]){this[_0x49dc('0x23')](_0x537b58);}};Trigger[_0x49dc('0x34')][_0x49dc('0x38')]=function(_0x187344){var _0x249520;for(var _0x30b6eb in this[_0x49dc('0x11')]){if(this[_0x49dc('0x11')][_0x49dc('0x39')](_0x30b6eb)){if(this[_0x49dc('0x11')][_0x30b6eb]['status']){_0x249520=this['checkTrigger'](this[_0x49dc('0x11')][_0x30b6eb],_0x187344);if(_0x249520){_[_0x49dc('0x3a')](_0x187344,_0x187344[_0x49dc('0x3b')]);for(var _0x102d70=0x0,_0x56c887,_0x22be52,_0x2d8da7;_0x102d70<this[_0x49dc('0x11')][_0x30b6eb][_0x49dc('0x3c')][_0x49dc('0x3d')];_0x102d70+=0x1){_0x56c887=this[_0x49dc('0x11')][_0x30b6eb]['Actions'][_0x102d70];if(this[_0x49dc('0x12')][_0x187344[_0x49dc('0x3e')]]){switch(_0x56c887['action']['toLowerCase']()){case _0x49dc('0x3f'):break;case'motionbar':case _0x49dc('0x40'):var _0x3e3dd9={};switch(barAndWebActions[_0x56c887[_0x49dc('0x41')]]){case _0x49dc('0x42'):_0x3e3dd9['TemplateId']=_0x56c887[_0x49dc('0x43')];_0x3e3dd9['html']=this['templates'][_0x56c887['data2']]?Mustache[_0x49dc('0x44')](this['templates'][_0x56c887[_0x49dc('0x43')]]['html'],_0x187344):_0x49dc('0x45');break;case _0x49dc('0x2'):_0x3e3dd9['uri']=this[_0x49dc('0x46')](_0x56c887[_0x49dc('0x43')],_0x187344,_[_0x49dc('0x47')](_0x56c887[_0x49dc('0x48')])?!![]:parseInt(_0x56c887[_0x49dc('0x48')],0xa));if(_[_0x49dc('0x47')](_0x56c887[_0x49dc('0x49')])){_0x3e3dd9[_0x49dc('0x4a')]='0';}else{_0x3e3dd9[_0x49dc('0x4b')]=_0x56c887[_0x49dc('0x49')];_0x3e3dd9[_0x49dc('0x4c')]=_['isNil'](_0x56c887['data5'])?'800':_0x56c887[_0x49dc('0x4d')];_0x3e3dd9[_0x49dc('0x4e')]=_[_0x49dc('0x47')](_0x56c887[_0x49dc('0x4f')])?'600':_0x56c887[_0x49dc('0x4f')];}break;case _0x49dc('0x10'):_0x3e3dd9[_0x49dc('0x50')]=_0x56c887[_0x49dc('0x43')]?Mustache[_0x49dc('0x44')](_0x56c887[_0x49dc('0x43')],_0x187344):'';_0x3e3dd9['winArguments']=_0x56c887[_0x49dc('0x48')]?Mustache[_0x49dc('0x44')](_0x56c887[_0x49dc('0x48')],_0x187344):'';break;}this[_0x49dc('0x35')](util[_0x49dc('0x51')](_0x49dc('0x52'),this[_0x49dc('0x12')][_0x187344['interface']][_0x49dc('0x53')]),util[_0x49dc('0x51')](_0x49dc('0x54'),_0x56c887[_0x49dc('0x55')][_0x49dc('0x56')](),barAndWebActions[_0x56c887['data1']]),_[_0x49dc('0x3a')](_0x3e3dd9,_0x187344));break;case _0x49dc('0x57'):this[_0x49dc('0x35')](util[_0x49dc('0x51')](_0x49dc('0x52'),this[_0x49dc('0x12')][_0x187344[_0x49dc('0x3e')]][_0x49dc('0x53')]),util['format'](_0x49dc('0x58'),_0x56c887['action'][_0x49dc('0x56')]()),_['merge']({'ProjectId':parseInt(_0x56c887[_0x49dc('0x41')],0xa)},_0x187344));break;default:this[_0x49dc('0x35')](util['format'](_0x49dc('0x52'),this[_0x49dc('0x12')][_0x187344['interface']][_0x49dc('0x53')]),util[_0x49dc('0x51')](_0x49dc('0x58'),_0x56c887['action']['toLowerCase']()),_[_0x49dc('0x3a')]({},_0x56c887,_0x187344));}}switch(_0x56c887[_0x49dc('0x55')][_0x49dc('0x56')]()){case _0x49dc('0x3f'):cmContact[_0x49dc('0x59')](this['agents'][_0x187344[_0x49dc('0x3e')]],this[_0x49dc('0x11')][_0x30b6eb],_0x56c887,_0x187344);break;case _0x49dc('0x5a'):integration[_0x49dc('0x59')](_0x56c887,_0x187344,this[_0x49dc('0x1f')],this['agents'][_0x187344[_0x49dc('0x3e')]],this['voiceQueues'][_0x187344[_0x49dc('0x5b')]],this[_0x49dc('0x15')][_0x187344[_0x49dc('0x5c')]]);break;case _0x49dc('0x5d'):urlforward[_0x49dc('0x59')](_0x56c887,_0x187344);break;case _0x49dc('0x5e'):script['exec'](_0x56c887,_0x187344);break;}}}}}}};Trigger[_0x49dc('0x34')][_0x49dc('0x46')]=function(_0x4d6287,_0x36aeab,_0x5d7be6){var _0x17a51=url[_0x49dc('0x5f')](Mustache[_0x49dc('0x44')](_0x4d6287,_0x36aeab),!![]);if(_0x5d7be6){_[_0x49dc('0x3a')](_0x17a51['query'],_0x36aeab);}delete _0x17a51[_0x49dc('0x60')];var _0xb40aae=url[_0x49dc('0x51')](_0x17a51);_0xb40aae=_0xb40aae[_0x49dc('0x61')](/\/\?/g,'?');return _0xb40aae;};Trigger[_0x49dc('0x34')][_0x49dc('0x62')]=function(_0x8d26d4,_0x1dc310){var _0x5bc9ec=!![],_0x1b47eb=!![];if(_0x8d26d4[_0x49dc('0x63')]['length']){_0x5bc9ec=_['every'](_0x8d26d4[_0x49dc('0x63')],this[_0x49dc('0x64')](_0x1dc310,_0x8d26d4[_0x49dc('0x65')]));}if(_0x8d26d4[_0x49dc('0x66')]['length']){_0x1b47eb=_[_0x49dc('0x67')](_0x8d26d4[_0x49dc('0x66')],this[_0x49dc('0x64')](_0x1dc310,_0x8d26d4[_0x49dc('0x65')]));}return _0x5bc9ec&&_0x1b47eb;};Trigger[_0x49dc('0x34')][_0x49dc('0x64')]=function(_0x2c93d0,_0x3205a7){return function(_0x5063dc){switch(_0x5063dc['field']){case _0x49dc('0x68'):if(_0x2c93d0[_0x49dc('0x65')]===_0x3205a7){if(_0x3205a7===_0x49dc('0x69')){return _0x2c93d0[_0x49dc('0x6a')]?operators[_0x5063dc[_0x49dc('0x6b')]](Number(_0x5063dc['value']),_0x2c93d0[_0x49dc('0x6a')]):![];}else{return _0x2c93d0[_[_0x49dc('0x6c')](_0x3205a7)+'AccountId']?operators[_0x5063dc[_0x49dc('0x6b')]](Number(_0x5063dc[_0x49dc('0x6d')]),_0x2c93d0[_[_0x49dc('0x6c')](_0x3205a7)+'AccountId']):![];}}break;case'interaction':case _0x49dc('0x6e'):if(_0x2c93d0[_0x49dc('0x65')]===_0x3205a7){return _0x2c93d0[_0x49dc('0x6f')]?operators[_0x5063dc[_0x49dc('0x6b')]](_0x5063dc[_0x49dc('0x6d')],_0x2c93d0[_0x49dc('0x6f')]):![];}break;case _0x49dc('0x5b'):return _0x2c93d0['queue']?operators[_0x5063dc[_0x49dc('0x6b')]](_0x5063dc[_0x49dc('0x6d')],_0x2c93d0[_0x49dc('0x5b')]):![];case _0x49dc('0x70'):return _0x2c93d0[_0x49dc('0x71')]?operators[_0x5063dc[_0x49dc('0x6b')]](_0x5063dc[_0x49dc('0x6d')],_0x2c93d0[_0x49dc('0x71')]):![];case'lastevent':return _0x2c93d0[_0x49dc('0x72')]?operators[_0x5063dc[_0x49dc('0x6b')]](_0x5063dc[_0x49dc('0x6d')],_0x2c93d0[_0x49dc('0x72')]):![];case _0x49dc('0x5c'):return _0x2c93d0['routeId']?operators[_0x5063dc[_0x49dc('0x6b')]](_0x5063dc['value'],_0x2c93d0[_0x49dc('0x5c')]):![];}return![];};};module[_0x49dc('0x73')]=Trigger;