Built motion from commit (unavailable).|2.5.17
[motion2.git] / server / services / ami / trigger / integration / freshsales.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 _0xea31=['ticketId','task','Task\x20created:','/contacts/','user:%s','emit','trigger:browser:url','apiKey','stripTrailingSlash','remoteUri','serverUrl','toLowerCase','calleridnum','queue','unmanaged','outbound','email','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','The\x20ticket\x20ID\x20is:\x20%s','name',']\x20Error\x20running\x20Freshsales\x20integration','lodash','md5','util','moment','bluebird','ioredis','./util','../../../../config/environment','freshsales','redis','defaults','localhost','GET','/api/selector/owners','headers','info','Getting\x20admin\x20information','users','length','adminEmail','adminId','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','Getting\x20user\x20list','then','agentEmail','Getting\x20user\x20with\x20email','userEmail','userId','message','/api/lookup?q=','&f=','&entities=contact','find','contacts','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts','format','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','getString','Subjects','Descriptions','Contact','YYYY-MM-DDTHH:mm:ss'];(function(_0x4a29a9,_0x58cd04){var _0x386570=function(_0x1d2d09){while(--_0x1d2d09){_0x4a29a9['push'](_0x4a29a9['shift']());}};_0x386570(++_0x58cd04);}(_0xea31,0x6b));var _0x1ea3=function(_0x586434,_0x4d758e){_0x586434=_0x586434-0x0;var _0x47c43e=_0xea31[_0x586434];return _0x47c43e;};'use strict';var _=require(_0x1ea3('0x0'));var rp=require('request-promise');var md5=require(_0x1ea3('0x1'));var util=require(_0x1ea3('0x2'));var moment=require(_0x1ea3('0x3'));var Promise=require(_0x1ea3('0x4'));var Redis=require(_0x1ea3('0x5'));var intUtil=require(_0x1ea3('0x6'));var config=require(_0x1ea3('0x7'));var logger=require('../../../../config/logger')(_0x1ea3('0x8'));config[_0x1ea3('0x9')]=_[_0x1ea3('0xa')](config[_0x1ea3('0x9')],{'host':_0x1ea3('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x1ea3('0x9')]));function getAdminId(_0x1b578e,_0x30a6db,_0x38af81,_0x38fd19){return new Promise(function(_0x2ff19a,_0x54d150){var _0x286e49=![];var _0x3cad5b={'method':_0x1ea3('0xc'),'uri':_0x38fd19+_0x1ea3('0xd'),'json':!![]};_0x3cad5b[_0x1ea3('0xe')]=_0x38af81;logger[_0x1ea3('0xf')](_0x1ea3('0x10'));return rp(_0x3cad5b)['then'](function(_0x1c662f){if(_0x1c662f){var _0x4ea4f7=_0x1c662f[_0x1ea3('0x11')];var _0x2fc7f4=null;for(_0x2fc7f4=0x0;_0x2fc7f4<_0x4ea4f7[_0x1ea3('0x12')];_0x2fc7f4++){if(_0x4ea4f7[_0x2fc7f4]['email']===_0x1b578e[_0x1ea3('0x13')]){_0x1b578e[_0x1ea3('0x14')]=_0x4ea4f7[_0x2fc7f4]['id'];_0x286e49=!![];}}if(_0x286e49){logger[_0x1ea3('0xf')]('Admin\x20found:',_0x1b578e[_0x1ea3('0x14')]);_0x2ff19a(_0x1b578e);}else{_0x54d150({'statusCode':0x194,'message':_0x1ea3('0x15')});}}else{_0x54d150({'statusCode':0x194,'message':_0x1ea3('0x15')});}})[_0x1ea3('0x16')](function(_0x319de8){logger[_0x1ea3('0x17')]('['+[_0x30a6db[_0x1ea3('0x18')]()]+']',_0x319de8['message']);_0x54d150(_0x319de8);});});}function getUser(_0x2514f4,_0x199728,_0x1a108a){return function(_0x2f6e6f){return new Promise(function(_0xb1b4da,_0x541e18){var _0x1c7530={'method':_0x1ea3('0xc'),'uri':_0x1a108a+_0x1ea3('0xd'),'json':!![]};_0x1c7530['headers']=_0x199728;logger[_0x1ea3('0xf')](_0x1ea3('0x19'));return rp(_0x1c7530)[_0x1ea3('0x1a')](function(_0x5ecc77){if(_0x5ecc77){var _0x29de6a=_0x5ecc77['users'];var _0x276e4d=![];var _0x405ec0=null;if(_0x2f6e6f[_0x1ea3('0x1b')]!==null){logger[_0x1ea3('0xf')](_0x1ea3('0x1c'),_0x2f6e6f['agentEmail']);_0x2f6e6f[_0x1ea3('0x1d')]=_0x2f6e6f['agentEmail'];for(_0x405ec0=0x0;_0x405ec0<_0x29de6a[_0x1ea3('0x12')];_0x405ec0++){if(_0x29de6a[_0x405ec0]['email']===_0x2f6e6f[_0x1ea3('0x1b')]){_0x276e4d=!![];_0x2f6e6f[_0x1ea3('0x1e')]=_0x29de6a[_0x405ec0]['id'];logger[_0x1ea3('0xf')]('User\x20found:',_0x2f6e6f['userId']);}}}if(!_0x276e4d){logger[_0x1ea3('0xf')]('Admin\x20selected');_0x2f6e6f[_0x1ea3('0x1d')]=_0x2f6e6f[_0x1ea3('0x13')];_0x2f6e6f[_0x1ea3('0x1e')]=_0x2f6e6f[_0x1ea3('0x14')];_0x276e4d=!![];}if(_0x276e4d){_0xb1b4da(_0x2f6e6f);}else{_0x541e18({'statusCode':0x194,'message':_0x1ea3('0x15')});}}else{_0x541e18({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})['catch'](function(_0x30cf8d){logger[_0x1ea3('0x17')]('['+[_0x2514f4[_0x1ea3('0x18')]()]+']',_0x30cf8d[_0x1ea3('0x1f')]);_0x541e18(_0x30cf8d);});});};}function searchContact(_0x3ff4b2,_0x12283d,_0xcd701d,_0x2b83be){return new Promise(function(_0x345d6d,_0x3d9b63){var _0x3bc186={'method':_0x1ea3('0xc'),'headers':_0x12283d,'uri':_0x3ff4b2+_0x1ea3('0x20')+_0x2b83be+_0x1ea3('0x21')+_0xcd701d+_0x1ea3('0x22'),'json':!![]};rp(_0x3bc186)[_0x1ea3('0x1a')](function(_0x5c67f9){var _0x1e72bc=_[_0x1ea3('0x23')](_0x5c67f9[_0x1ea3('0x24')][_0x1ea3('0x24')],[_0xcd701d,_0x2b83be]);_0x345d6d(_0x1e72bc);})[_0x1ea3('0x16')](function(_0x59c5af){_0x3d9b63(_0x59c5af);});});}function getEndUser(_0x556161,_0x1e5df5,_0xdfd40a){return function(_0x5d510a){return new Promise(function(_0x29ca46,_0x3f7558){logger['info'](util['format'](_0x1ea3('0x25'),_0x5d510a[_0x1ea3('0x26')]));searchContact(_0xdfd40a,_0x1e5df5,_0x1ea3('0x27'),_0x5d510a[_0x1ea3('0x26')])[_0x1ea3('0x1a')](function(_0x330611){if(_0x330611){_0x5d510a[_0x1ea3('0x28')]=_0x330611['id'];logger[_0x1ea3('0xf')](_0x1ea3('0x29'),_0x5d510a['endUserId']);return _0x29ca46(_0x5d510a);}searchContact(_0xdfd40a,_0x1e5df5,_0x1ea3('0x2a'),_0x5d510a[_0x1ea3('0x26')])[_0x1ea3('0x1a')](function(_0x24793d){if(_0x24793d){_0x5d510a[_0x1ea3('0x28')]=_0x24793d['id'];logger[_0x1ea3('0xf')](_0x1ea3('0x2b'),_0x5d510a[_0x1ea3('0x28')]);return _0x29ca46(_0x5d510a);}createEndUser(_0x5d510a,_0x556161,_0x1e5df5,_0xdfd40a)[_0x1ea3('0x1a')](function(_0x268f8d){logger['info'](_0x1ea3('0x2c'),_0x268f8d['endUserId']);return _0x29ca46(_0x268f8d);});});})[_0x1ea3('0x16')](function(_0x5578c1){_0x3f7558(_0x5578c1);});});};}function createEndUser(_0x4cc1d0,_0x70a763,_0x570677,_0x4a953f){return new Promise(function(_0x55c304,_0x559ecc){var _0x709927=moment();var _0x7556d9={'method':_0x1ea3('0x2d'),'uri':_0x4a953f+_0x1ea3('0x2e'),'body':{'contact':{'last_name':_0x4cc1d0['contactNumber'],'work_number':_0x4cc1d0[_0x1ea3('0x26')],'mobile_number':_0x4cc1d0['contactNumber'],'owner_id':_0x4cc1d0[_0x1ea3('0x1e')],'created_at':_0x709927[_0x1ea3('0x2f')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x7556d9[_0x1ea3('0xe')]=_0x570677;logger[_0x1ea3('0xf')](_0x1ea3('0x30'));return rp(_0x7556d9)[_0x1ea3('0x1a')](function(_0x3aa195){_0x4cc1d0['endUserId']=_0x3aa195[_0x1ea3('0x31')]['id'];_0x55c304(_0x4cc1d0);})['catch'](function(_0xb6804e){logger[_0x1ea3('0x17')]('['+[_0x70a763[_0x1ea3('0x18')]()]+']',_0xb6804e[_0x1ea3('0x1f')]);_0x559ecc(_0xb6804e[_0x1ea3('0x1f')]);});});}function getTicket(_0xd4256b,_0x1a84b3,_0x2bb40c,_0x4cc0c5,_0x3a66a6){return function(_0x5839fd){logger[_0x1ea3('0xf')]('Creating\x20new\x20task');return new Promise(function(_0x314c9b,_0x24c026){var _0x5904a2=moment();var _0x15f00a={'method':_0x1ea3('0x2d'),'uri':_0x2bb40c+'/api/tasks','body':{'title':intUtil[_0x1ea3('0x32')](_0x4cc0c5[_0x1ea3('0x33')],_0x3a66a6,'\x20'),'description':intUtil[_0x1ea3('0x32')](_0x4cc0c5[_0x1ea3('0x34')],_0x3a66a6,'\x0a'),'owner_id':_0x5839fd[_0x1ea3('0x1e')],'creater_id':_0x5839fd[_0x1ea3('0x14')],'targetable_id':_0x5839fd['endUserId'],'targetable_type':_0x1ea3('0x35'),'created_at':_0x5904a2[_0x1ea3('0x2f')](_0x1ea3('0x36')),'due_date':_0x5904a2['add'](0x1e,'m')[_0x1ea3('0x2f')](_0x1ea3('0x36'))},'json':!![]};_0x15f00a[_0x1ea3('0xe')]=_0x1a84b3;return rp(_0x15f00a)[_0x1ea3('0x1a')](function(_0x3ebecc){_0x5839fd[_0x1ea3('0x37')]=_0x3ebecc[_0x1ea3('0x38')]['id'];logger[_0x1ea3('0xf')](_0x1ea3('0x39'),_0x5839fd[_0x1ea3('0x37')]);_0x314c9b(_0x5839fd);})[_0x1ea3('0x16')](function(_0x508a6b){logger[_0x1ea3('0x17')]('['+[_0xd4256b[_0x1ea3('0x18')]()]+']',_0x508a6b[_0x1ea3('0x1f')]);_0x24c026(_0x508a6b[_0x1ea3('0x1f')]);});});};}function emit(_0x5d9bdb,_0x150bbd,_0x361e2f){var _0x4c0ccd={'uri':_0x5d9bdb+_0x1ea3('0x3a')+_0x361e2f};io['to'](util[_0x1ea3('0x2f')](_0x1ea3('0x3b'),_0x150bbd))[_0x1ea3('0x3c')](_0x1ea3('0x3d'),_0x4c0ccd);}exports['cs']=function(_0x28955f,_0x27cc51,_0x5d06a0,_0x4e62e0,_0x554971,_0x218dce,_0x2ac9d2,_0xf69557){var _0x2de88d={};var _0x31c325={'Authorization':'Token\x20token='+_0x218dce[_0x1ea3('0x3e')]};_0x218dce['remoteUri']=intUtil[_0x1ea3('0x3f')](_0x218dce[_0x1ea3('0x40')]);_0x218dce['serverUrl']=intUtil['stripTrailingSlash'](_0x218dce[_0x1ea3('0x41')]);var _0x1696a3=_0x218dce[_0x1ea3('0x40')];_0x2de88d[_0x1ea3('0x13')]=_0x218dce['username'];_0x2de88d[_0x1ea3('0x26')]=_0xf69557[_0x1ea3('0x42')]()==='outbound'?_0x27cc51['destcalleridnum']:_0x27cc51[_0x1ea3('0x43')];_0x2de88d['callDirection']=_0xf69557===_0x1ea3('0x44')||_0xf69557===_0x1ea3('0x45')?_0x1ea3('0x44'):_0x1ea3('0x46');if(_0x4e62e0){_0x2de88d[_0x1ea3('0x1b')]=_0x4e62e0[_0x1ea3('0x47')];}var _0x440078=util[_0x1ea3('0x2f')](_0x1ea3('0x48'),_0x218dce[_0x1ea3('0x41')],_0x27cc51[_0x1ea3('0x49')],md5(_0x27cc51[_0x1ea3('0x49')]));if(_0x554971&&_0x554971['monitor_format']){logger[_0x1ea3('0xf')]('[QUEUE]',_0x1ea3('0x4a'));_0x27cc51[_0x1ea3('0x4b')]=_0x440078;}else if(_0x2ac9d2&&_0x2ac9d2['recordingFormat']&&_0x2ac9d2[_0x1ea3('0x4c')]!==_0x1ea3('0x4d')){logger[_0x1ea3('0xf')]('[OUTBOUND]','Recording\x20is\x20enabled!');_0x27cc51['recordingURL']=_0x440078;}else{_0x27cc51['recordingURL']='';}return getAdminId(_0x2de88d,_0xf69557,_0x31c325,_0x1696a3)[_0x1ea3('0x1a')](getUser(_0xf69557,_0x31c325,_0x1696a3))[_0x1ea3('0x1a')](getEndUser(_0xf69557,_0x31c325,_0x1696a3))[_0x1ea3('0x1a')](getTicket(_0xf69557,_0x31c325,_0x1696a3,_0x5d06a0,_0x27cc51))['then'](function(_0x27a335){logger['info'](util[_0x1ea3('0x2f')](_0x1ea3('0x4e'),_0x27a335[_0x1ea3('0x37')]));if(_0xf69557!==_0x1ea3('0x45')){logger[_0x1ea3('0xf')]('['+[_0xf69557[_0x1ea3('0x18')]()]+']','Displaying\x20task\x20in\x20a\x20new\x20tab...');emit(_0x1696a3,_0x4e62e0[_0x1ea3('0x4f')],_0x27a335[_0x1ea3('0x28')]);}})['catch'](function(_0x531493){logger[_0x1ea3('0x17')]('['+[_0xf69557[_0x1ea3('0x18')]()]+_0x1ea3('0x50'),util['inspect'](_0x531493,{'showHidden':!![],'depth':null}));});};