Built motion from commit (unavailable).|2.5.4
[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 _0x2fa8=['email1','first_name','last_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','admin','getUser','Searching\x20end\x20user\x20with\x20phone','GET','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!','create','Contacts','phone','getEndUser','getchallenge','login','Account\x20%d\x20is\x20not\x20valid','stripTrailingSlash','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','email','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','user:%s','trigger:browser:url','recordingFormat','none','[OUTBOUND]','The\x20User\x20ID\x20is:','destcalleridnum','split','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','unmanaged','lastevent','toUpperCase','lodash','md5','ioredis','./util','../../../../config/environment','../../../../config/logger','vTiger','redis','defaults','localhost','emit','length','forEach','type','string','idField','toString','variable','variableName','Variable','name','toLowerCase','info','Creating\x20new\x20ticket...','Normal','Open','getString','Descriptions','POST','format','%s/webservice.php','remoteUri','username','sessionName','HelpDesk','then','success','resolve','result','Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s','error','catch','statusCode','[vTiger],\x20%s,\x20%s,\x20%s','createTicket','stringify','validateEmail','Getting\x20agent\x20with\x20email','query','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;'];(function(_0x3b8d79,_0x968003){var _0x87d67e=function(_0x508b6a){while(--_0x508b6a){_0x3b8d79['push'](_0x3b8d79['shift']());}};_0x87d67e(++_0x968003);}(_0x2fa8,0x90));var _0x82fa=function(_0xc2791a,_0x40048b){_0xc2791a=_0xc2791a-0x0;var _0x123db1=_0x2fa8[_0xc2791a];return _0x123db1;};'use strict';var _=require(_0x82fa('0x0'));var rp=require('request-promise');var BPromise=require('bluebird');var md5=require(_0x82fa('0x1'));var util=require('util');var Redis=require(_0x82fa('0x2'));var intUtil=require(_0x82fa('0x3'));var config=require(_0x82fa('0x4'));var logger=require(_0x82fa('0x5'))(_0x82fa('0x6'));config[_0x82fa('0x7')]=_[_0x82fa('0x8')](config[_0x82fa('0x7')],{'host':_0x82fa('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x82fa('0x7')]));function emit(_0x4551c2,_0x9855b1,_0x1e834e){io['to'](_0x4551c2)[_0x82fa('0xa')](_0x9855b1,_0x1e834e);}function getCustomFields(_0x4b9ab8,_0x4c5980){var _0x3e23c5={};if(_0x4b9ab8[_0x82fa('0xb')]>0x0){_[_0x82fa('0xc')](_0x4b9ab8,function(_0x311ef1){if(_0x311ef1[_0x82fa('0xd')]===_0x82fa('0xe')&&_0x311ef1['idField']){_0x3e23c5[_0x311ef1[_0x82fa('0xf')]]=_0x311ef1['content'][_0x82fa('0x10')]();}else if(_0x311ef1['type']===_0x82fa('0x11')&&_0x311ef1[_0x82fa('0x12')]&&_0x311ef1[_0x82fa('0xf')]&&_0x4c5980[_0x311ef1[_0x82fa('0x12')]]){_0x3e23c5[_0x311ef1[_0x82fa('0xf')]]=_0x4c5980[_0x311ef1[_0x82fa('0x12')]]['toString']();}else if(_0x311ef1[_0x82fa('0xd')]==='customVariable'&&_0x311ef1[_0x82fa('0x13')]&&_0x311ef1['Variable'][_0x82fa('0x14')]&&_0x311ef1[_0x82fa('0xf')]&&_0x4c5980[_0x311ef1['Variable'][_0x82fa('0x14')][_0x82fa('0x15')]()]){_0x3e23c5[_0x311ef1[_0x82fa('0xf')]]=_0x4c5980[_0x311ef1[_0x82fa('0x13')][_0x82fa('0x14')][_0x82fa('0x15')]()][_0x82fa('0x10')]();}});}return _0x3e23c5;}function createTicket(_0x5104fc,_0x3150ba,_0xa8b43d,_0x12e89a,_0x1fb89f,_0x289026,_0x5b9bbe){logger[_0x82fa('0x16')](_0x82fa('0x17'));var _0x208ec4=_['merge']({'parent_id':'','assigned_user_id':_0x3150ba['id'],'ticketpriorities':_0x82fa('0x18'),'ticketstatus':_0x82fa('0x19'),'ticket_title':intUtil[_0x82fa('0x1a')](_0x12e89a['Subjects'],_0x1fb89f,'\x20'),'description':intUtil['getString'](_0x12e89a[_0x82fa('0x1b')],_0x1fb89f,'\x0a'),'contact_id':_0xa8b43d['id']},getCustomFields(_0x289026,_0x1fb89f));var _0x5b630c={'method':_0x82fa('0x1c'),'uri':util[_0x82fa('0x1d')](_0x82fa('0x1e'),_0x5104fc[_0x82fa('0x1f')]),'form':{'operation':'create','username':_0x5104fc[_0x82fa('0x20')],'sessionName':_0x5b9bbe[_0x82fa('0x21')],'elementType':_0x82fa('0x22'),'element':JSON['stringify'](_0x208ec4)},'json':!![]};return request(_0x5b630c)[_0x82fa('0x23')](function(_0x441aca){if(_0x441aca[_0x82fa('0x24')]){return BPromise[_0x82fa('0x25')]({'id':_0x441aca[_0x82fa('0x26')]['id']});}else{throw new Error(util[_0x82fa('0x1d')](_0x82fa('0x27'),JSON['stringify'](_0x441aca[_0x82fa('0x28')])));}})[_0x82fa('0x29')](function(_0x5dbd7a){var _0x1bbe00=_0x5dbd7a[_0x82fa('0x2a')]||0x1f4;logger[_0x82fa('0x28')](_0x82fa('0x2b'),_0x82fa('0x2c'),_0x1bbe00,JSON[_0x82fa('0x2d')](_0x5dbd7a));});}function getUser(_0x4aae32,_0x530e33,_0x986141){if(intUtil[_0x82fa('0x2e')](_0x530e33)){logger['info'](_0x82fa('0x2f'),_0x530e33);return request({'method':'GET','uri':util['format'](_0x82fa('0x1e'),_0x4aae32[_0x82fa('0x1f')]),'qs':{'operation':_0x82fa('0x30'),'username':_0x4aae32[_0x82fa('0x20')],'sessionName':_0x986141['sessionName'],'query':util[_0x82fa('0x1d')](_0x82fa('0x31'),_0x530e33)},'json':!![]})['then'](function(_0x5b53cf){if(_0x5b53cf[_0x82fa('0x24')]&&_0x5b53cf[_0x82fa('0x26')][_0x82fa('0xb')]){logger['info']('Agent\x20found!');return BPromise[_0x82fa('0x25')]({'id':_0x5b53cf[_0x82fa('0x26')][0x0]['id'],'email':_0x5b53cf['result'][0x0][_0x82fa('0x32')],'name':_0x5b53cf[_0x82fa('0x26')][0x0][_0x82fa('0x33')]+'\x20'+_0x5b53cf[_0x82fa('0x26')][_0x82fa('0x34')]});}else{logger[_0x82fa('0x16')](_0x82fa('0x35'));return BPromise[_0x82fa('0x25')]({'id':_0x986141[_0x82fa('0x36')],'email':_0x4aae32[_0x82fa('0x20')],'name':_0x82fa('0x37')});}})[_0x82fa('0x29')](function(_0x5e6af9){var _0x557365=_0x5e6af9[_0x82fa('0x2a')]||0x1f4;logger['error']('[vTiger],\x20%s,\x20%s,\x20%s',_0x82fa('0x38'),_0x557365,JSON[_0x82fa('0x2d')](_0x5e6af9));});}else{logger[_0x82fa('0x16')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return BPromise['resolve']({'id':_0x986141[_0x82fa('0x36')],'email':_0x4aae32[_0x82fa('0x20')],'name':_0x82fa('0x37')})[_0x82fa('0x29')](function(_0xe3445f){var _0x2de792=_0xe3445f[_0x82fa('0x2a')]||0x1f4;logger[_0x82fa('0x28')]('[vTiger],\x20%s,\x20%s,\x20%s',_0x82fa('0x38'),_0x2de792,JSON[_0x82fa('0x2d')](_0xe3445f));});}}function getEndUser(_0x1abbfe,_0x2cdd12,_0x5df778,_0x170cb8){logger[_0x82fa('0x16')](_0x82fa('0x39'),_0x5df778);return request({'method':_0x82fa('0x3a'),'uri':util[_0x82fa('0x1d')]('%s/webservice.php',_0x1abbfe[_0x82fa('0x1f')]),'qs':{'operation':'query','username':_0x1abbfe['username'],'sessionName':_0x170cb8[_0x82fa('0x21')],'query':util['format'](_0x82fa('0x3b'),_0x5df778,_0x5df778,_0x5df778,_0x5df778,_0x5df778)},'json':!![]})[_0x82fa('0x23')](function(_0x71a05d){if(_0x71a05d[_0x82fa('0x24')]&&_0x71a05d[_0x82fa('0x26')][_0x82fa('0xb')]){logger[_0x82fa('0x16')](_0x82fa('0x3c'));return BPromise[_0x82fa('0x25')]({'id':_0x71a05d[_0x82fa('0x26')][0x0]['id'],'name':_0x71a05d[_0x82fa('0x26')][0x0][_0x82fa('0x3d')]+'\x20'+_0x71a05d[_0x82fa('0x26')][0x0][_0x82fa('0x3e')],'phone':_0x5df778});}else{logger[_0x82fa('0x16')](_0x82fa('0x3f'));return request({'method':'POST','uri':util[_0x82fa('0x1d')](_0x82fa('0x1e'),_0x1abbfe[_0x82fa('0x1f')]),'form':{'operation':_0x82fa('0x40'),'sessionName':_0x170cb8[_0x82fa('0x21')],'elementType':_0x82fa('0x41'),'element':JSON['stringify']({'lastname':_0x2cdd12,'phone':_0x5df778,'assigned_user_id':'\x20'})},'json':!![]})['then'](function(_0x39beaf){logger[_0x82fa('0x16')]('Enduser\x20created.');return BPromise[_0x82fa('0x25')]({'id':_0x39beaf[_0x82fa('0x26')]['id'],'name':_0x39beaf[_0x82fa('0x26')][_0x82fa('0x3e')],'phone':_0x39beaf[_0x82fa('0x26')][_0x82fa('0x42')]});})[_0x82fa('0x29')](function(_0x496837){var _0x4c2aba=_0x496837[_0x82fa('0x2a')]||0x1f4;logger[_0x82fa('0x28')](_0x82fa('0x2b'),_0x82fa('0x43'),_0x4c2aba,JSON[_0x82fa('0x2d')](_0x496837));});}});}function getConnection(_0x24a871){var _0x32de50=_0x24a871[_0x82fa('0x20')];var _0x3387aa=_0x24a871['accessKey'];return request({'method':_0x82fa('0x3a'),'uri':util['format'](_0x82fa('0x1e'),_0x24a871[_0x82fa('0x1f')]),'qs':{'operation':_0x82fa('0x44'),'username':_0x32de50},'json':!![]})['then'](function(_0x564d22){if(_0x564d22[_0x82fa('0x24')]){return request({'method':_0x82fa('0x1c'),'uri':util[_0x82fa('0x1d')]('%s/webservice.php',_0x24a871[_0x82fa('0x1f')]),'form':{'operation':_0x82fa('0x45'),'username':_0x32de50,'accessKey':md5(_0x564d22[_0x82fa('0x26')]['token']+_0x3387aa)},'json':!![]});}})[_0x82fa('0x23')](function(_0x44b058){if(_0x44b058[_0x82fa('0x24')]){return BPromise[_0x82fa('0x25')](_0x44b058['result']);}else{throw new Error(util[_0x82fa('0x1d')](_0x82fa('0x46'),_0x24a871['id']));}})[_0x82fa('0x29')](function(_0x37fd46){var _0x2d4796=_0x37fd46['statusCode']||0x1f4;logger[_0x82fa('0x28')](_0x82fa('0x2b'),'getConnection',_0x2d4796,JSON['stringify'](_0x37fd46));});}function request(_0x3df24d){logger[_0x82fa('0x16')]('[HTTP]',JSON[_0x82fa('0x2d')](_0x3df24d));return rp(_0x3df24d);}exports['queue']=function(_0xe21c38,_0x393a8d,_0x584d48,_0x12fbb2,_0x2f1d55,_0x474061){var _0x26ac50,_0x69c128,_0xb8ad9,_0x350890;_0x474061[_0x82fa('0x1f')]=intUtil[_0x82fa('0x47')](_0x474061['remoteUri']);if(_0x2f1d55&&_0x2f1d55['monitor_format']){logger['info'](_0x82fa('0x48'),_0x82fa('0x49'));_0x393a8d[_0x82fa('0x4a')]=util[_0x82fa('0x1d')](_0x82fa('0x4b'),_0x474061[_0x82fa('0x4c')],_0x393a8d[_0x82fa('0x4d')],md5(_0x393a8d[_0x82fa('0x4d')]));}else{_0x393a8d[_0x82fa('0x4a')]='';}return getConnection(_0x474061)[_0x82fa('0x23')](function(_0x2ce245){_0x350890=_0x2ce245;return getUser(_0x474061,_0x12fbb2[_0x82fa('0x4e')],_0x350890);})[_0x82fa('0x23')](function(_0x1ca1fc){_0x26ac50=_0x1ca1fc;logger['info']('The\x20User\x20ID\x20is:',_0x26ac50['id']);return getEndUser(_0x474061,_0x393a8d[_0x82fa('0x4f')],_0x393a8d[_0x82fa('0x50')],_0x350890);})['then'](function(_0x5d2d7b){_0x69c128=_0x5d2d7b;logger[_0x82fa('0x16')](_0x82fa('0x51'),_0x69c128['id']);return createTicket(_0x474061,_0x26ac50,_0x69c128,_0x584d48,_0x393a8d,_0x584d48['Fields'],_0x350890);})[_0x82fa('0x23')](function(_0x545063){_0xb8ad9=_0x545063;logger[_0x82fa('0x16')](_0x82fa('0x52'));logger[_0x82fa('0x16')](_0x82fa('0x53'),_0xb8ad9['id']);var _0x453268=util[_0x82fa('0x1d')](_0x82fa('0x54'),_0x474061[_0x82fa('0x1f')],_['split'](_0xb8ad9['id'],'x')[0x1]);logger[_0x82fa('0x16')]('[QUEUE]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x82fa('0x1d')](_0x82fa('0x55'),_0x12fbb2[_0x82fa('0x14')]),_0x82fa('0x56'),{'uri':_0x453268});})[_0x82fa('0x29')](function(_0x213619){logger[_0x82fa('0x28')]('[QUEUE]',JSON['stringify'](_0x213619));});};exports['outbound']=function(_0x4c4fcd,_0x1b7000,_0x311f95,_0x2be6fb,_0x26a167,_0x5ed902,_0x253f0e){var _0x52af3a,_0x189c4c,_0x3a3c82,_0x514d87;_0x5ed902[_0x82fa('0x1f')]=intUtil[_0x82fa('0x47')](_0x5ed902[_0x82fa('0x1f')]);_0x5ed902['serverUrl']=intUtil[_0x82fa('0x47')](_0x5ed902[_0x82fa('0x4c')]);if(_0x253f0e&&_0x253f0e['recordingFormat']&&_0x253f0e[_0x82fa('0x57')]!==_0x82fa('0x58')){logger[_0x82fa('0x16')](_0x82fa('0x59'),'Recording\x20is\x20enabled!');_0x1b7000[_0x82fa('0x4a')]=util[_0x82fa('0x1d')](_0x82fa('0x4b'),_0x5ed902[_0x82fa('0x4c')],_0x1b7000[_0x82fa('0x4d')],md5(_0x1b7000[_0x82fa('0x4d')]));}return getConnection(_0x5ed902)[_0x82fa('0x23')](function(_0x234be8){_0x514d87=_0x234be8;return getUser(_0x5ed902,_0x2be6fb['email'],_0x514d87);})[_0x82fa('0x23')](function(_0x538e8a){_0x52af3a=_0x538e8a;logger['info'](_0x82fa('0x5a'),_0x52af3a['id']);return getEndUser(_0x5ed902,_0x1b7000['destcalleridname'],_0x1b7000[_0x82fa('0x5b')],_0x514d87);})['then'](function(_0xad1034){_0x189c4c=_0xad1034;logger[_0x82fa('0x16')](_0x82fa('0x51'),_0x189c4c['id']);return createTicket(_0x5ed902,_0x52af3a,_0x189c4c,_0x311f95,_0x1b7000,_0x311f95['Fields'],_0x514d87);})[_0x82fa('0x23')](function(_0xa0d9d8){_0x3a3c82=_0xa0d9d8;logger[_0x82fa('0x16')](_0x82fa('0x52'));logger[_0x82fa('0x16')](_0x82fa('0x53'),_0x3a3c82['id']);var _0x4cb7da=util[_0x82fa('0x1d')](_0x82fa('0x54'),_0x5ed902[_0x82fa('0x1f')],_[_0x82fa('0x5c')](_0x3a3c82['id'],'x')[0x1]);logger[_0x82fa('0x16')](_0x82fa('0x59'),_0x82fa('0x5d'));emit(util[_0x82fa('0x1d')]('user:%s',_0x2be6fb[_0x82fa('0x14')]),_0x82fa('0x56'),{'uri':_0x4cb7da});})[_0x82fa('0x29')](function(_0x3b42a3){logger[_0x82fa('0x28')]('[OUTBOUND]',JSON[_0x82fa('0x2d')](_0x3b42a3));});};exports[_0x82fa('0x5e')]=function(_0xc5407d,_0x3460b9,_0x5d77b9,_0x3f941a,_0x135eee,_0x499a94){var _0x3faaf0,_0x18c6d3,_0x16e275,_0x77c8c1;_0x499a94['remoteUri']=intUtil[_0x82fa('0x47')](_0x499a94[_0x82fa('0x1f')]);_0x499a94[_0x82fa('0x4c')]=intUtil['stripTrailingSlash'](_0x499a94['serverUrl']);if(_0x135eee&&_0x135eee['monitor_format']){logger[_0x82fa('0x16')]('['+_0x3460b9[_0x82fa('0x5f')][_0x82fa('0x60')]()+']',_0x82fa('0x49'));_0x3460b9[_0x82fa('0x4a')]=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x499a94['serverUrl'],_0x3460b9[_0x82fa('0x4d')],md5(_0x3460b9[_0x82fa('0x4d')]));}else{_0x3460b9[_0x82fa('0x4a')]='';}return getConnection(_0x499a94)[_0x82fa('0x23')](function(_0x46994c){_0x77c8c1=_0x46994c;return getUser(_0x499a94,'',_0x77c8c1);})[_0x82fa('0x23')](function(_0x4db2eb){_0x3faaf0=_0x4db2eb;logger[_0x82fa('0x16')](_0x82fa('0x5a'),_0x3faaf0['id']);return getEndUser(_0x499a94,_0x3460b9['calleridname'],_0x3460b9[_0x82fa('0x50')],_0x77c8c1);})[_0x82fa('0x23')](function(_0x5e7213){_0x18c6d3=_0x5e7213;logger['info']('The\x20Enduser\x20ID\x20is:',_0x18c6d3['id']);return createTicket(_0x499a94,_0x3faaf0,_0x18c6d3,_0x5d77b9,_0x3460b9,_0x5d77b9['Fields'],_0x77c8c1);})[_0x82fa('0x23')](function(_0x55359f){_0x16e275=_0x55359f;logger['info']('Ticket\x20created!');logger[_0x82fa('0x16')]('The\x20Ticket\x20ID\x20is:',_0x16e275['id']);})['catch'](function(_0x24c4a6){logger[_0x82fa('0x28')]('['+_0x3460b9[_0x82fa('0x5f')][_0x82fa('0x60')]()+']',JSON[_0x82fa('0x2d')](_0x24c4a6));});};