Built motion from commit (unavailable).|2.5.7
[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 _0x1353=['./script','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','info','stringify','emit','clone','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','action','toLowerCase','contactmanager','motionbar','browser','TemplateId','data2','html','render','template\x20not\x20found','isNil','data3','data4','location','windowWidth','data5','800','windowHeight','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','data1','jscripty','exec','integration','accounts','queue','urlforward','script','buildUri','parse','query','search','replace','AllConditions','length','every','channel','AnyConditions','some','checkConditions','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','event','agent','membername','lastevent','routeId','exports','util','lodash','url','./urlforward','./integration','./cmContact'];(function(_0x2e683d,_0x2ead20){var _0x428821=function(_0x44bd38){while(--_0x44bd38){_0x2e683d['push'](_0x2e683d['shift']());}};_0x428821(++_0x2ead20);}(_0x1353,0x74));var _0x3135=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x1353[_0x21a9d9];return _0x46adce;};'use strict';var util=require(_0x3135('0x0'));var _=require(_0x3135('0x1'));var url=require(_0x3135('0x2'));var Mustache=require('mustache');var Redis=require('ioredis');var urlforward=require(_0x3135('0x3'));var integration=require(_0x3135('0x4'));var cmContact=require(_0x3135('0x5'));var script=require(_0x3135('0x6'));var config=require('../../../config/environment');var logger=require(_0x3135('0x7'))(_0x3135('0x8'));var ami=require(_0x3135('0x9'));config[_0x3135('0xa')]=_[_0x3135('0xb')](config['redis'],{'host':_0x3135('0xc'),'port':0x18eb});var io=require(_0x3135('0xd'))(new Redis(config[_0x3135('0xa')]));var operators={'equals':function(_0x1ae4bd,_0x59267a){return _0x1ae4bd==_0x59267a;},'not_equals':function(_0x5cfe2f,_0x47a02a){return _0x5cfe2f!=_0x47a02a;}};var barAndWebActions=[_0x3135('0xe'),'url',_0x3135('0xf')];function Trigger(_0x19879e){this[_0x3135('0x10')]=_0x19879e['triggers'];this['agents']=_0x19879e[_0x3135('0x11')];this['voiceQueues']=_0x19879e[_0x3135('0x12')];this['templates']=_0x19879e[_0x3135('0x13')];this[_0x3135('0x14')]=_0x19879e[_0x3135('0x14')];this[_0x3135('0x15')]=_0x19879e[_0x3135('0x15')];this[_0x3135('0x16')]=_0x19879e[_0x3135('0x16')];this[_0x3135('0x17')]=_0x19879e['salesforceAccounts'];this[_0x3135('0x18')]=_0x19879e['sugarcrmAccounts'];this[_0x3135('0x19')]=_0x19879e[_0x3135('0x19')];this[_0x3135('0x1a')]=_0x19879e['deskAccounts'];this[_0x3135('0x1b')]=_0x19879e[_0x3135('0x1b')];this[_0x3135('0x1c')]=_0x19879e[_0x3135('0x1c')];this['dynamics365Accounts']=_0x19879e[_0x3135('0x1d')];this[_0x3135('0x1e')]=_0x19879e[_0x3135('0x1e')];this['accounts']={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x3135('0x17')],'freshdesk':this[_0x3135('0x16')],'sugarcrm':this[_0x3135('0x18')],'zoho':this[_0x3135('0x19')],'desk':this['deskAccounts'],'vtiger':this[_0x3135('0x1b')],'dynamics365':this[_0x3135('0x1d')],'freshsales':this[_0x3135('0x1e')],'servicenow':this['servicenowAccounts']};ami['on'](_0x3135('0x1f'),this[_0x3135('0x20')]['bind'](this));ami['on']('custom:agentconnect',this['syncCustomEvent'][_0x3135('0x21')](this));ami['on'](_0x3135('0x22'),this[_0x3135('0x20')][_0x3135('0x21')](this));ami['on']('custom:agentcomplete',this[_0x3135('0x20')]['bind'](this));ami['on'](_0x3135('0x23'),this[_0x3135('0x20')][_0x3135('0x21')](this));ami['on'](_0x3135('0x24'),this[_0x3135('0x20')][_0x3135('0x21')](this));ami['on'](_0x3135('0x25'),this['syncCustomEvent'][_0x3135('0x21')](this));ami['on'](_0x3135('0x26'),this[_0x3135('0x20')][_0x3135('0x21')](this));ami['on'](_0x3135('0x27'),this[_0x3135('0x20')][_0x3135('0x21')](this));ami['on'](_0x3135('0x28'),this['syncCustomEvent']['bind'](this));ami['on'](_0x3135('0x29'),this[_0x3135('0x20')][_0x3135('0x21')](this));ami['on'](_0x3135('0x2a'),this[_0x3135('0x2b')][_0x3135('0x21')](this));ami['on'](_0x3135('0x2c'),this[_0x3135('0x2b')][_0x3135('0x21')](this));ami['on'](_0x3135('0x2d'),this[_0x3135('0x2b')][_0x3135('0x21')](this));ami['on'](_0x3135('0x2e'),this[_0x3135('0x20')][_0x3135('0x21')](this));ami['on'](_0x3135('0x2f'),this[_0x3135('0x20')]['bind'](this));ami['on'](_0x3135('0x30'),this[_0x3135('0x20')][_0x3135('0x21')](this));ami['on'](_0x3135('0x31'),this[_0x3135('0x20')][_0x3135('0x21')](this));ami['on'](_0x3135('0x32'),this[_0x3135('0x20')][_0x3135('0x21')](this));ami['on'](_0x3135('0x33'),this[_0x3135('0x20')][_0x3135('0x21')](this));}Trigger[_0x3135('0x34')]['emit']=function(_0xe32ca9,_0x397fc4,_0x17a68b){logger[_0x3135('0x35')](_0xe32ca9,_0x397fc4,JSON[_0x3135('0x36')](_0x17a68b));io['to'](_0xe32ca9)[_0x3135('0x37')](_0x397fc4,_0x17a68b);};Trigger[_0x3135('0x34')][_0x3135('0x20')]=function(_0x56ba4f){var _0xbfe7cc=_[_0x3135('0x38')](_0x56ba4f);this[_0x3135('0x39')](_0xbfe7cc);};Trigger['prototype']['syncAgentDial']=function(_0x441325){if(this['agents'][_0x441325[_0x3135('0x3a')]]){this[_0x3135('0x20')](_0x441325);}};Trigger[_0x3135('0x34')][_0x3135('0x39')]=function(_0x33e15e){var _0x348e20;for(var _0x16c24e in this[_0x3135('0x10')]){if(this['triggers'][_0x3135('0x3b')](_0x16c24e)){if(this[_0x3135('0x10')][_0x16c24e][_0x3135('0x3c')]){_0x348e20=this[_0x3135('0x3d')](this[_0x3135('0x10')][_0x16c24e],_0x33e15e);if(_0x348e20){_[_0x3135('0x3e')](_0x33e15e,_0x33e15e[_0x3135('0x3f')]);for(var _0x5bdd90=0x0,_0x28cbe3,_0x5f1145,_0x401ca4;_0x5bdd90<this[_0x3135('0x10')][_0x16c24e]['Actions']['length'];_0x5bdd90+=0x1){_0x28cbe3=this['triggers'][_0x16c24e][_0x3135('0x40')][_0x5bdd90];if(this[_0x3135('0x11')][_0x33e15e[_0x3135('0x3a')]]){switch(_0x28cbe3[_0x3135('0x41')][_0x3135('0x42')]()){case _0x3135('0x43'):break;case _0x3135('0x44'):case _0x3135('0x45'):var _0x451521={};switch(barAndWebActions[_0x28cbe3['data1']]){case _0x3135('0xe'):_0x451521[_0x3135('0x46')]=_0x28cbe3[_0x3135('0x47')];_0x451521[_0x3135('0x48')]=this['templates'][_0x28cbe3['data2']]?Mustache[_0x3135('0x49')](this['templates'][_0x28cbe3[_0x3135('0x47')]][_0x3135('0x48')],_0x33e15e):_0x3135('0x4a');break;case _0x3135('0x2'):_0x451521['uri']=this['buildUri'](_0x28cbe3[_0x3135('0x47')],_0x33e15e,_[_0x3135('0x4b')](_0x28cbe3[_0x3135('0x4c')])?!![]:parseInt(_0x28cbe3[_0x3135('0x4c')],0xa));if(_[_0x3135('0x4b')](_0x28cbe3[_0x3135('0x4d')])){_0x451521[_0x3135('0x4e')]='0';}else{_0x451521['uriLocation']=_0x28cbe3[_0x3135('0x4d')];_0x451521[_0x3135('0x4f')]=_[_0x3135('0x4b')](_0x28cbe3[_0x3135('0x50')])?_0x3135('0x51'):_0x28cbe3[_0x3135('0x50')];_0x451521[_0x3135('0x52')]=_[_0x3135('0x4b')](_0x28cbe3['data6'])?'600':_0x28cbe3['data6'];}break;case'winapp':_0x451521[_0x3135('0x53')]=_0x28cbe3[_0x3135('0x47')]?Mustache['render'](_0x28cbe3['data2'],_0x33e15e):'';_0x451521[_0x3135('0x54')]=_0x28cbe3[_0x3135('0x4c')]?Mustache[_0x3135('0x49')](_0x28cbe3[_0x3135('0x4c')],_0x33e15e):'';break;}this[_0x3135('0x37')](util[_0x3135('0x55')](_0x3135('0x56'),this[_0x3135('0x11')][_0x33e15e[_0x3135('0x3a')]][_0x3135('0x57')]),util[_0x3135('0x55')](_0x3135('0x58'),_0x28cbe3[_0x3135('0x41')][_0x3135('0x42')](),barAndWebActions[_0x28cbe3[_0x3135('0x59')]]),_['merge'](_0x451521,_0x33e15e));break;case _0x3135('0x5a'):this['emit'](util[_0x3135('0x55')](_0x3135('0x56'),this[_0x3135('0x11')][_0x33e15e[_0x3135('0x3a')]][_0x3135('0x57')]),util[_0x3135('0x55')]('trigger:%s',_0x28cbe3[_0x3135('0x41')][_0x3135('0x42')]()),_[_0x3135('0x3e')]({'ProjectId':parseInt(_0x28cbe3[_0x3135('0x59')],0xa)},_0x33e15e));break;default:this[_0x3135('0x37')](util['format']('user:%s',this[_0x3135('0x11')][_0x33e15e[_0x3135('0x3a')]][_0x3135('0x57')]),util[_0x3135('0x55')]('trigger:%s',_0x28cbe3[_0x3135('0x41')][_0x3135('0x42')]()),_[_0x3135('0x3e')]({},_0x28cbe3,_0x33e15e));}}switch(_0x28cbe3[_0x3135('0x41')][_0x3135('0x42')]()){case'contactmanager':cmContact[_0x3135('0x5b')](this[_0x3135('0x11')][_0x33e15e[_0x3135('0x3a')]],this['triggers'][_0x16c24e],_0x28cbe3,_0x33e15e);break;case _0x3135('0x5c'):integration[_0x3135('0x5b')](_0x28cbe3,_0x33e15e,this[_0x3135('0x5d')],this[_0x3135('0x11')][_0x33e15e[_0x3135('0x3a')]],this['voiceQueues'][_0x33e15e[_0x3135('0x5e')]],this[_0x3135('0x14')][_0x33e15e['routeId']]);break;case _0x3135('0x5f'):urlforward[_0x3135('0x5b')](_0x28cbe3,_0x33e15e);break;case _0x3135('0x60'):script[_0x3135('0x5b')](_0x28cbe3,_0x33e15e);break;}}}}}}};Trigger['prototype'][_0x3135('0x61')]=function(_0x164172,_0x10a693,_0x49cc8f){var _0x202f90=url[_0x3135('0x62')](Mustache[_0x3135('0x49')](_0x164172,_0x10a693),!![]);if(_0x49cc8f){_['merge'](_0x202f90[_0x3135('0x63')],_0x10a693);}delete _0x202f90[_0x3135('0x64')];var _0x4bc429=url[_0x3135('0x55')](_0x202f90);_0x4bc429=_0x4bc429[_0x3135('0x65')](/\/\?/g,'?');return _0x4bc429;};Trigger[_0x3135('0x34')]['checkTrigger']=function(_0x3206e3,_0x300728){var _0x415d21=!![],_0xd3f182=!![];if(_0x3206e3[_0x3135('0x66')][_0x3135('0x67')]){_0x415d21=_[_0x3135('0x68')](_0x3206e3['AllConditions'],this['checkConditions'](_0x300728,_0x3206e3[_0x3135('0x69')]));}if(_0x3206e3[_0x3135('0x6a')][_0x3135('0x67')]){_0xd3f182=_[_0x3135('0x6b')](_0x3206e3[_0x3135('0x6a')],this[_0x3135('0x6c')](_0x300728,_0x3206e3[_0x3135('0x69')]));}return _0x415d21&&_0xd3f182;};Trigger[_0x3135('0x34')][_0x3135('0x6c')]=function(_0x4655af,_0x38708a){return function(_0x151bdc){switch(_0x151bdc['field']){case _0x3135('0x6d'):if(_0x4655af[_0x3135('0x69')]===_0x38708a){if(_0x38708a===_0x3135('0x6e')){return _0x4655af[_0x3135('0x6f')]?operators[_0x151bdc[_0x3135('0x70')]](Number(_0x151bdc[_0x3135('0x71')]),_0x4655af['ChatWebsiteId']):![];}else{return _0x4655af[_[_0x3135('0x72')](_0x38708a)+_0x3135('0x73')]?operators[_0x151bdc[_0x3135('0x70')]](Number(_0x151bdc[_0x3135('0x71')]),_0x4655af[_[_0x3135('0x72')](_0x38708a)+_0x3135('0x73')]):![];}}break;case'interaction':case'message':if(_0x4655af[_0x3135('0x69')]===_0x38708a){return _0x4655af['event']?operators[_0x151bdc[_0x3135('0x70')]](_0x151bdc[_0x3135('0x71')],_0x4655af[_0x3135('0x74')]):![];}break;case _0x3135('0x5e'):return _0x4655af[_0x3135('0x5e')]?operators[_0x151bdc['operator']](_0x151bdc[_0x3135('0x71')],_0x4655af[_0x3135('0x5e')]):![];case _0x3135('0x75'):return _0x4655af['membername']?operators[_0x151bdc['operator']](_0x151bdc[_0x3135('0x71')],_0x4655af[_0x3135('0x76')]):![];case'lastevent':return _0x4655af[_0x3135('0x77')]?operators[_0x151bdc['operator']](_0x151bdc[_0x3135('0x71')],_0x4655af[_0x3135('0x77')]):![];case _0x3135('0x78'):return _0x4655af[_0x3135('0x78')]?operators[_0x151bdc['operator']](_0x151bdc[_0x3135('0x71')],_0x4655af[_0x3135('0x78')]):![];}return![];};};module[_0x3135('0x79')]=Trigger;