Built motion from commit (unavailable).|2.3.10
[motion2.git] / server / services / ami / trigger / integration / vtiger.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 _0xa3b9=['remoteUri','create','admin','sessionName','HelpDesk','then','result','Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s','stringify','catch','statusCode','error','[vTiger],\x20%s,\x20%s,\x20%s','validateEmail','Getting\x20agent\x20with\x20email','GET','query','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','success','Agent\x20found!','resolve','email1','last_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','info','username','Searching\x20end\x20user\x20with\x20phone','SELECT\x20id,\x20firstname,\x20lastname,\x20email,\x20phone,\x20mobile,\x20homephone,\x20otherphone,\x20assistantphone\x20FROM\x20Contacts\x20WHERE\x20phone\x20=\x20\x27%s\x27\x20OR\x20mobile\x20=\x27%s\x27\x20OR\x20homephone\x20=\x27%s\x27\x20OR\x20otherphone\x20=\x27%s\x27\x20OR\x20assistantphone\x20=\x27%s\x27;','Enduser\x20found!','firstname','lastname','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Contacts','Enduser\x20created.','phone','getEndUser','accessKey','login','token','Account\x20%d\x20is\x20not\x20valid','getConnection','[HTTP]','queue','stripTrailingSlash','monitor_format','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','calleridnum','The\x20Enduser\x20ID\x20is:','Fields','Ticket\x20created!','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','[QUEUE]','user:%s','trigger:browser:url','outbound','recordingFormat','[OUTBOUND]','serverUrl','email','The\x20User\x20ID\x20is:','destcalleridnum','The\x20Ticket\x20ID\x20is:','split','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','abandoned','[ABANDONED]','lodash','request-promise','bluebird','md5','util','ioredis','../../../../config/environment','../../../../config/logger','vTiger','redis','defaults','socket.io-emitter','emit','length','forEach','string','idField','type','variableName','customVariable','Variable','name','toLowerCase','Creating\x20new\x20ticket...','Normal','Open','getString','Subjects','Descriptions','POST','format','%s/webservice.php'];(function(_0x24cfe4,_0x22bf37){var _0x244380=function(_0x13ade6){while(--_0x13ade6){_0x24cfe4['push'](_0x24cfe4['shift']());}};_0x244380(++_0x22bf37);}(_0xa3b9,0x112));var _0x9a3b=function(_0x355b87,_0x5e797c){_0x355b87=_0x355b87-0x0;var _0x299e5e=_0xa3b9[_0x355b87];return _0x299e5e;};'use strict';var _=require(_0x9a3b('0x0'));var rp=require(_0x9a3b('0x1'));var BPromise=require(_0x9a3b('0x2'));var md5=require(_0x9a3b('0x3'));var util=require(_0x9a3b('0x4'));var Redis=require(_0x9a3b('0x5'));var intUtil=require('./util');var config=require(_0x9a3b('0x6'));var logger=require(_0x9a3b('0x7'))(_0x9a3b('0x8'));config[_0x9a3b('0x9')]=_[_0x9a3b('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x9a3b('0xb'))(new Redis(config[_0x9a3b('0x9')]));function emit(_0x242fbe,_0x2da1e2,_0x204d1f){io['to'](_0x242fbe)[_0x9a3b('0xc')](_0x2da1e2,_0x204d1f);}function getCustomFields(_0x34002a,_0x593fef){var _0x15ba19={};if(_0x34002a[_0x9a3b('0xd')]>0x0){_[_0x9a3b('0xe')](_0x34002a,function(_0x3e5858){if(_0x3e5858['type']===_0x9a3b('0xf')&&_0x3e5858[_0x9a3b('0x10')]){_0x15ba19[_0x3e5858[_0x9a3b('0x10')]]=_0x3e5858['content']['toString']();}else if(_0x3e5858[_0x9a3b('0x11')]==='variable'&&_0x3e5858['variableName']&&_0x3e5858[_0x9a3b('0x10')]&&_0x593fef[_0x3e5858[_0x9a3b('0x12')]]){_0x15ba19[_0x3e5858['idField']]=_0x593fef[_0x3e5858[_0x9a3b('0x12')]]['toString']();}else if(_0x3e5858[_0x9a3b('0x11')]===_0x9a3b('0x13')&&_0x3e5858[_0x9a3b('0x14')]&&_0x3e5858['Variable']['name']&&_0x3e5858[_0x9a3b('0x10')]&&_0x593fef[_0x3e5858['Variable'][_0x9a3b('0x15')][_0x9a3b('0x16')]()]){_0x15ba19[_0x3e5858[_0x9a3b('0x10')]]=_0x593fef[_0x3e5858[_0x9a3b('0x14')][_0x9a3b('0x15')]['toLowerCase']()]['toString']();}});}return _0x15ba19;}function createTicket(_0xa2975,_0x2dbf3b,_0x5c1af2,_0x22cbbb,_0x32b520,_0x236014,_0x4bd9c6){logger['info'](_0x9a3b('0x17'));var _0x55c97c=_['merge']({'parent_id':'','assigned_user_id':_0x2dbf3b['id'],'ticketpriorities':_0x9a3b('0x18'),'ticketstatus':_0x9a3b('0x19'),'ticket_title':intUtil[_0x9a3b('0x1a')](_0x22cbbb[_0x9a3b('0x1b')],_0x32b520,'\x20'),'description':intUtil[_0x9a3b('0x1a')](_0x22cbbb[_0x9a3b('0x1c')],_0x32b520,'\x0a'),'contact_id':_0x5c1af2['id']},getCustomFields(_0x236014,_0x32b520));var _0x5da539={'method':_0x9a3b('0x1d'),'uri':util[_0x9a3b('0x1e')](_0x9a3b('0x1f'),_0xa2975[_0x9a3b('0x20')]),'form':{'operation':_0x9a3b('0x21'),'username':_0x9a3b('0x22'),'sessionName':_0x4bd9c6[_0x9a3b('0x23')],'elementType':_0x9a3b('0x24'),'element':JSON['stringify'](_0x55c97c)},'json':!![]};return request(_0x5da539)[_0x9a3b('0x25')](function(_0xff2a20){if(_0xff2a20['success']){return BPromise['resolve']({'id':_0xff2a20[_0x9a3b('0x26')]['id']});}else{throw new Error(util[_0x9a3b('0x1e')](_0x9a3b('0x27'),JSON[_0x9a3b('0x28')](_0xff2a20['error'])));}})[_0x9a3b('0x29')](function(_0x21c712){var _0x9daa08=_0x21c712[_0x9a3b('0x2a')]||0x1f4;logger[_0x9a3b('0x2b')](_0x9a3b('0x2c'),'createTicket',_0x9daa08,JSON[_0x9a3b('0x28')](_0x21c712));});}function getUser(_0x4eeb4b,_0x432f23,_0xcc06f){if(intUtil[_0x9a3b('0x2d')](_0x432f23)){logger['info'](_0x9a3b('0x2e'),_0x432f23);return request({'method':_0x9a3b('0x2f'),'uri':util[_0x9a3b('0x1e')](_0x9a3b('0x1f'),_0x4eeb4b[_0x9a3b('0x20')]),'qs':{'operation':_0x9a3b('0x30'),'username':'admin','sessionName':_0xcc06f['sessionName'],'query':util[_0x9a3b('0x1e')](_0x9a3b('0x31'),_0x432f23)},'json':!![]})[_0x9a3b('0x25')](function(_0x240396){if(_0x240396[_0x9a3b('0x32')]&&_0x240396['result']['length']){logger['info'](_0x9a3b('0x33'));return BPromise[_0x9a3b('0x34')]({'id':_0x240396['result'][0x0]['id'],'email':_0x240396[_0x9a3b('0x26')][0x0][_0x9a3b('0x35')],'name':_0x240396[_0x9a3b('0x26')][0x0]['first_name']+'\x20'+_0x240396['result'][_0x9a3b('0x36')]});}else{logger['info'](_0x9a3b('0x37'));return BPromise['resolve']({'id':_0xcc06f[_0x9a3b('0x38')],'email':_0x4eeb4b['username'],'name':_0x9a3b('0x22')});}})[_0x9a3b('0x29')](function(_0x1d476f){var _0x3349a6=_0x1d476f[_0x9a3b('0x2a')]||0x1f4;logger['error'](_0x9a3b('0x2c'),'getUser',_0x3349a6,JSON[_0x9a3b('0x28')](_0x1d476f));});}else{logger[_0x9a3b('0x39')](_0x9a3b('0x37'));return BPromise[_0x9a3b('0x34')]({'id':_0xcc06f[_0x9a3b('0x38')],'email':_0x4eeb4b[_0x9a3b('0x3a')],'name':'admin'})['catch'](function(_0x3f06b6){var _0x173845=_0x3f06b6[_0x9a3b('0x2a')]||0x1f4;logger['error'](_0x9a3b('0x2c'),'getUser',_0x173845,JSON[_0x9a3b('0x28')](_0x3f06b6));});}}function getEndUser(_0x442cb9,_0x19d450,_0x4cd476,_0x35d73b){logger[_0x9a3b('0x39')](_0x9a3b('0x3b'),_0x4cd476);return request({'method':_0x9a3b('0x2f'),'uri':util[_0x9a3b('0x1e')](_0x9a3b('0x1f'),_0x442cb9['remoteUri']),'qs':{'operation':_0x9a3b('0x30'),'username':_0x9a3b('0x22'),'sessionName':_0x35d73b[_0x9a3b('0x23')],'query':util['format'](_0x9a3b('0x3c'),_0x4cd476,_0x4cd476,_0x4cd476,_0x4cd476,_0x4cd476)},'json':!![]})[_0x9a3b('0x25')](function(_0x1df2bf){if(_0x1df2bf[_0x9a3b('0x32')]&&_0x1df2bf[_0x9a3b('0x26')][_0x9a3b('0xd')]){logger[_0x9a3b('0x39')](_0x9a3b('0x3d'));return BPromise[_0x9a3b('0x34')]({'id':_0x1df2bf['result'][0x0]['id'],'name':_0x1df2bf[_0x9a3b('0x26')][0x0][_0x9a3b('0x3e')]+'\x20'+_0x1df2bf[_0x9a3b('0x26')][0x0][_0x9a3b('0x3f')],'phone':_0x4cd476});}else{logger[_0x9a3b('0x39')](_0x9a3b('0x40'));return request({'method':_0x9a3b('0x1d'),'uri':util[_0x9a3b('0x1e')](_0x9a3b('0x1f'),_0x442cb9[_0x9a3b('0x20')]),'form':{'operation':_0x9a3b('0x21'),'sessionName':_0x35d73b[_0x9a3b('0x23')],'elementType':_0x9a3b('0x41'),'element':JSON[_0x9a3b('0x28')]({'lastname':_0x19d450,'phone':_0x4cd476,'assigned_user_id':'\x20'})},'json':!![]})[_0x9a3b('0x25')](function(_0x366b4a){logger[_0x9a3b('0x39')](_0x9a3b('0x42'));return BPromise[_0x9a3b('0x34')]({'id':_0x366b4a[_0x9a3b('0x26')]['id'],'name':_0x366b4a['result'][_0x9a3b('0x3f')],'phone':_0x366b4a[_0x9a3b('0x26')][_0x9a3b('0x43')]});})[_0x9a3b('0x29')](function(_0x244f3b){var _0x16a3cc=_0x244f3b[_0x9a3b('0x2a')]||0x1f4;logger[_0x9a3b('0x2b')](_0x9a3b('0x2c'),_0x9a3b('0x44'),_0x16a3cc,JSON[_0x9a3b('0x28')](_0x244f3b));});}});}function getConnection(_0x1cda0b){var _0x35ceaa=_0x1cda0b['username'];var _0x2d01d2=_0x1cda0b[_0x9a3b('0x45')];return request({'method':_0x9a3b('0x2f'),'uri':util[_0x9a3b('0x1e')](_0x9a3b('0x1f'),_0x1cda0b[_0x9a3b('0x20')]),'qs':{'operation':'getchallenge','username':_0x35ceaa},'json':!![]})['then'](function(_0x2a8233){if(_0x2a8233['success']){return request({'method':_0x9a3b('0x1d'),'uri':util[_0x9a3b('0x1e')](_0x9a3b('0x1f'),_0x1cda0b[_0x9a3b('0x20')]),'form':{'operation':_0x9a3b('0x46'),'username':_0x9a3b('0x22'),'accessKey':md5(_0x2a8233[_0x9a3b('0x26')][_0x9a3b('0x47')]+_0x2d01d2)},'json':!![]});}})[_0x9a3b('0x25')](function(_0xe1da3c){if(_0xe1da3c[_0x9a3b('0x32')]){return BPromise[_0x9a3b('0x34')](_0xe1da3c[_0x9a3b('0x26')]);}else{throw new Error(util[_0x9a3b('0x1e')](_0x9a3b('0x48'),_0x1cda0b['id']));}})['catch'](function(_0x2250dc){var _0xbde126=_0x2250dc[_0x9a3b('0x2a')]||0x1f4;logger['error'](_0x9a3b('0x2c'),_0x9a3b('0x49'),_0xbde126,JSON['stringify'](_0x2250dc));});}function request(_0x361c09){logger[_0x9a3b('0x39')](_0x9a3b('0x4a'),JSON[_0x9a3b('0x28')](_0x361c09));return rp(_0x361c09);}exports[_0x9a3b('0x4b')]=function(_0x2953e3,_0xfa2703,_0x329294,_0x32566d,_0x405af1,_0xecc304){var _0x159e43,_0x1576d7,_0x27abcc,_0x132873;_0xecc304[_0x9a3b('0x20')]=intUtil[_0x9a3b('0x4c')](_0xecc304[_0x9a3b('0x20')]);if(_0x405af1&&_0x405af1[_0x9a3b('0x4d')]){logger['info']('[QUEUE]',_0x9a3b('0x4e'));_0xfa2703[_0x9a3b('0x4f')]=util[_0x9a3b('0x1e')](_0x9a3b('0x50'),_0xecc304['serverUrl'],_0xfa2703[_0x9a3b('0x51')],md5(_0xfa2703[_0x9a3b('0x51')]));}else{_0xfa2703['recordingURL']='';}return getConnection(_0xecc304)[_0x9a3b('0x25')](function(_0x1c0494){_0x132873=_0x1c0494;return getUser(_0xecc304,_0x32566d['email'],_0x132873);})['then'](function(_0x5ea313){_0x159e43=_0x5ea313;logger['info']('The\x20User\x20ID\x20is:',_0x159e43['id']);return getEndUser(_0xecc304,_0xfa2703['calleridname'],_0xfa2703[_0x9a3b('0x52')],_0x132873);})[_0x9a3b('0x25')](function(_0x43597d){_0x1576d7=_0x43597d;logger['info'](_0x9a3b('0x53'),_0x1576d7['id']);return createTicket(_0xecc304,_0x159e43,_0x1576d7,_0x329294,_0xfa2703,_0x329294[_0x9a3b('0x54')],_0x132873);})[_0x9a3b('0x25')](function(_0xdcbe1d){_0x27abcc=_0xdcbe1d;logger[_0x9a3b('0x39')](_0x9a3b('0x55'));logger['info']('The\x20Ticket\x20ID\x20is:',_0x27abcc['id']);var _0x177595=util[_0x9a3b('0x1e')](_0x9a3b('0x56'),_0xecc304[_0x9a3b('0x20')],_['split'](_0x27abcc['id'],'x')[0x1]);logger['info'](_0x9a3b('0x57'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x9a3b('0x1e')](_0x9a3b('0x58'),_0x32566d[_0x9a3b('0x15')]),_0x9a3b('0x59'),{'uri':_0x177595});})[_0x9a3b('0x29')](function(_0x18af58){logger[_0x9a3b('0x2b')](_0x9a3b('0x57'),JSON[_0x9a3b('0x28')](_0x18af58));});};exports[_0x9a3b('0x5a')]=function(_0x2666d3,_0x4c6990,_0xc7bf28,_0x5bf419,_0x142e78,_0x2e2881,_0x2d5c0b){var _0x1eb516,_0x41411d,_0x806726,_0x5f1fb4;_0x2e2881[_0x9a3b('0x20')]=intUtil[_0x9a3b('0x4c')](_0x2e2881['remoteUri']);_0x2e2881['serverUrl']=intUtil[_0x9a3b('0x4c')](_0x2e2881['serverUrl']);if(_0x2d5c0b&&_0x2d5c0b[_0x9a3b('0x5b')]&&_0x2d5c0b[_0x9a3b('0x5b')]!=='none'){logger[_0x9a3b('0x39')](_0x9a3b('0x5c'),_0x9a3b('0x4e'));_0x4c6990['recordingURL']=util[_0x9a3b('0x1e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2e2881[_0x9a3b('0x5d')],_0x4c6990[_0x9a3b('0x51')],md5(_0x4c6990['uniqueid']));}return getConnection(_0x2e2881)['then'](function(_0xe74a92){_0x5f1fb4=_0xe74a92;return getUser(_0x2e2881,_0x5bf419[_0x9a3b('0x5e')],_0x5f1fb4);})[_0x9a3b('0x25')](function(_0x4e2c2f){_0x1eb516=_0x4e2c2f;logger[_0x9a3b('0x39')](_0x9a3b('0x5f'),_0x1eb516['id']);return getEndUser(_0x2e2881,_0x4c6990['destcalleridname'],_0x4c6990[_0x9a3b('0x60')],_0x5f1fb4);})[_0x9a3b('0x25')](function(_0x14e399){_0x41411d=_0x14e399;logger['info']('The\x20Enduser\x20ID\x20is:',_0x41411d['id']);return createTicket(_0x2e2881,_0x1eb516,_0x41411d,_0xc7bf28,_0x4c6990,_0xc7bf28['Fields'],_0x5f1fb4);})['then'](function(_0x265a29){_0x806726=_0x265a29;logger[_0x9a3b('0x39')](_0x9a3b('0x55'));logger[_0x9a3b('0x39')](_0x9a3b('0x61'),_0x806726['id']);var _0x1d6261=util[_0x9a3b('0x1e')](_0x9a3b('0x56'),_0x2e2881[_0x9a3b('0x20')],_[_0x9a3b('0x62')](_0x806726['id'],'x')[0x1]);logger[_0x9a3b('0x39')](_0x9a3b('0x5c'),_0x9a3b('0x63'));emit(util[_0x9a3b('0x1e')]('user:%s',_0x5bf419[_0x9a3b('0x15')]),_0x9a3b('0x59'),{'uri':_0x1d6261});})[_0x9a3b('0x29')](function(_0x490a8a){logger['error']('[OUTBOUND]',JSON[_0x9a3b('0x28')](_0x490a8a));});};exports[_0x9a3b('0x64')]=function(_0x4578a9,_0x2d1332,_0x53ae2a,_0x324e19,_0x592c35,_0x27a120){var _0xb6c0b6,_0x326213,_0x1c4e0c,_0x39c489;_0x27a120[_0x9a3b('0x20')]=intUtil[_0x9a3b('0x4c')](_0x27a120[_0x9a3b('0x20')]);_0x27a120['serverUrl']=intUtil[_0x9a3b('0x4c')](_0x27a120[_0x9a3b('0x5d')]);if(_0x592c35&&_0x592c35['monitor_format']){logger[_0x9a3b('0x39')](_0x9a3b('0x65'),_0x9a3b('0x4e'));_0x2d1332[_0x9a3b('0x4f')]=util[_0x9a3b('0x1e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x27a120['serverUrl'],_0x2d1332[_0x9a3b('0x51')],md5(_0x2d1332[_0x9a3b('0x51')]));}else{_0x2d1332[_0x9a3b('0x4f')]='';}return getConnection(_0x27a120)['then'](function(_0x43bc13){_0x39c489=_0x43bc13;return getUser(_0x27a120,'',_0x39c489);})[_0x9a3b('0x25')](function(_0x5d5ded){_0xb6c0b6=_0x5d5ded;logger['info']('The\x20User\x20ID\x20is:',_0xb6c0b6['id']);return getEndUser(_0x27a120,_0x2d1332['calleridname'],_0x2d1332[_0x9a3b('0x52')],_0x39c489);})[_0x9a3b('0x25')](function(_0x4f23fe){_0x326213=_0x4f23fe;logger['info'](_0x9a3b('0x53'),_0x326213['id']);return createTicket(_0x27a120,_0xb6c0b6,_0x326213,_0x53ae2a,_0x2d1332,_0x53ae2a['Fields'],_0x39c489);})['then'](function(_0x574b82){_0x1c4e0c=_0x574b82;logger[_0x9a3b('0x39')](_0x9a3b('0x55'));logger[_0x9a3b('0x39')](_0x9a3b('0x61'),_0x1c4e0c['id']);})[_0x9a3b('0x29')](function(_0x4d6acd){logger['error'](_0x9a3b('0x65'),JSON[_0x9a3b('0x28')](_0x4d6acd));});};