1042265941684eae9bca3a11b1679f0145d675ef
[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 _0xe062=['emit','clone','undefined','motionChannel','voice','checkTriggers','status','checkTrigger','variables','Actions','length','interface','action','toLowerCase','contactmanager','motionbar','browser','data1','html','render','data2','template\x20not\x20found','buildUri','isNil','data3','location','data4','windowWidth','data5','800','data6','600','winApplication','name','format','trigger:%s:%s','merge','jscripty','user:%s','trigger:%s','exec','integration','queue','routeId','urlforward','script','parse','query','search','AllConditions','every','channel','AnyConditions','checkConditions','field','account','chat','ChatWebsiteId','value','upperFirst','operator','AccountId','interaction','message','event','agent','membername','lastevent','null','substatus','equals','util','lodash','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','socket.io-emitter','redis','popup','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','sugarcrmAccounts','custom:agentcalled','bind','syncCustomEvent','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:queuecallerabandon','custom:dialbegin','custom:dialconnect','syncAgentDial','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','info','stringify'];(function(_0x5e1fd7,_0x3adeec){var _0x4e5839=function(_0x5d5eed){while(--_0x5d5eed){_0x5e1fd7['push'](_0x5e1fd7['shift']());}};_0x4e5839(++_0x3adeec);}(_0xe062,0x1b8));var _0x2e06=function(_0x34713c,_0x1435da){_0x34713c=_0x34713c-0x0;var _0x4f7b47=_0xe062[_0x34713c];return _0x4f7b47;};'use strict';var util=require(_0x2e06('0x0'));var _=require(_0x2e06('0x1'));var url=require('url');var Mustache=require('mustache');var Redis=require(_0x2e06('0x2'));var urlforward=require(_0x2e06('0x3'));var integration=require(_0x2e06('0x4'));var cmContact=require(_0x2e06('0x5'));var script=require(_0x2e06('0x6'));var config=require(_0x2e06('0x7'));var logger=require(_0x2e06('0x8'))(_0x2e06('0x9'));var ami=require(_0x2e06('0xa'));config['redis']=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x2e06('0xb'))(new Redis(config[_0x2e06('0xc')]));var operators={'equals':function(_0x5103c6,_0x4ceee9){return _0x5103c6==_0x4ceee9;},'not_equals':function(_0xe26014,_0x28433e){return _0xe26014!=_0x28433e;}};var barAndWebActions=[_0x2e06('0xd'),_0x2e06('0xe'),_0x2e06('0xf')];function Trigger(_0x450369){this[_0x2e06('0x10')]=_0x450369[_0x2e06('0x10')];this[_0x2e06('0x11')]=_0x450369[_0x2e06('0x11')];this[_0x2e06('0x12')]=_0x450369[_0x2e06('0x12')];this['templates']=_0x450369[_0x2e06('0x13')];this[_0x2e06('0x14')]=_0x450369['voiceExtensions'];this['zendeskAccounts']=_0x450369[_0x2e06('0x15')];this[_0x2e06('0x16')]=_0x450369['freshdeskAccounts'];this['salesforceAccounts']=_0x450369[_0x2e06('0x17')];this['sugarcrmAccounts']=_0x450369['sugarcrmAccounts'];this[_0x2e06('0x18')]=_0x450369[_0x2e06('0x18')];this['deskAccounts']=_0x450369[_0x2e06('0x19')];this['vtigerAccounts']=_0x450369[_0x2e06('0x1a')];this['servicenowAccounts']=_0x450369[_0x2e06('0x1b')];this[_0x2e06('0x1c')]=_0x450369[_0x2e06('0x1c')];this[_0x2e06('0x1d')]=_0x450369[_0x2e06('0x1d')];this[_0x2e06('0x1e')]={'zendesk':this[_0x2e06('0x15')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0x2e06('0x16')],'sugarcrm':this[_0x2e06('0x1f')],'zoho':this[_0x2e06('0x18')],'desk':this[_0x2e06('0x19')],'vtiger':this[_0x2e06('0x1a')],'dynamics365':this[_0x2e06('0x1c')],'freshsales':this[_0x2e06('0x1d')],'servicenow':this[_0x2e06('0x1b')]};ami['on'](_0x2e06('0x20'),this['syncCustomEvent']['bind'](this));ami['on']('custom:agentconnect',this['syncCustomEvent'][_0x2e06('0x21')](this));ami['on']('custom:agentringnoanswer',this[_0x2e06('0x22')][_0x2e06('0x21')](this));ami['on']('custom:agentcomplete',this['syncCustomEvent'][_0x2e06('0x21')](this));ami['on'](_0x2e06('0x23'),this[_0x2e06('0x22')][_0x2e06('0x21')](this));ami['on'](_0x2e06('0x24'),this[_0x2e06('0x22')]['bind'](this));ami['on']('custom:agentbusy',this[_0x2e06('0x22')]['bind'](this));ami['on'](_0x2e06('0x25'),this['syncCustomEvent'][_0x2e06('0x21')](this));ami['on']('custom:agentreject',this[_0x2e06('0x22')][_0x2e06('0x21')](this));ami['on']('custom:amd',this['syncCustomEvent'][_0x2e06('0x21')](this));ami['on'](_0x2e06('0x26'),this[_0x2e06('0x22')]['bind'](this));ami['on']('custom:timeout',this[_0x2e06('0x22')][_0x2e06('0x21')](this));ami['on'](_0x2e06('0x27'),this['syncAgentDial'][_0x2e06('0x21')](this));ami['on'](_0x2e06('0x28'),this['syncAgentDial']['bind'](this));ami['on']('custom:dialend',this[_0x2e06('0x29')][_0x2e06('0x21')](this));ami['on'](_0x2e06('0x2a'),this[_0x2e06('0x22')]['bind'](this));ami['on'](_0x2e06('0x2b'),this[_0x2e06('0x22')][_0x2e06('0x21')](this));ami['on']('custom:substatus',this[_0x2e06('0x22')][_0x2e06('0x21')](this));ami['on'](_0x2e06('0x2c'),this['syncCustomEvent']['bind'](this));ami['on'](_0x2e06('0x2d'),this[_0x2e06('0x22')][_0x2e06('0x21')](this));ami['on'](_0x2e06('0x2e'),this[_0x2e06('0x22')]['bind'](this));ami['on'](_0x2e06('0x2f'),this['syncCustomEvent'][_0x2e06('0x21')](this));ami['on'](_0x2e06('0x30'),this[_0x2e06('0x22')][_0x2e06('0x21')](this));}Trigger[_0x2e06('0x31')]['emit']=function(_0xdeaaa8,_0x4e8b41,_0x593f6f){logger[_0x2e06('0x32')](_0xdeaaa8,_0x4e8b41,JSON[_0x2e06('0x33')](_0x593f6f));io['to'](_0xdeaaa8)[_0x2e06('0x34')](_0x4e8b41,_0x593f6f);};Trigger[_0x2e06('0x31')][_0x2e06('0x22')]=function(_0x3e8f4f){var _0x211d16=_[_0x2e06('0x35')](_0x3e8f4f);if(typeof _0x211d16['motionChannel']===_0x2e06('0x36')){_0x211d16[_0x2e06('0x37')]=_0x2e06('0x38');}this[_0x2e06('0x39')](_0x211d16);};Trigger[_0x2e06('0x31')][_0x2e06('0x29')]=function(_0x1f643b){if(this[_0x2e06('0x11')][_0x1f643b['interface']]){this[_0x2e06('0x22')](_0x1f643b);}};Trigger[_0x2e06('0x31')][_0x2e06('0x39')]=function(_0x1a4c0f){var _0x3ccbb5;for(var _0x523cd5 in this['triggers']){if(this['triggers']['hasOwnProperty'](_0x523cd5)){if(this[_0x2e06('0x10')][_0x523cd5][_0x2e06('0x3a')]){_0x3ccbb5=this[_0x2e06('0x3b')](this[_0x2e06('0x10')][_0x523cd5],_0x1a4c0f);if(_0x3ccbb5){_['merge'](_0x1a4c0f,_0x1a4c0f[_0x2e06('0x3c')]);for(var _0xa43190=0x0,_0x2bd1fc,_0x186c16,_0x829f75;_0xa43190<this['triggers'][_0x523cd5][_0x2e06('0x3d')][_0x2e06('0x3e')];_0xa43190+=0x1){_0x2bd1fc=this['triggers'][_0x523cd5][_0x2e06('0x3d')][_0xa43190];if(this[_0x2e06('0x11')][_0x1a4c0f[_0x2e06('0x3f')]]){switch(_0x2bd1fc[_0x2e06('0x40')][_0x2e06('0x41')]()){case _0x2e06('0x42'):break;case _0x2e06('0x43'):case _0x2e06('0x44'):var _0x40f23a={};switch(barAndWebActions[_0x2bd1fc[_0x2e06('0x45')]]){case _0x2e06('0xd'):_0x40f23a['TemplateId']=_0x2bd1fc['data2'];_0x40f23a[_0x2e06('0x46')]=this['templates'][_0x2bd1fc['data2']]?Mustache[_0x2e06('0x47')](this[_0x2e06('0x13')][_0x2bd1fc[_0x2e06('0x48')]]['html'],_0x1a4c0f):_0x2e06('0x49');break;case _0x2e06('0xe'):_0x40f23a['uri']=this[_0x2e06('0x4a')](_0x2bd1fc[_0x2e06('0x48')],_0x1a4c0f,_[_0x2e06('0x4b')](_0x2bd1fc[_0x2e06('0x4c')])?!![]:parseInt(_0x2bd1fc[_0x2e06('0x4c')],0xa));if(_[_0x2e06('0x4b')](_0x2bd1fc['data4'])){_0x40f23a[_0x2e06('0x4d')]='0';}else{_0x40f23a['uriLocation']=_0x2bd1fc[_0x2e06('0x4e')];_0x40f23a[_0x2e06('0x4f')]=_[_0x2e06('0x4b')](_0x2bd1fc[_0x2e06('0x50')])?_0x2e06('0x51'):_0x2bd1fc[_0x2e06('0x50')];_0x40f23a['windowHeight']=_['isNil'](_0x2bd1fc[_0x2e06('0x52')])?_0x2e06('0x53'):_0x2bd1fc[_0x2e06('0x52')];}break;case'winapp':_0x40f23a[_0x2e06('0x54')]=_0x2bd1fc['data2']?Mustache[_0x2e06('0x47')](_0x2bd1fc[_0x2e06('0x48')],_0x1a4c0f):'';_0x40f23a['winArguments']=_0x2bd1fc[_0x2e06('0x4c')]?Mustache[_0x2e06('0x47')](_0x2bd1fc[_0x2e06('0x4c')],_0x1a4c0f):'';break;}this[_0x2e06('0x34')](util['format']('user:%s',this['agents'][_0x1a4c0f[_0x2e06('0x3f')]][_0x2e06('0x55')]),util[_0x2e06('0x56')](_0x2e06('0x57'),_0x2bd1fc[_0x2e06('0x40')]['toLowerCase'](),barAndWebActions[_0x2bd1fc[_0x2e06('0x45')]]),_[_0x2e06('0x58')](_0x40f23a,_0x1a4c0f));break;case _0x2e06('0x59'):this['emit'](util[_0x2e06('0x56')](_0x2e06('0x5a'),this['agents'][_0x1a4c0f[_0x2e06('0x3f')]][_0x2e06('0x55')]),util['format'](_0x2e06('0x5b'),_0x2bd1fc[_0x2e06('0x40')][_0x2e06('0x41')]()),_[_0x2e06('0x58')]({'ProjectId':parseInt(_0x2bd1fc['data1'],0xa)},_0x1a4c0f));break;default:this[_0x2e06('0x34')](util['format'](_0x2e06('0x5a'),this[_0x2e06('0x11')][_0x1a4c0f[_0x2e06('0x3f')]]['name']),util[_0x2e06('0x56')]('trigger:%s',_0x2bd1fc[_0x2e06('0x40')][_0x2e06('0x41')]()),_[_0x2e06('0x58')]({},_0x2bd1fc,_0x1a4c0f));}}switch(_0x2bd1fc[_0x2e06('0x40')][_0x2e06('0x41')]()){case _0x2e06('0x42'):cmContact[_0x2e06('0x5c')](this[_0x2e06('0x11')][_0x1a4c0f[_0x2e06('0x3f')]],this[_0x2e06('0x10')][_0x523cd5],_0x2bd1fc,_0x1a4c0f);break;case _0x2e06('0x5d'):integration[_0x2e06('0x5c')](_0x2bd1fc,_0x1a4c0f,this[_0x2e06('0x1e')],this[_0x2e06('0x11')][_0x1a4c0f[_0x2e06('0x3f')]],this[_0x2e06('0x12')][_0x1a4c0f[_0x2e06('0x5e')]],this[_0x2e06('0x14')][_0x1a4c0f[_0x2e06('0x5f')]]);break;case _0x2e06('0x60'):urlforward[_0x2e06('0x5c')](_0x2bd1fc,_0x1a4c0f);break;case _0x2e06('0x61'):script[_0x2e06('0x5c')](_0x2bd1fc,_0x1a4c0f);break;}}}}}}};Trigger[_0x2e06('0x31')][_0x2e06('0x4a')]=function(_0x12133d,_0x16ae78,_0x58d85f){var _0x446ad5=url[_0x2e06('0x62')](Mustache['render'](_0x12133d,_0x16ae78),!![]);if(_0x58d85f){_['merge'](_0x446ad5[_0x2e06('0x63')],_0x16ae78);}delete _0x446ad5[_0x2e06('0x64')];var _0xb1dc16=url[_0x2e06('0x56')](_0x446ad5);_0xb1dc16=_0xb1dc16['replace'](/\/\?/g,'?');return _0xb1dc16;};Trigger[_0x2e06('0x31')][_0x2e06('0x3b')]=function(_0x1459fe,_0x475e06){var _0x5f11c8=!![];var _0xc7392f=!![];var _0x110314=![];if(_0x1459fe['channel']===_0x475e06['motionChannel']){_0x110314=!![];}if(_0x1459fe[_0x2e06('0x65')][_0x2e06('0x3e')]){_0x5f11c8=_[_0x2e06('0x66')](_0x1459fe['AllConditions'],this['checkConditions'](_0x475e06,_0x1459fe[_0x2e06('0x67')]));}if(_0x1459fe[_0x2e06('0x68')]['length']){_0xc7392f=_['some'](_0x1459fe[_0x2e06('0x68')],this[_0x2e06('0x69')](_0x475e06,_0x1459fe['channel']));}return _0x110314&&_0x5f11c8&&_0xc7392f;};Trigger[_0x2e06('0x31')][_0x2e06('0x69')]=function(_0xe83d1b,_0x4deb60){return function(_0x5bc488){switch(_0x5bc488[_0x2e06('0x6a')]){case _0x2e06('0x6b'):if(_0xe83d1b[_0x2e06('0x67')]===_0x4deb60){if(_0x4deb60===_0x2e06('0x6c')){return _0xe83d1b[_0x2e06('0x6d')]?operators[_0x5bc488['operator']](Number(_0x5bc488[_0x2e06('0x6e')]),_0xe83d1b[_0x2e06('0x6d')]):![];}else{return _0xe83d1b[_[_0x2e06('0x6f')](_0x4deb60)+'AccountId']?operators[_0x5bc488[_0x2e06('0x70')]](Number(_0x5bc488[_0x2e06('0x6e')]),_0xe83d1b[_[_0x2e06('0x6f')](_0x4deb60)+_0x2e06('0x71')]):![];}}break;case _0x2e06('0x72'):case _0x2e06('0x73'):if(_0xe83d1b[_0x2e06('0x67')]===_0x4deb60){return _0xe83d1b[_0x2e06('0x74')]?operators[_0x5bc488[_0x2e06('0x70')]](_0x5bc488[_0x2e06('0x6e')],_0xe83d1b[_0x2e06('0x74')]):![];}break;case _0x2e06('0x5e'):return _0xe83d1b['queue']?operators[_0x5bc488[_0x2e06('0x70')]](_0x5bc488['value'],_0xe83d1b[_0x2e06('0x5e')]):![];case _0x2e06('0x75'):return _0xe83d1b['membername']?operators[_0x5bc488[_0x2e06('0x70')]](_0x5bc488[_0x2e06('0x6e')],_0xe83d1b[_0x2e06('0x76')]):![];case'lastevent':return _0xe83d1b['lastevent']?operators[_0x5bc488[_0x2e06('0x70')]](_0x5bc488[_0x2e06('0x6e')],_0xe83d1b[_0x2e06('0x77')]):![];case _0x2e06('0x5f'):return _0xe83d1b[_0x2e06('0x5f')]?operators[_0x5bc488['operator']](_0x5bc488[_0x2e06('0x6e')],_0xe83d1b[_0x2e06('0x5f')]):![];case'mailSubstatus':if(_0x5bc488[_0x2e06('0x6e')]===_0x2e06('0x78'))_0x5bc488[_0x2e06('0x6e')]=null;return typeof _0xe83d1b['substatus']!=='undefined'?operators[_0x5bc488[_0x2e06('0x70')]](_0x5bc488[_0x2e06('0x6e')],_0xe83d1b[_0x2e06('0x79')]):![];case'offlineMessage':if(_0xe83d1b[_0x2e06('0x67')]===_0x4deb60){return _0x5bc488[_0x2e06('0x6e')]==='created'&&_0x5bc488[_0x2e06('0x70')]===_0x2e06('0x7a')?!![]:![];}break;}return![];};};module['exports']=Trigger;