Built motion from commit (unavailable).|2.4.18
[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 _0xc393=['name','format','trigger:%s:%s','action','data1','jscripty','user:%s','trigger:%s','integration','routeId','urlforward','exec','parse','query','search','every','AllConditions','checkConditions','channel','AnyConditions','account','chat','ChatWebsiteId','operator','upperFirst','AccountId','value','interaction','event','queue','lastevent','util','url','mustache','ioredis','./urlforward','./integration','./cmContact','../rpc/cmContact','../../../config/environment','../../../config/logger','trigger','../ami','defaults','localhost','socket.io-emitter','redis','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentcomplete','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','stringify','clone','checkTriggers','interface','checkTrigger','merge','Actions','length','toLowerCase','contactmanager','motionbar','browser','data2','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','uriLocation','data5','800','windowHeight','data6','winApplication','winArguments'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0xc393,0xfd));var _0x3c39=function(_0x2d2416,_0x32d65d){_0x2d2416=_0x2d2416-0x0;var _0x46aba2=_0xc393[_0x2d2416];return _0x46aba2;};'use strict';var util=require(_0x3c39('0x0'));var _=require('lodash');var url=require(_0x3c39('0x1'));var Mustache=require(_0x3c39('0x2'));var Redis=require(_0x3c39('0x3'));var urlforward=require(_0x3c39('0x4'));var integration=require(_0x3c39('0x5'));var cmContact=require(_0x3c39('0x6'));var script=require('./script');var cmContactRpc=require(_0x3c39('0x7'));var config=require(_0x3c39('0x8'));var logger=require(_0x3c39('0x9'))(_0x3c39('0xa'));var ami=require(_0x3c39('0xb'));config['redis']=_[_0x3c39('0xc')](config['redis'],{'host':_0x3c39('0xd'),'port':0x18eb});var io=require(_0x3c39('0xe'))(new Redis(config[_0x3c39('0xf')]));var operators={'equals':function(_0x1b040a,_0x5d796a){return _0x1b040a==_0x5d796a;},'not_equals':function(_0x3ef37d,_0x58ec80){return _0x3ef37d!=_0x58ec80;}};var barAndWebActions=[_0x3c39('0x10'),_0x3c39('0x1'),_0x3c39('0x11')];function Trigger(_0x467801){this[_0x3c39('0x12')]=_0x467801['triggers'];this[_0x3c39('0x13')]=_0x467801[_0x3c39('0x13')];this[_0x3c39('0x14')]=_0x467801[_0x3c39('0x14')];this['templates']=_0x467801[_0x3c39('0x15')];this['voiceExtensions']=_0x467801[_0x3c39('0x16')];this[_0x3c39('0x17')]=_0x467801[_0x3c39('0x17')];this[_0x3c39('0x18')]=_0x467801[_0x3c39('0x18')];this['salesforceAccounts']=_0x467801[_0x3c39('0x19')];this[_0x3c39('0x1a')]=_0x467801[_0x3c39('0x1a')];this[_0x3c39('0x1b')]=_0x467801[_0x3c39('0x1b')];this[_0x3c39('0x1c')]=_0x467801[_0x3c39('0x1c')];this[_0x3c39('0x1d')]=_0x467801[_0x3c39('0x1d')];this['servicenowAccounts']=_0x467801[_0x3c39('0x1e')];this[_0x3c39('0x1f')]=_0x467801['dynamics365Accounts'];this['freshsalesAccounts']=_0x467801[_0x3c39('0x20')];this[_0x3c39('0x21')]={'zendesk':this[_0x3c39('0x17')],'salesforce':this[_0x3c39('0x19')],'freshdesk':this[_0x3c39('0x18')],'sugarcrm':this[_0x3c39('0x1a')],'zoho':this[_0x3c39('0x1b')],'desk':this[_0x3c39('0x1c')],'vtiger':this[_0x3c39('0x1d')],'dynamics365':this[_0x3c39('0x1f')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x3c39('0x1e')]};ami['on'](_0x3c39('0x22'),this[_0x3c39('0x23')][_0x3c39('0x24')](this));ami['on'](_0x3c39('0x25'),this[_0x3c39('0x23')][_0x3c39('0x24')](this));ami['on']('custom:agentringnoanswer',this[_0x3c39('0x23')]['bind'](this));ami['on'](_0x3c39('0x26'),this[_0x3c39('0x23')]['bind'](this));ami['on']('custom:queuecallerabandon',this['syncCustomEvent']['bind'](this));ami['on'](_0x3c39('0x27'),this[_0x3c39('0x28')][_0x3c39('0x24')](this));ami['on'](_0x3c39('0x29'),this[_0x3c39('0x28')][_0x3c39('0x24')](this));ami['on'](_0x3c39('0x2a'),this[_0x3c39('0x28')][_0x3c39('0x24')](this));ami['on'](_0x3c39('0x2b'),this[_0x3c39('0x23')][_0x3c39('0x24')](this));ami['on'](_0x3c39('0x2c'),this[_0x3c39('0x23')][_0x3c39('0x24')](this));ami['on'](_0x3c39('0x2d'),this[_0x3c39('0x23')][_0x3c39('0x24')](this));ami['on'](_0x3c39('0x2e'),this[_0x3c39('0x23')][_0x3c39('0x24')](this));ami['on'](_0x3c39('0x2f'),this[_0x3c39('0x23')][_0x3c39('0x24')](this));ami['on'](_0x3c39('0x30'),this[_0x3c39('0x23')][_0x3c39('0x24')](this));}Trigger[_0x3c39('0x31')][_0x3c39('0x32')]=function(_0x535ac0,_0x3a98b0,_0x292d4a){logger[_0x3c39('0x33')](_0x535ac0,_0x3a98b0,JSON[_0x3c39('0x34')](_0x292d4a));io['to'](_0x535ac0)[_0x3c39('0x32')](_0x3a98b0,_0x292d4a);};Trigger['prototype'][_0x3c39('0x23')]=function(_0x117f21){var _0x487569=_[_0x3c39('0x35')](_0x117f21);this[_0x3c39('0x36')](_0x487569);};Trigger[_0x3c39('0x31')][_0x3c39('0x28')]=function(_0x235c02){if(this[_0x3c39('0x13')][_0x235c02[_0x3c39('0x37')]]){this['syncCustomEvent'](_0x235c02);}};Trigger[_0x3c39('0x31')][_0x3c39('0x36')]=function(_0x452e15){var _0x4a46e0;for(var _0x31e162 in this[_0x3c39('0x12')]){if(this['triggers']['hasOwnProperty'](_0x31e162)){if(this[_0x3c39('0x12')][_0x31e162]['status']){_0x4a46e0=this[_0x3c39('0x38')](this[_0x3c39('0x12')][_0x31e162],_0x452e15);if(_0x4a46e0){_[_0x3c39('0x39')](_0x452e15,_0x452e15['variables']);for(var _0x119e9a=0x0,_0x2e732e,_0x47332d,_0x56cd00;_0x119e9a<this[_0x3c39('0x12')][_0x31e162][_0x3c39('0x3a')][_0x3c39('0x3b')];_0x119e9a+=0x1){_0x2e732e=this[_0x3c39('0x12')][_0x31e162][_0x3c39('0x3a')][_0x119e9a];if(this[_0x3c39('0x13')][_0x452e15[_0x3c39('0x37')]]){switch(_0x2e732e['action'][_0x3c39('0x3c')]()){case _0x3c39('0x3d'):break;case _0x3c39('0x3e'):case _0x3c39('0x3f'):var _0x56236c={};switch(barAndWebActions[_0x2e732e['data1']]){case _0x3c39('0x10'):_0x56236c['TemplateId']=_0x2e732e[_0x3c39('0x40')];_0x56236c['html']=this['templates'][_0x2e732e['data2']]?Mustache[_0x3c39('0x41')](this[_0x3c39('0x15')][_0x2e732e['data2']]['html'],_0x452e15):_0x3c39('0x42');break;case _0x3c39('0x1'):_0x56236c[_0x3c39('0x43')]=this[_0x3c39('0x44')](_0x2e732e[_0x3c39('0x40')],_0x452e15,_[_0x3c39('0x45')](_0x2e732e[_0x3c39('0x46')])?!![]:parseInt(_0x2e732e[_0x3c39('0x46')],0xa));if(_['isNil'](_0x2e732e[_0x3c39('0x47')])){_0x56236c[_0x3c39('0x48')]='0';}else{_0x56236c[_0x3c39('0x49')]=_0x2e732e[_0x3c39('0x47')];_0x56236c['windowWidth']=_['isNil'](_0x2e732e[_0x3c39('0x4a')])?_0x3c39('0x4b'):_0x2e732e[_0x3c39('0x4a')];_0x56236c[_0x3c39('0x4c')]=_[_0x3c39('0x45')](_0x2e732e[_0x3c39('0x4d')])?'600':_0x2e732e[_0x3c39('0x4d')];}break;case _0x3c39('0x11'):_0x56236c[_0x3c39('0x4e')]=_0x2e732e[_0x3c39('0x40')]?Mustache['render'](_0x2e732e['data2'],_0x452e15):'';_0x56236c[_0x3c39('0x4f')]=_0x2e732e[_0x3c39('0x46')]?Mustache[_0x3c39('0x41')](_0x2e732e['data3'],_0x452e15):'';break;}this[_0x3c39('0x32')](util['format']('user:%s',this['agents'][_0x452e15[_0x3c39('0x37')]][_0x3c39('0x50')]),util[_0x3c39('0x51')](_0x3c39('0x52'),_0x2e732e[_0x3c39('0x53')][_0x3c39('0x3c')](),barAndWebActions[_0x2e732e[_0x3c39('0x54')]]),_[_0x3c39('0x39')](_0x56236c,_0x452e15));break;case _0x3c39('0x55'):this[_0x3c39('0x32')](util[_0x3c39('0x51')](_0x3c39('0x56'),this[_0x3c39('0x13')][_0x452e15[_0x3c39('0x37')]][_0x3c39('0x50')]),util[_0x3c39('0x51')]('trigger:%s',_0x2e732e[_0x3c39('0x53')][_0x3c39('0x3c')]()),_[_0x3c39('0x39')]({'ProjectId':parseInt(_0x2e732e['data1'],0xa)},_0x452e15));break;default:this['emit'](util[_0x3c39('0x51')](_0x3c39('0x56'),this[_0x3c39('0x13')][_0x452e15[_0x3c39('0x37')]][_0x3c39('0x50')]),util[_0x3c39('0x51')](_0x3c39('0x57'),_0x2e732e['action'][_0x3c39('0x3c')]()),_[_0x3c39('0x39')]({},_0x2e732e,_0x452e15));}}switch(_0x2e732e[_0x3c39('0x53')][_0x3c39('0x3c')]()){case _0x3c39('0x3d'):cmContact['exec'](this['agents'][_0x452e15[_0x3c39('0x37')]],_0x2e732e,_0x452e15,cmContactRpc);break;case _0x3c39('0x58'):integration['exec'](_0x2e732e,_0x452e15,this[_0x3c39('0x21')],this[_0x3c39('0x13')][_0x452e15[_0x3c39('0x37')]],this['voiceQueues'][_0x452e15['queue']],this[_0x3c39('0x16')][_0x452e15[_0x3c39('0x59')]]);break;case _0x3c39('0x5a'):urlforward[_0x3c39('0x5b')](_0x2e732e,_0x452e15);break;case'script':script[_0x3c39('0x5b')](_0x2e732e,_0x452e15);break;}}}}}}};Trigger[_0x3c39('0x31')][_0x3c39('0x44')]=function(_0x1f72b1,_0x1a6b5c,_0x48d729){var _0x4109ba=url[_0x3c39('0x5c')](Mustache['render'](_0x1f72b1,_0x1a6b5c),!![]);if(_0x48d729){_['merge'](_0x4109ba[_0x3c39('0x5d')],_0x1a6b5c);}delete _0x4109ba[_0x3c39('0x5e')];var _0x146a78=url[_0x3c39('0x51')](_0x4109ba);_0x146a78=_0x146a78['replace'](/\/\?/g,'?');return _0x146a78;};Trigger[_0x3c39('0x31')][_0x3c39('0x38')]=function(_0x2c68e5,_0x255de4){var _0x4fe37b=!![],_0x20625a=!![];if(_0x2c68e5['AllConditions'][_0x3c39('0x3b')]){_0x4fe37b=_[_0x3c39('0x5f')](_0x2c68e5[_0x3c39('0x60')],this[_0x3c39('0x61')](_0x255de4,_0x2c68e5[_0x3c39('0x62')]));}if(_0x2c68e5[_0x3c39('0x63')][_0x3c39('0x3b')]){_0x20625a=_['some'](_0x2c68e5[_0x3c39('0x63')],this[_0x3c39('0x61')](_0x255de4,_0x2c68e5[_0x3c39('0x62')]));}return _0x4fe37b&&_0x20625a;};Trigger[_0x3c39('0x31')][_0x3c39('0x61')]=function(_0x3a9ad2,_0x5f0065){return function(_0x37e37a){switch(_0x37e37a['field']){case _0x3c39('0x64'):if(_0x3a9ad2[_0x3c39('0x62')]===_0x5f0065){if(_0x5f0065===_0x3c39('0x65')){return _0x3a9ad2[_0x3c39('0x66')]?operators[_0x37e37a[_0x3c39('0x67')]](Number(_0x37e37a['value']),_0x3a9ad2[_0x3c39('0x66')]):![];}else{return _0x3a9ad2[_[_0x3c39('0x68')](_0x5f0065)+_0x3c39('0x69')]?operators[_0x37e37a['operator']](Number(_0x37e37a[_0x3c39('0x6a')]),_0x3a9ad2[_[_0x3c39('0x68')](_0x5f0065)+_0x3c39('0x69')]):![];}}break;case _0x3c39('0x6b'):case'message':if(_0x3a9ad2['channel']===_0x5f0065){return _0x3a9ad2[_0x3c39('0x6c')]?operators[_0x37e37a[_0x3c39('0x67')]](_0x37e37a[_0x3c39('0x6a')],_0x3a9ad2[_0x3c39('0x6c')]):![];}break;case'queue':return _0x3a9ad2[_0x3c39('0x6d')]?operators[_0x37e37a[_0x3c39('0x67')]](_0x37e37a[_0x3c39('0x6a')],_0x3a9ad2[_0x3c39('0x6d')]):![];case'agent':return _0x3a9ad2['membername']?operators[_0x37e37a[_0x3c39('0x67')]](_0x37e37a[_0x3c39('0x6a')],_0x3a9ad2['membername']):![];case _0x3c39('0x6e'):return _0x3a9ad2[_0x3c39('0x6e')]?operators[_0x37e37a[_0x3c39('0x67')]](_0x37e37a[_0x3c39('0x6a')],_0x3a9ad2[_0x3c39('0x6e')]):![];case _0x3c39('0x59'):return _0x3a9ad2['routeId']?operators[_0x37e37a[_0x3c39('0x67')]](_0x37e37a[_0x3c39('0x6a')],_0x3a9ad2[_0x3c39('0x59')]):![];}return![];};};module['exports']=Trigger;