Built motion from commit (unavailable).|2.6.0
[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 _0x00ca=['Agent\x20found!','resolve','email1','first_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','getUser','Searching\x20end\x20user\x20with\x20phone','query','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;','firstname','lastname','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','POST','Contacts','phone','getEndUser','getchallenge','login','token','Account\x20%d\x20is\x20not\x20valid','getConnection','[HTTP]','monitor_format','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Fields','Ticket\x20created!','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','split','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','outbound','stripTrailingSlash','serverUrl','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','email','The\x20Ticket\x20ID\x20is:','trigger:browser:url','unmanaged','toUpperCase','lastevent','lodash','request-promise','util','./util','../../../../config/logger','vTiger','redis','defaults','localhost','emit','forEach','string','picklist','type','idField','content','toString','variable','variableName','Variable','name','toLowerCase','merge','Normal','getString','Subjects','format','%s/webservice.php','remoteUri','create','username','sessionName','HelpDesk','then','success','result','Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s','stringify','error','catch','statusCode','[vTiger],\x20%s,\x20%s,\x20%s','validateEmail','info','Getting\x20agent\x20with\x20email','GET','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','length'];(function(_0x411add,_0x1aed38){var _0x238242=function(_0x4a1cd5){while(--_0x4a1cd5){_0x411add['push'](_0x411add['shift']());}};_0x238242(++_0x1aed38);}(_0x00ca,0x96));var _0xa00c=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x00ca[_0x2f5ac5];return _0x37c9a8;};'use strict';var _=require(_0xa00c('0x0'));var rp=require(_0xa00c('0x1'));var BPromise=require('bluebird');var md5=require('md5');var util=require(_0xa00c('0x2'));var Redis=require('ioredis');var intUtil=require(_0xa00c('0x3'));var config=require('../../../../config/environment');var logger=require(_0xa00c('0x4'))(_0xa00c('0x5'));config[_0xa00c('0x6')]=_[_0xa00c('0x7')](config[_0xa00c('0x6')],{'host':_0xa00c('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function emit(_0x3d6ff4,_0x1e0ed6,_0x3523ce){io['to'](_0x3d6ff4)[_0xa00c('0x9')](_0x1e0ed6,_0x3523ce);}function getCustomFields(_0x270b1a,_0x341d9d){var _0x127456={};if(_0x270b1a['length']>0x0){_[_0xa00c('0xa')](_0x270b1a,function(_0x24374c){if(_['includes']([_0xa00c('0xb'),_0xa00c('0xc')],_0x24374c[_0xa00c('0xd')])&&_0x24374c[_0xa00c('0xe')]){_0x127456[_0x24374c[_0xa00c('0xe')]]=_0x24374c[_0xa00c('0xf')][_0xa00c('0x10')]();}else if(_0x24374c[_0xa00c('0xd')]===_0xa00c('0x11')&&_0x24374c[_0xa00c('0x12')]&&_0x24374c['idField']&&_0x341d9d[_0x24374c[_0xa00c('0x12')]]){_0x127456[_0x24374c[_0xa00c('0xe')]]=_0x341d9d[_0x24374c[_0xa00c('0x12')]][_0xa00c('0x10')]();}else if(_0x24374c[_0xa00c('0xd')]==='customVariable'&&_0x24374c[_0xa00c('0x13')]&&_0x24374c[_0xa00c('0x13')][_0xa00c('0x14')]&&_0x24374c[_0xa00c('0xe')]&&_0x341d9d[_0x24374c[_0xa00c('0x13')][_0xa00c('0x14')][_0xa00c('0x15')]()]){_0x127456[_0x24374c[_0xa00c('0xe')]]=_0x341d9d[_0x24374c[_0xa00c('0x13')][_0xa00c('0x14')][_0xa00c('0x15')]()][_0xa00c('0x10')]();}});}return _0x127456;}function createTicket(_0x1e1de2,_0x31ed53,_0x532df1,_0x4e095b,_0x196607,_0x3fb6ea,_0xb637f8){logger['info']('Creating\x20new\x20ticket...');var _0x522964=_[_0xa00c('0x16')]({'parent_id':'','assigned_user_id':_0x31ed53['id'],'ticketpriorities':_0xa00c('0x17'),'ticketstatus':'Open','ticket_title':intUtil[_0xa00c('0x18')](_0x4e095b[_0xa00c('0x19')],_0x196607,'\x20'),'description':intUtil['getString'](_0x4e095b['Descriptions'],_0x196607,'\x0a'),'contact_id':_0x532df1['id']},getCustomFields(_0x3fb6ea,_0x196607));var _0x4886b9={'method':'POST','uri':util[_0xa00c('0x1a')](_0xa00c('0x1b'),_0x1e1de2[_0xa00c('0x1c')]),'form':{'operation':_0xa00c('0x1d'),'username':_0x1e1de2[_0xa00c('0x1e')],'sessionName':_0xb637f8[_0xa00c('0x1f')],'elementType':_0xa00c('0x20'),'element':JSON['stringify'](_0x522964)},'json':!![]};return request(_0x4886b9)[_0xa00c('0x21')](function(_0x284f1f){if(_0x284f1f[_0xa00c('0x22')]){return BPromise['resolve']({'id':_0x284f1f[_0xa00c('0x23')]['id']});}else{throw new Error(util[_0xa00c('0x1a')](_0xa00c('0x24'),JSON[_0xa00c('0x25')](_0x284f1f[_0xa00c('0x26')])));}})[_0xa00c('0x27')](function(_0x4cd3f6){var _0x2982cc=_0x4cd3f6[_0xa00c('0x28')]||0x1f4;logger[_0xa00c('0x26')](_0xa00c('0x29'),'createTicket',_0x2982cc,JSON[_0xa00c('0x25')](_0x4cd3f6));});}function getUser(_0x338030,_0x5297d4,_0x51c9bb){if(intUtil[_0xa00c('0x2a')](_0x5297d4)){logger[_0xa00c('0x2b')](_0xa00c('0x2c'),_0x5297d4);return request({'method':_0xa00c('0x2d'),'uri':util['format'](_0xa00c('0x1b'),_0x338030['remoteUri']),'qs':{'operation':'query','username':_0x338030['username'],'sessionName':_0x51c9bb[_0xa00c('0x1f')],'query':util[_0xa00c('0x1a')](_0xa00c('0x2e'),_0x5297d4)},'json':!![]})[_0xa00c('0x21')](function(_0x513e69){if(_0x513e69[_0xa00c('0x22')]&&_0x513e69[_0xa00c('0x23')][_0xa00c('0x2f')]){logger['info'](_0xa00c('0x30'));return BPromise[_0xa00c('0x31')]({'id':_0x513e69[_0xa00c('0x23')][0x0]['id'],'email':_0x513e69['result'][0x0][_0xa00c('0x32')],'name':_0x513e69[_0xa00c('0x23')][0x0][_0xa00c('0x33')]+'\x20'+_0x513e69[_0xa00c('0x23')]['last_name']});}else{logger[_0xa00c('0x2b')](_0xa00c('0x34'));return BPromise[_0xa00c('0x31')]({'id':_0x51c9bb[_0xa00c('0x35')],'email':_0x338030['username'],'name':'admin'});}})[_0xa00c('0x27')](function(_0x97399e){var _0x1b09ba=_0x97399e[_0xa00c('0x28')]||0x1f4;logger[_0xa00c('0x26')](_0xa00c('0x29'),_0xa00c('0x36'),_0x1b09ba,JSON[_0xa00c('0x25')](_0x97399e));});}else{logger[_0xa00c('0x2b')](_0xa00c('0x34'));return BPromise['resolve']({'id':_0x51c9bb[_0xa00c('0x35')],'email':_0x338030[_0xa00c('0x1e')],'name':'admin'})[_0xa00c('0x27')](function(_0x230454){var _0x87a9e9=_0x230454[_0xa00c('0x28')]||0x1f4;logger[_0xa00c('0x26')](_0xa00c('0x29'),'getUser',_0x87a9e9,JSON[_0xa00c('0x25')](_0x230454));});}}function getEndUser(_0x5d6916,_0xcba5cc,_0x51d990,_0x1efdb2){logger[_0xa00c('0x2b')](_0xa00c('0x37'),_0x51d990);return request({'method':'GET','uri':util[_0xa00c('0x1a')](_0xa00c('0x1b'),_0x5d6916['remoteUri']),'qs':{'operation':_0xa00c('0x38'),'username':_0x5d6916[_0xa00c('0x1e')],'sessionName':_0x1efdb2['sessionName'],'query':util['format'](_0xa00c('0x39'),_0x51d990,_0x51d990,_0x51d990,_0x51d990,_0x51d990)},'json':!![]})[_0xa00c('0x21')](function(_0x564db5){if(_0x564db5['success']&&_0x564db5[_0xa00c('0x23')]['length']){logger[_0xa00c('0x2b')]('Enduser\x20found!');return BPromise['resolve']({'id':_0x564db5['result'][0x0]['id'],'name':_0x564db5[_0xa00c('0x23')][0x0][_0xa00c('0x3a')]+'\x20'+_0x564db5[_0xa00c('0x23')][0x0][_0xa00c('0x3b')],'phone':_0x51d990});}else{logger['info'](_0xa00c('0x3c'));return request({'method':_0xa00c('0x3d'),'uri':util[_0xa00c('0x1a')]('%s/webservice.php',_0x5d6916[_0xa00c('0x1c')]),'form':{'operation':_0xa00c('0x1d'),'sessionName':_0x1efdb2[_0xa00c('0x1f')],'elementType':_0xa00c('0x3e'),'element':JSON['stringify']({'lastname':_0xcba5cc,'phone':_0x51d990,'assigned_user_id':'\x20'})},'json':!![]})['then'](function(_0x77864c){logger[_0xa00c('0x2b')]('Enduser\x20created.');return BPromise[_0xa00c('0x31')]({'id':_0x77864c[_0xa00c('0x23')]['id'],'name':_0x77864c[_0xa00c('0x23')][_0xa00c('0x3b')],'phone':_0x77864c[_0xa00c('0x23')][_0xa00c('0x3f')]});})['catch'](function(_0x36dc2c){var _0x4c8f1e=_0x36dc2c[_0xa00c('0x28')]||0x1f4;logger[_0xa00c('0x26')](_0xa00c('0x29'),_0xa00c('0x40'),_0x4c8f1e,JSON['stringify'](_0x36dc2c));});}});}function getConnection(_0x3e112f){var _0xe33f6e=_0x3e112f[_0xa00c('0x1e')];var _0x1751e8=_0x3e112f['accessKey'];return request({'method':'GET','uri':util[_0xa00c('0x1a')](_0xa00c('0x1b'),_0x3e112f[_0xa00c('0x1c')]),'qs':{'operation':_0xa00c('0x41'),'username':_0xe33f6e},'json':!![]})[_0xa00c('0x21')](function(_0xbece04){if(_0xbece04['success']){return request({'method':_0xa00c('0x3d'),'uri':util[_0xa00c('0x1a')](_0xa00c('0x1b'),_0x3e112f[_0xa00c('0x1c')]),'form':{'operation':_0xa00c('0x42'),'username':_0xe33f6e,'accessKey':md5(_0xbece04[_0xa00c('0x23')][_0xa00c('0x43')]+_0x1751e8)},'json':!![]});}})[_0xa00c('0x21')](function(_0x5d6d40){if(_0x5d6d40[_0xa00c('0x22')]){return BPromise[_0xa00c('0x31')](_0x5d6d40['result']);}else{throw new Error(util[_0xa00c('0x1a')](_0xa00c('0x44'),_0x3e112f['id']));}})[_0xa00c('0x27')](function(_0x4b69a4){var _0x3bca8f=_0x4b69a4[_0xa00c('0x28')]||0x1f4;logger[_0xa00c('0x26')](_0xa00c('0x29'),_0xa00c('0x45'),_0x3bca8f,JSON[_0xa00c('0x25')](_0x4b69a4));});}function request(_0x29cb51){logger[_0xa00c('0x2b')](_0xa00c('0x46'),JSON[_0xa00c('0x25')](_0x29cb51));return rp(_0x29cb51);}exports['queue']=function(_0x28c02a,_0x5f056b,_0x20ed69,_0x581211,_0x121154,_0x4be53b){var _0x22c5b3,_0x29dd8a,_0x5c8fbf,_0x292566;_0x4be53b[_0xa00c('0x1c')]=intUtil['stripTrailingSlash'](_0x4be53b[_0xa00c('0x1c')]);if(_0x121154&&_0x121154[_0xa00c('0x47')]){logger[_0xa00c('0x2b')](_0xa00c('0x48'),'Recording\x20is\x20enabled!');_0x5f056b[_0xa00c('0x49')]=util['format'](_0xa00c('0x4a'),_0x4be53b['serverUrl'],_0x5f056b[_0xa00c('0x4b')],md5(_0x5f056b[_0xa00c('0x4b')]));}else{_0x5f056b[_0xa00c('0x49')]='';}return getConnection(_0x4be53b)[_0xa00c('0x21')](function(_0x1df658){_0x292566=_0x1df658;return getUser(_0x4be53b,_0x581211['email'],_0x292566);})['then'](function(_0x4c5c8f){_0x22c5b3=_0x4c5c8f;logger[_0xa00c('0x2b')](_0xa00c('0x4c'),_0x22c5b3['id']);return getEndUser(_0x4be53b,_0x5f056b[_0xa00c('0x4d')],_0x5f056b[_0xa00c('0x4e')],_0x292566);})['then'](function(_0x3711c4){_0x29dd8a=_0x3711c4;logger[_0xa00c('0x2b')](_0xa00c('0x4f'),_0x29dd8a['id']);return createTicket(_0x4be53b,_0x22c5b3,_0x29dd8a,_0x20ed69,_0x5f056b,_0x20ed69[_0xa00c('0x50')],_0x292566);})[_0xa00c('0x21')](function(_0x323aa2){_0x5c8fbf=_0x323aa2;logger[_0xa00c('0x2b')](_0xa00c('0x51'));logger[_0xa00c('0x2b')]('The\x20Ticket\x20ID\x20is:',_0x5c8fbf['id']);var _0x29c7d9=util[_0xa00c('0x1a')](_0xa00c('0x52'),_0x4be53b[_0xa00c('0x1c')],_[_0xa00c('0x53')](_0x5c8fbf['id'],'x')[0x1]);logger[_0xa00c('0x2b')](_0xa00c('0x48'),_0xa00c('0x54'));emit(util[_0xa00c('0x1a')](_0xa00c('0x55'),_0x581211['name']),'trigger:browser:url',{'uri':_0x29c7d9});})['catch'](function(_0xf94901){logger['error'](_0xa00c('0x48'),JSON[_0xa00c('0x25')](_0xf94901));});};exports[_0xa00c('0x56')]=function(_0x2f6d88,_0x431a76,_0x54b3c9,_0x181e16,_0x3d30c3,_0x11f201,_0x4f88b7){var _0x5a7b2c,_0x2426f3,_0x216c85,_0x29b6f2;_0x11f201['remoteUri']=intUtil[_0xa00c('0x57')](_0x11f201[_0xa00c('0x1c')]);_0x11f201['serverUrl']=intUtil[_0xa00c('0x57')](_0x11f201[_0xa00c('0x58')]);if(_0x4f88b7&&_0x4f88b7[_0xa00c('0x59')]&&_0x4f88b7[_0xa00c('0x59')]!==_0xa00c('0x5a')){logger[_0xa00c('0x2b')](_0xa00c('0x5b'),_0xa00c('0x5c'));_0x431a76[_0xa00c('0x49')]=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x11f201[_0xa00c('0x58')],_0x431a76[_0xa00c('0x4b')],md5(_0x431a76[_0xa00c('0x4b')]));}return getConnection(_0x11f201)['then'](function(_0x109b3a){_0x29b6f2=_0x109b3a;return getUser(_0x11f201,_0x181e16[_0xa00c('0x5d')],_0x29b6f2);})['then'](function(_0x36756a){_0x5a7b2c=_0x36756a;logger[_0xa00c('0x2b')](_0xa00c('0x4c'),_0x5a7b2c['id']);return getEndUser(_0x11f201,_0x431a76['destcalleridname'],_0x431a76['destcalleridnum'],_0x29b6f2);})[_0xa00c('0x21')](function(_0x1c8f0d){_0x2426f3=_0x1c8f0d;logger[_0xa00c('0x2b')](_0xa00c('0x4f'),_0x2426f3['id']);return createTicket(_0x11f201,_0x5a7b2c,_0x2426f3,_0x54b3c9,_0x431a76,_0x54b3c9['Fields'],_0x29b6f2);})[_0xa00c('0x21')](function(_0x2597d7){_0x216c85=_0x2597d7;logger['info']('Ticket\x20created!');logger[_0xa00c('0x2b')](_0xa00c('0x5e'),_0x216c85['id']);var _0x2822a9=util[_0xa00c('0x1a')](_0xa00c('0x52'),_0x11f201[_0xa00c('0x1c')],_['split'](_0x216c85['id'],'x')[0x1]);logger[_0xa00c('0x2b')](_0xa00c('0x5b'),_0xa00c('0x54'));emit(util[_0xa00c('0x1a')](_0xa00c('0x55'),_0x181e16[_0xa00c('0x14')]),_0xa00c('0x5f'),{'uri':_0x2822a9});})[_0xa00c('0x27')](function(_0x5e2e45){logger[_0xa00c('0x26')](_0xa00c('0x5b'),JSON['stringify'](_0x5e2e45));});};exports[_0xa00c('0x60')]=function(_0x2bc1a4,_0x46de52,_0x15d384,_0x3b20bf,_0x3d592e,_0x394240){var _0x34d04d,_0x4e3218,_0x400270,_0x2ac905;_0x394240[_0xa00c('0x1c')]=intUtil[_0xa00c('0x57')](_0x394240[_0xa00c('0x1c')]);_0x394240[_0xa00c('0x58')]=intUtil[_0xa00c('0x57')](_0x394240['serverUrl']);if(_0x3d592e&&_0x3d592e['monitor_format']){logger['info']('['+_0x46de52['lastevent'][_0xa00c('0x61')]()+']',_0xa00c('0x5c'));_0x46de52[_0xa00c('0x49')]=util[_0xa00c('0x1a')](_0xa00c('0x4a'),_0x394240[_0xa00c('0x58')],_0x46de52['uniqueid'],md5(_0x46de52[_0xa00c('0x4b')]));}else{_0x46de52[_0xa00c('0x49')]='';}return getConnection(_0x394240)['then'](function(_0x2fba40){_0x2ac905=_0x2fba40;return getUser(_0x394240,'',_0x2ac905);})[_0xa00c('0x21')](function(_0xc949e9){_0x34d04d=_0xc949e9;logger[_0xa00c('0x2b')](_0xa00c('0x4c'),_0x34d04d['id']);return getEndUser(_0x394240,_0x46de52[_0xa00c('0x4d')],_0x46de52[_0xa00c('0x4e')],_0x2ac905);})[_0xa00c('0x21')](function(_0x26cf0b){_0x4e3218=_0x26cf0b;logger['info']('The\x20Enduser\x20ID\x20is:',_0x4e3218['id']);return createTicket(_0x394240,_0x34d04d,_0x4e3218,_0x15d384,_0x46de52,_0x15d384[_0xa00c('0x50')],_0x2ac905);})[_0xa00c('0x21')](function(_0x5e661f){_0x400270=_0x5e661f;logger['info']('Ticket\x20created!');logger['info'](_0xa00c('0x5e'),_0x400270['id']);})[_0xa00c('0x27')](function(_0x33a53d){logger[_0xa00c('0x26')]('['+_0x46de52[_0xa00c('0x62')][_0xa00c('0x61')]()+']',JSON['stringify'](_0x33a53d));});};