Built motion from commit (unavailable).|2.5.3
[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 _0xdd8f=['../../../config/environment','../../../config/logger','trigger','../ami','defaults','redis','localhost','socket.io-emitter','url','winapp','triggers','agents','voiceQueues','voiceExtensions','zendeskAccounts','freshdeskAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','salesforceAccounts','bind','syncCustomEvent','custom:agentcomplete','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:outgoingmessage','custom:acceptmessage','stringify','emit','prototype','clone','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','templates','template\x20not\x20found','isNil','data3','data4','location','uriLocation','windowWidth','data5','windowHeight','data6','600','winApplication','render','format','user:%s','trigger:%s:%s','jscripty','name','trigger:%s','exec','integration','queue','routeId','urlforward','script','parse','search','replace','AllConditions','checkConditions','channel','AnyConditions','some','field','account','chat','operator','value','ChatWebsiteId','upperFirst','AccountId','event','agent','membername','lastevent','exports','lodash','mustache','ioredis','./urlforward','./integration','./cmContact','./script'];(function(_0x55b3a8,_0x5bb634){var _0x821732=function(_0x209e29){while(--_0x209e29){_0x55b3a8['push'](_0x55b3a8['shift']());}};_0x821732(++_0x5bb634);}(_0xdd8f,0x6b));var _0xfdd8=function(_0x456ce5,_0x4b6aca){_0x456ce5=_0x456ce5-0x0;var _0x45245f=_0xdd8f[_0x456ce5];return _0x45245f;};'use strict';var util=require('util');var _=require(_0xfdd8('0x0'));var url=require('url');var Mustache=require(_0xfdd8('0x1'));var Redis=require(_0xfdd8('0x2'));var urlforward=require(_0xfdd8('0x3'));var integration=require(_0xfdd8('0x4'));var cmContact=require(_0xfdd8('0x5'));var script=require(_0xfdd8('0x6'));var cmContactRpc=require('../rpc/cmContact');var config=require(_0xfdd8('0x7'));var logger=require(_0xfdd8('0x8'))(_0xfdd8('0x9'));var ami=require(_0xfdd8('0xa'));config['redis']=_[_0xfdd8('0xb')](config[_0xfdd8('0xc')],{'host':_0xfdd8('0xd'),'port':0x18eb});var io=require(_0xfdd8('0xe'))(new Redis(config['redis']));var operators={'equals':function(_0x13e6e6,_0xb4803){return _0x13e6e6==_0xb4803;},'not_equals':function(_0x1b87a3,_0x55a8b0){return _0x1b87a3!=_0x55a8b0;}};var barAndWebActions=['popup',_0xfdd8('0xf'),_0xfdd8('0x10')];function Trigger(_0x4a16f1){this[_0xfdd8('0x11')]=_0x4a16f1['triggers'];this[_0xfdd8('0x12')]=_0x4a16f1[_0xfdd8('0x12')];this[_0xfdd8('0x13')]=_0x4a16f1[_0xfdd8('0x13')];this['templates']=_0x4a16f1['templates'];this['voiceExtensions']=_0x4a16f1[_0xfdd8('0x14')];this[_0xfdd8('0x15')]=_0x4a16f1['zendeskAccounts'];this[_0xfdd8('0x16')]=_0x4a16f1['freshdeskAccounts'];this['salesforceAccounts']=_0x4a16f1['salesforceAccounts'];this[_0xfdd8('0x17')]=_0x4a16f1[_0xfdd8('0x17')];this[_0xfdd8('0x18')]=_0x4a16f1[_0xfdd8('0x18')];this[_0xfdd8('0x19')]=_0x4a16f1['deskAccounts'];this['vtigerAccounts']=_0x4a16f1[_0xfdd8('0x1a')];this[_0xfdd8('0x1b')]=_0x4a16f1[_0xfdd8('0x1b')];this[_0xfdd8('0x1c')]=_0x4a16f1[_0xfdd8('0x1c')];this[_0xfdd8('0x1d')]=_0x4a16f1[_0xfdd8('0x1d')];this[_0xfdd8('0x1e')]={'zendesk':this[_0xfdd8('0x15')],'salesforce':this[_0xfdd8('0x1f')],'freshdesk':this[_0xfdd8('0x16')],'sugarcrm':this[_0xfdd8('0x17')],'zoho':this['zohoAccounts'],'desk':this[_0xfdd8('0x19')],'vtiger':this[_0xfdd8('0x1a')],'dynamics365':this[_0xfdd8('0x1c')],'freshsales':this[_0xfdd8('0x1d')],'servicenow':this[_0xfdd8('0x1b')]};ami['on']('custom:agentcalled',this['syncCustomEvent'][_0xfdd8('0x20')](this));ami['on']('custom:agentconnect',this[_0xfdd8('0x21')][_0xfdd8('0x20')](this));ami['on']('custom:agentringnoanswer',this['syncCustomEvent'][_0xfdd8('0x20')](this));ami['on'](_0xfdd8('0x22'),this[_0xfdd8('0x21')][_0xfdd8('0x20')](this));ami['on']('custom:agentnosuchnumber',this[_0xfdd8('0x21')][_0xfdd8('0x20')](this));ami['on'](_0xfdd8('0x23'),this[_0xfdd8('0x21')][_0xfdd8('0x20')](this));ami['on'](_0xfdd8('0x24'),this[_0xfdd8('0x21')][_0xfdd8('0x20')](this));ami['on'](_0xfdd8('0x25'),this[_0xfdd8('0x21')]['bind'](this));ami['on'](_0xfdd8('0x26'),this[_0xfdd8('0x21')]['bind'](this));ami['on'](_0xfdd8('0x27'),this[_0xfdd8('0x21')]['bind'](this));ami['on']('custom:timeout',this[_0xfdd8('0x21')][_0xfdd8('0x20')](this));ami['on'](_0xfdd8('0x28'),this[_0xfdd8('0x29')][_0xfdd8('0x20')](this));ami['on'](_0xfdd8('0x2a'),this[_0xfdd8('0x29')]['bind'](this));ami['on']('custom:dialend',this[_0xfdd8('0x29')][_0xfdd8('0x20')](this));ami['on'](_0xfdd8('0x2b'),this['syncCustomEvent'][_0xfdd8('0x20')](this));ami['on']('custom:closedinteraction',this['syncCustomEvent']['bind'](this));ami['on']('custom:incomingmessage',this['syncCustomEvent'][_0xfdd8('0x20')](this));ami['on'](_0xfdd8('0x2c'),this['syncCustomEvent'][_0xfdd8('0x20')](this));ami['on'](_0xfdd8('0x2d'),this['syncCustomEvent'][_0xfdd8('0x20')](this));ami['on']('custom:rejectmessage',this[_0xfdd8('0x21')]['bind'](this));}Trigger['prototype']['emit']=function(_0x393d88,_0x13fb40,_0x153d10){logger['info'](_0x393d88,_0x13fb40,JSON[_0xfdd8('0x2e')](_0x153d10));io['to'](_0x393d88)[_0xfdd8('0x2f')](_0x13fb40,_0x153d10);};Trigger[_0xfdd8('0x30')][_0xfdd8('0x21')]=function(_0x595ec8){var _0x51e569=_[_0xfdd8('0x31')](_0x595ec8);this['checkTriggers'](_0x51e569);};Trigger[_0xfdd8('0x30')][_0xfdd8('0x29')]=function(_0x3c65d6){if(this[_0xfdd8('0x12')][_0x3c65d6[_0xfdd8('0x32')]]){this[_0xfdd8('0x21')](_0x3c65d6);}};Trigger[_0xfdd8('0x30')]['checkTriggers']=function(_0x3e0ad3){var _0x10bd5d;for(var _0x27e3fa in this['triggers']){if(this['triggers'][_0xfdd8('0x33')](_0x27e3fa)){if(this[_0xfdd8('0x11')][_0x27e3fa][_0xfdd8('0x34')]){_0x10bd5d=this[_0xfdd8('0x35')](this[_0xfdd8('0x11')][_0x27e3fa],_0x3e0ad3);if(_0x10bd5d){_[_0xfdd8('0x36')](_0x3e0ad3,_0x3e0ad3[_0xfdd8('0x37')]);for(var _0xa2e094=0x0,_0x48ab66,_0x26772f,_0x53ce54;_0xa2e094<this[_0xfdd8('0x11')][_0x27e3fa][_0xfdd8('0x38')][_0xfdd8('0x39')];_0xa2e094+=0x1){_0x48ab66=this[_0xfdd8('0x11')][_0x27e3fa][_0xfdd8('0x38')][_0xa2e094];if(this['agents'][_0x3e0ad3[_0xfdd8('0x32')]]){switch(_0x48ab66[_0xfdd8('0x3a')][_0xfdd8('0x3b')]()){case _0xfdd8('0x3c'):break;case _0xfdd8('0x3d'):case _0xfdd8('0x3e'):var _0x4500f0={};switch(barAndWebActions[_0x48ab66[_0xfdd8('0x3f')]]){case'popup':_0x4500f0[_0xfdd8('0x40')]=_0x48ab66[_0xfdd8('0x41')];_0x4500f0[_0xfdd8('0x42')]=this[_0xfdd8('0x43')][_0x48ab66[_0xfdd8('0x41')]]?Mustache['render'](this[_0xfdd8('0x43')][_0x48ab66[_0xfdd8('0x41')]]['html'],_0x3e0ad3):_0xfdd8('0x44');break;case _0xfdd8('0xf'):_0x4500f0['uri']=this['buildUri'](_0x48ab66[_0xfdd8('0x41')],_0x3e0ad3,_[_0xfdd8('0x45')](_0x48ab66[_0xfdd8('0x46')])?!![]:parseInt(_0x48ab66[_0xfdd8('0x46')],0xa));if(_[_0xfdd8('0x45')](_0x48ab66[_0xfdd8('0x47')])){_0x4500f0[_0xfdd8('0x48')]='0';}else{_0x4500f0[_0xfdd8('0x49')]=_0x48ab66[_0xfdd8('0x47')];_0x4500f0[_0xfdd8('0x4a')]=_[_0xfdd8('0x45')](_0x48ab66[_0xfdd8('0x4b')])?'800':_0x48ab66[_0xfdd8('0x4b')];_0x4500f0[_0xfdd8('0x4c')]=_[_0xfdd8('0x45')](_0x48ab66[_0xfdd8('0x4d')])?_0xfdd8('0x4e'):_0x48ab66['data6'];}break;case _0xfdd8('0x10'):_0x4500f0[_0xfdd8('0x4f')]=_0x48ab66['data2']?Mustache[_0xfdd8('0x50')](_0x48ab66['data2'],_0x3e0ad3):'';_0x4500f0['winArguments']=_0x48ab66['data3']?Mustache[_0xfdd8('0x50')](_0x48ab66[_0xfdd8('0x46')],_0x3e0ad3):'';break;}this['emit'](util[_0xfdd8('0x51')](_0xfdd8('0x52'),this[_0xfdd8('0x12')][_0x3e0ad3[_0xfdd8('0x32')]]['name']),util['format'](_0xfdd8('0x53'),_0x48ab66[_0xfdd8('0x3a')]['toLowerCase'](),barAndWebActions[_0x48ab66['data1']]),_[_0xfdd8('0x36')](_0x4500f0,_0x3e0ad3));break;case _0xfdd8('0x54'):this['emit'](util[_0xfdd8('0x51')]('user:%s',this[_0xfdd8('0x12')][_0x3e0ad3[_0xfdd8('0x32')]][_0xfdd8('0x55')]),util['format'](_0xfdd8('0x56'),_0x48ab66[_0xfdd8('0x3a')][_0xfdd8('0x3b')]()),_[_0xfdd8('0x36')]({'ProjectId':parseInt(_0x48ab66[_0xfdd8('0x3f')],0xa)},_0x3e0ad3));break;default:this[_0xfdd8('0x2f')](util[_0xfdd8('0x51')](_0xfdd8('0x52'),this[_0xfdd8('0x12')][_0x3e0ad3[_0xfdd8('0x32')]][_0xfdd8('0x55')]),util[_0xfdd8('0x51')](_0xfdd8('0x56'),_0x48ab66[_0xfdd8('0x3a')][_0xfdd8('0x3b')]()),_[_0xfdd8('0x36')]({},_0x48ab66,_0x3e0ad3));}}switch(_0x48ab66['action'][_0xfdd8('0x3b')]()){case _0xfdd8('0x3c'):cmContact[_0xfdd8('0x57')](this[_0xfdd8('0x12')][_0x3e0ad3['interface']],_0x48ab66,_0x3e0ad3,cmContactRpc);break;case _0xfdd8('0x58'):integration['exec'](_0x48ab66,_0x3e0ad3,this[_0xfdd8('0x1e')],this['agents'][_0x3e0ad3[_0xfdd8('0x32')]],this[_0xfdd8('0x13')][_0x3e0ad3[_0xfdd8('0x59')]],this[_0xfdd8('0x14')][_0x3e0ad3[_0xfdd8('0x5a')]]);break;case _0xfdd8('0x5b'):urlforward[_0xfdd8('0x57')](_0x48ab66,_0x3e0ad3);break;case _0xfdd8('0x5c'):script[_0xfdd8('0x57')](_0x48ab66,_0x3e0ad3);break;}}}}}}};Trigger[_0xfdd8('0x30')]['buildUri']=function(_0x447e50,_0x12bc79,_0x166124){var _0x44dfbb=url[_0xfdd8('0x5d')](Mustache[_0xfdd8('0x50')](_0x447e50,_0x12bc79),!![]);if(_0x166124){_['merge'](_0x44dfbb['query'],_0x12bc79);}delete _0x44dfbb[_0xfdd8('0x5e')];var _0x23efe1=url[_0xfdd8('0x51')](_0x44dfbb);_0x23efe1=_0x23efe1[_0xfdd8('0x5f')](/\/\?/g,'?');return _0x23efe1;};Trigger['prototype']['checkTrigger']=function(_0x392b12,_0x48b611){var _0x2337a4=!![],_0x40d430=!![];if(_0x392b12[_0xfdd8('0x60')][_0xfdd8('0x39')]){_0x2337a4=_['every'](_0x392b12['AllConditions'],this[_0xfdd8('0x61')](_0x48b611,_0x392b12[_0xfdd8('0x62')]));}if(_0x392b12[_0xfdd8('0x63')]['length']){_0x40d430=_[_0xfdd8('0x64')](_0x392b12[_0xfdd8('0x63')],this[_0xfdd8('0x61')](_0x48b611,_0x392b12[_0xfdd8('0x62')]));}return _0x2337a4&&_0x40d430;};Trigger[_0xfdd8('0x30')][_0xfdd8('0x61')]=function(_0x26f134,_0x5e5793){return function(_0x593e8e){switch(_0x593e8e[_0xfdd8('0x65')]){case _0xfdd8('0x66'):if(_0x26f134['channel']===_0x5e5793){if(_0x5e5793===_0xfdd8('0x67')){return _0x26f134['ChatWebsiteId']?operators[_0x593e8e[_0xfdd8('0x68')]](Number(_0x593e8e[_0xfdd8('0x69')]),_0x26f134[_0xfdd8('0x6a')]):![];}else{return _0x26f134[_[_0xfdd8('0x6b')](_0x5e5793)+_0xfdd8('0x6c')]?operators[_0x593e8e[_0xfdd8('0x68')]](Number(_0x593e8e['value']),_0x26f134[_['upperFirst'](_0x5e5793)+_0xfdd8('0x6c')]):![];}}break;case'interaction':case'message':if(_0x26f134['channel']===_0x5e5793){return _0x26f134[_0xfdd8('0x6d')]?operators[_0x593e8e[_0xfdd8('0x68')]](_0x593e8e['value'],_0x26f134[_0xfdd8('0x6d')]):![];}break;case _0xfdd8('0x59'):return _0x26f134['queue']?operators[_0x593e8e[_0xfdd8('0x68')]](_0x593e8e['value'],_0x26f134[_0xfdd8('0x59')]):![];case _0xfdd8('0x6e'):return _0x26f134[_0xfdd8('0x6f')]?operators[_0x593e8e[_0xfdd8('0x68')]](_0x593e8e[_0xfdd8('0x69')],_0x26f134[_0xfdd8('0x6f')]):![];case _0xfdd8('0x70'):return _0x26f134[_0xfdd8('0x70')]?operators[_0x593e8e[_0xfdd8('0x68')]](_0x593e8e['value'],_0x26f134['lastevent']):![];case _0xfdd8('0x5a'):return _0x26f134['routeId']?operators[_0x593e8e[_0xfdd8('0x68')]](_0x593e8e[_0xfdd8('0x69')],_0x26f134['routeId']):![];}return![];};};module[_0xfdd8('0x71')]=Trigger;