03e686e686dc397e1be0116ca4e284d738164fdb
[motion2.git] / server / api / intZohoAccount / intZohoAccount.controller.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 _0x52a2=['sendStatus','error','stack','name','send','index','map','ZohoAccount','rawAttributes','fieldName','type','keys','query','filters','intersection','model','attributes','fields','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','options','length','find','create','body','catch','params','getConfigurations','findOne','ZohoConfiguration','nolimit','addConfiguration','AccountId','Subjects','channel','Descriptions','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','clientId','clientSecret','refresh_token','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','host','serverUrl','code','com','slice','substring','refreshToken','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','GET','https://www.zohoapis.%s/crm/v2/settings/fields','Calls','response','message','Owner','Subject','Description','WhoId','Call_Duration','Call_Result','Call_Start_Time','Call_Type','remove','includes','api_name','push','display_label','custom_field','data_type','picklist','pick_list_values','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','end','status','undefined','limit','count','offset','set','json','apply','reject','save','update','then','destroy'];(function(_0x389af2,_0x115337){var _0x5a5e34=function(_0x689d0d){while(--_0x689d0d){_0x389af2['push'](_0x389af2['shift']());}};_0x5a5e34(++_0x115337);}(_0x52a2,0x161));var _0x252a=function(_0x15beeb,_0x32bd4f){_0x15beeb=_0x15beeb-0x0;var _0x5b681a=_0x52a2[_0x15beeb];return _0x5b681a;};'use strict';var emlformat=require(_0x252a('0x0'));var rimraf=require(_0x252a('0x1'));var zipdir=require(_0x252a('0x2'));var jsonpatch=require(_0x252a('0x3'));var rp=require(_0x252a('0x4'));var moment=require(_0x252a('0x5'));var BPromise=require(_0x252a('0x6'));var Mustache=require('mustache');var util=require(_0x252a('0x7'));var path=require(_0x252a('0x8'));var sox=require('sox');var csv=require(_0x252a('0x9'));var ejs=require(_0x252a('0xa'));var fs=require('fs');var fs_extra=require(_0x252a('0xb'));var _=require(_0x252a('0xc'));var squel=require(_0x252a('0xd'));var crypto=require(_0x252a('0xe'));var jsforce=require(_0x252a('0xf'));var deskjs=require(_0x252a('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x252a('0x11'));var Redis=require('ioredis');var authService=require(_0x252a('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x252a('0x13'));var hardwareService=require(_0x252a('0x14'));var logger=require('../../config/logger')(_0x252a('0x15'));var utils=require(_0x252a('0x16'));var config=require(_0x252a('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x252a('0x18'))['db'];var integrations=require(_0x252a('0x19'));function respondWithStatusCode(_0xb26900,_0x218134){_0x218134=_0x218134||0xcc;return function(_0x142553){if(_0x142553){return _0xb26900['sendStatus'](_0x218134);}return _0xb26900['status'](_0x218134)[_0x252a('0x1a')]();};}function respondWithResult(_0x1e5b67,_0x2df6e3){_0x2df6e3=_0x2df6e3||0xc8;return function(_0x12bfb2){if(_0x12bfb2){return _0x1e5b67[_0x252a('0x1b')](_0x2df6e3)['json'](_0x12bfb2);}};}function respondWithFilteredResult(_0x540801,_0x3dc953){return function(_0xcf6c3f){if(_0xcf6c3f){var _0x31ef9c=typeof _0x3dc953['offset']===_0x252a('0x1c')&&typeof _0x3dc953[_0x252a('0x1d')]===_0x252a('0x1c');var _0x3c251d=_0xcf6c3f[_0x252a('0x1e')];var _0x26f370=_0x31ef9c?0x0:_0x3dc953[_0x252a('0x1f')];var _0x47b902=_0x31ef9c?_0xcf6c3f[_0x252a('0x1e')]:_0x3dc953['offset']+_0x3dc953[_0x252a('0x1d')];var _0x2276dd;if(_0x47b902>=_0x3c251d){_0x47b902=_0x3c251d;_0x2276dd=0xc8;}else{_0x2276dd=0xce;}_0x540801[_0x252a('0x1b')](_0x2276dd);return _0x540801[_0x252a('0x20')]('Content-Range',_0x26f370+'-'+_0x47b902+'/'+_0x3c251d)[_0x252a('0x21')](_0xcf6c3f);}return null;};}function patchUpdates(_0x201c7c){return function(_0x1d90a2){try{jsonpatch[_0x252a('0x22')](_0x1d90a2,_0x201c7c,!![]);}catch(_0x1d0154){return BPromise[_0x252a('0x23')](_0x1d0154);}return _0x1d90a2[_0x252a('0x24')]();};}function saveUpdates(_0x5cf267,_0x40a9a4){return function(_0x42d687){if(_0x42d687){return _0x42d687[_0x252a('0x25')](_0x5cf267)[_0x252a('0x26')](function(_0x58ceed){return _0x58ceed;});}return null;};}function removeEntity(_0x115961,_0x4f2005){return function(_0x5e5bfb){if(_0x5e5bfb){return _0x5e5bfb[_0x252a('0x27')]()[_0x252a('0x26')](function(){_0x115961[_0x252a('0x1b')](0xcc)[_0x252a('0x1a')]();});}};}function handleEntityNotFound(_0x3b304b,_0x16d1f8){return function(_0x4244d7){if(!_0x4244d7){_0x3b304b[_0x252a('0x28')](0x194);}return _0x4244d7;};}function handleError(_0x515f13,_0x1227fb){_0x1227fb=_0x1227fb||0x1f4;return function(_0x218653){logger[_0x252a('0x29')](_0x218653[_0x252a('0x2a')]);if(_0x218653[_0x252a('0x2b')]){delete _0x218653[_0x252a('0x2b')];}_0x515f13[_0x252a('0x1b')](_0x1227fb)[_0x252a('0x2c')](_0x218653);};}exports[_0x252a('0x2d')]=function(_0x159dbe,_0x524766){var _0x1d3498={},_0x3c952b={},_0xd4090c={'count':0x0,'rows':[]};var _0x3c1822=_[_0x252a('0x2e')](db[_0x252a('0x2f')][_0x252a('0x30')],function(_0x8ae7e4){return{'name':_0x8ae7e4[_0x252a('0x31')],'type':_0x8ae7e4[_0x252a('0x32')]['key']};});_0x3c952b['model']=_[_0x252a('0x2e')](_0x3c1822,'name');_0x3c952b['query']=_[_0x252a('0x33')](_0x159dbe[_0x252a('0x34')]);_0x3c952b[_0x252a('0x35')]=_[_0x252a('0x36')](_0x3c952b[_0x252a('0x37')],_0x3c952b['query']);_0x1d3498[_0x252a('0x38')]=_['intersection'](_0x3c952b[_0x252a('0x37')],qs[_0x252a('0x39')](_0x159dbe[_0x252a('0x34')]['fields']));_0x1d3498[_0x252a('0x38')]=_0x1d3498['attributes']['length']?_0x1d3498['attributes']:_0x3c952b[_0x252a('0x37')];if(!_0x159dbe[_0x252a('0x34')][_0x252a('0x3a')]('nolimit')){_0x1d3498[_0x252a('0x1d')]=qs['limit'](_0x159dbe[_0x252a('0x34')][_0x252a('0x1d')]);_0x1d3498[_0x252a('0x1f')]=qs[_0x252a('0x1f')](_0x159dbe['query'][_0x252a('0x1f')]);}_0x1d3498[_0x252a('0x3b')]=qs[_0x252a('0x3c')](_0x159dbe['query'][_0x252a('0x3c')]);_0x1d3498['where']=qs[_0x252a('0x35')](_[_0x252a('0x3d')](_0x159dbe['query'],_0x3c952b[_0x252a('0x35')]),_0x3c1822);if(_0x159dbe[_0x252a('0x34')][_0x252a('0x3e')]){_0x1d3498[_0x252a('0x3f')]=_[_0x252a('0x40')](_0x1d3498[_0x252a('0x3f')],{'$or':_[_0x252a('0x2e')](_0x3c1822,function(_0x41bece){if(_0x41bece['type']!==_0x252a('0x41')){var _0x5ce7bf={};_0x5ce7bf[_0x41bece[_0x252a('0x2b')]]={'$like':'%'+_0x159dbe[_0x252a('0x34')][_0x252a('0x3e')]+'%'};return _0x5ce7bf;}})});}_0x1d3498=_[_0x252a('0x40')]({},_0x1d3498,_0x159dbe[_0x252a('0x42')]);var _0x21d580={'where':_0x1d3498[_0x252a('0x3f')]};return db[_0x252a('0x2f')][_0x252a('0x1e')](_0x21d580)[_0x252a('0x26')](function(_0x559130){_0xd4090c[_0x252a('0x1e')]=_0x559130;if(_0x159dbe[_0x252a('0x34')]['includeAll']){_0x1d3498['include']=[{'all':!![]}];}return db['ZohoAccount']['findAll'](_0x1d3498);})[_0x252a('0x26')](function(_0x42577f){_0xd4090c['rows']=_0x42577f;return _0xd4090c;})[_0x252a('0x26')](respondWithFilteredResult(_0x524766,_0x1d3498))['catch'](handleError(_0x524766,null));};exports['show']=function(_0x2a7f0a,_0x7d929f){var _0x402dc8={'raw':![],'where':{'id':_0x2a7f0a['params']['id']}},_0x5a8e3b={};_0x5a8e3b[_0x252a('0x37')]=_[_0x252a('0x33')](db[_0x252a('0x2f')][_0x252a('0x30')]);_0x5a8e3b[_0x252a('0x34')]=_['keys'](_0x2a7f0a[_0x252a('0x34')]);_0x5a8e3b[_0x252a('0x35')]=_[_0x252a('0x36')](_0x5a8e3b[_0x252a('0x37')],_0x5a8e3b[_0x252a('0x34')]);_0x402dc8[_0x252a('0x38')]=_['intersection'](_0x5a8e3b[_0x252a('0x37')],qs[_0x252a('0x39')](_0x2a7f0a[_0x252a('0x34')]['fields']));_0x402dc8[_0x252a('0x38')]=_0x402dc8[_0x252a('0x38')][_0x252a('0x43')]?_0x402dc8[_0x252a('0x38')]:_0x5a8e3b[_0x252a('0x37')];if(_0x2a7f0a[_0x252a('0x34')]['includeAll']){_0x402dc8['include']=[{'all':!![]}];}_0x402dc8=_['merge']({},_0x402dc8,_0x2a7f0a[_0x252a('0x42')]);return db['ZohoAccount'][_0x252a('0x44')](_0x402dc8)[_0x252a('0x26')](handleEntityNotFound(_0x7d929f,null))[_0x252a('0x26')](respondWithResult(_0x7d929f,null))['catch'](handleError(_0x7d929f,null));};exports[_0x252a('0x45')]=function(_0x23763e,_0x16deba){return db[_0x252a('0x2f')][_0x252a('0x45')](_0x23763e[_0x252a('0x46')],{})[_0x252a('0x26')](respondWithResult(_0x16deba,0xc9))[_0x252a('0x47')](handleError(_0x16deba,null));};exports[_0x252a('0x25')]=function(_0x3d8ed,_0x49aa44){if(_0x3d8ed['body']['id']){delete _0x3d8ed[_0x252a('0x46')]['id'];}return db[_0x252a('0x2f')]['find']({'where':{'id':_0x3d8ed[_0x252a('0x48')]['id']}})['then'](handleEntityNotFound(_0x49aa44,null))[_0x252a('0x26')](saveUpdates(_0x3d8ed['body'],null))[_0x252a('0x26')](respondWithResult(_0x49aa44,null))['catch'](handleError(_0x49aa44,null));};exports[_0x252a('0x27')]=function(_0x351b99,_0x3ece74){return db[_0x252a('0x2f')][_0x252a('0x44')]({'where':{'id':_0x351b99['params']['id']}})[_0x252a('0x26')](handleEntityNotFound(_0x3ece74,null))[_0x252a('0x26')](removeEntity(_0x3ece74,null))[_0x252a('0x47')](handleError(_0x3ece74,null));};exports[_0x252a('0x49')]=function(_0x525af5,_0x3a4e33,_0x4ef6d1){var _0x33ca99={};var _0xb98b6a={};var _0xf4c79a;var _0x356905;return db[_0x252a('0x2f')][_0x252a('0x4a')]({'where':{'id':_0x525af5[_0x252a('0x48')]['id']}})[_0x252a('0x26')](handleEntityNotFound(_0x3a4e33,null))[_0x252a('0x26')](function(_0x1188f2){if(_0x1188f2){_0xf4c79a=_0x1188f2;_0xb98b6a[_0x252a('0x37')]=_[_0x252a('0x33')](db[_0x252a('0x4b')][_0x252a('0x30')]);_0xb98b6a['query']=_[_0x252a('0x33')](_0x525af5[_0x252a('0x34')]);_0xb98b6a[_0x252a('0x35')]=_[_0x252a('0x36')](_0xb98b6a['model'],_0xb98b6a[_0x252a('0x34')]);_0x33ca99[_0x252a('0x38')]=_[_0x252a('0x36')](_0xb98b6a['model'],qs[_0x252a('0x39')](_0x525af5[_0x252a('0x34')][_0x252a('0x39')]));_0x33ca99[_0x252a('0x38')]=_0x33ca99[_0x252a('0x38')]['length']?_0x33ca99[_0x252a('0x38')]:_0xb98b6a[_0x252a('0x37')];_0x33ca99[_0x252a('0x3b')]=qs['sort'](_0x525af5[_0x252a('0x34')][_0x252a('0x3c')]);_0x33ca99[_0x252a('0x3f')]=qs['filters'](_['pick'](_0x525af5[_0x252a('0x34')],_0xb98b6a[_0x252a('0x35')]));if(_0x525af5[_0x252a('0x34')][_0x252a('0x3e')]){_0x33ca99[_0x252a('0x3f')]=_[_0x252a('0x40')](_0x33ca99['where'],{'$or':_[_0x252a('0x2e')](_0x33ca99['attributes'],function(_0xc8f969){var _0x399626={};_0x399626[_0xc8f969]={'$like':'%'+_0x525af5[_0x252a('0x34')]['filter']+'%'};return _0x399626;})});}_0x33ca99=_[_0x252a('0x40')]({},_0x33ca99,_0x525af5[_0x252a('0x42')]);return _0xf4c79a[_0x252a('0x49')](_0x33ca99);}})[_0x252a('0x26')](function(_0x5b92b3){if(_0x5b92b3){_0x356905=_0x5b92b3[_0x252a('0x43')];if(!_0x525af5[_0x252a('0x34')][_0x252a('0x3a')](_0x252a('0x4c'))){_0x33ca99['limit']=qs[_0x252a('0x1d')](_0x525af5['query'][_0x252a('0x1d')]);_0x33ca99[_0x252a('0x1f')]=qs[_0x252a('0x1f')](_0x525af5[_0x252a('0x34')][_0x252a('0x1f')]);}return _0xf4c79a[_0x252a('0x49')](_0x33ca99);}})['then'](function(_0x56c76f){if(_0x56c76f){return _0x56c76f?{'count':_0x356905,'rows':_0x56c76f}:null;}})[_0x252a('0x26')](respondWithResult(_0x3a4e33,null))['catch'](handleError(_0x3a4e33,null));};exports[_0x252a('0x4d')]=function(_0xfa3fb,_0xecc88,_0x3c2bca){if(_0xfa3fb['body']['id']){delete _0xfa3fb[_0x252a('0x46')]['id'];}return db[_0x252a('0x2f')][_0x252a('0x4a')]({'where':{'id':_0xfa3fb[_0x252a('0x48')]['id']}})[_0x252a('0x26')](handleEntityNotFound(_0xecc88,null))[_0x252a('0x26')](function(_0x44bc1c){if(_0x44bc1c){_0xfa3fb[_0x252a('0x46')][_0x252a('0x4e')]=_0x44bc1c['id'];_0xfa3fb[_0x252a('0x46')][_0x252a('0x4f')]=integrations['getSubjects'](_0xfa3fb['body'][_0x252a('0x50')],_0xfa3fb['body'][_0x252a('0x32')]);_0xfa3fb[_0x252a('0x46')][_0x252a('0x51')]=integrations['getDescriptions'](_0xfa3fb[_0x252a('0x46')][_0x252a('0x50')],_0xfa3fb['body']['type']);return db[_0x252a('0x4b')]['create'](_0xfa3fb[_0x252a('0x46')],{'include':[{'model':db['ZohoField'],'as':_0x252a('0x4f')},{'model':db['ZohoField'],'as':_0x252a('0x51')}]});}return null;})['then'](respondWithResult(_0xecc88,null))[_0x252a('0x47')](handleError(_0xecc88,null));};function getAccessToken(_0x171026){return new Promise(function(_0x46d09b,_0x33cff8){var _0x5b8e70;switch(_0x171026[_0x252a('0x52')]){case'US':_0x5b8e70=_0x252a('0x53');break;case'AU':_0x5b8e70=_0x252a('0x54');break;case'EU':_0x5b8e70=_0x252a('0x55');break;case'IN':_0x5b8e70=_0x252a('0x56');break;case'CN':_0x5b8e70=_0x252a('0x57');break;default:_0x5b8e70=_0x252a('0x55');break;}var _0x231033={'method':_0x252a('0x58'),'uri':_0x5b8e70+_0x252a('0x59'),'qs':{'refresh_token':_0x171026['refreshToken'],'client_id':_0x171026[_0x252a('0x5a')],'client_secret':_0x171026[_0x252a('0x5b')],'grant_type':_0x252a('0x5c')},'json':!![]};return rp(_0x231033)[_0x252a('0x26')](function(_0x7b0328){if(_0x7b0328[_0x252a('0x5d')]){_0x46d09b(_0x7b0328[_0x252a('0x5d')]);}else{_0x33cff8(_0x252a('0x5e'));}})[_0x252a('0x47')](function(_0x794eff){_0x33cff8(_0x794eff);});});}exports['getFields']=function(_0x21c0d1,_0x2663dc,_0x21fc66){var _0x131e74,_0x53fe6c,_0x2696c9,_0x3401ef,_0x4d8be6;return db[_0x252a('0x2f')][_0x252a('0x4a')]({'where':{'id':_0x21c0d1[_0x252a('0x48')]['id']},'attributes':['id',_0x252a('0x5f'),'zone','clientId',_0x252a('0x5b'),_0x252a('0x60'),_0x252a('0x61'),'refreshToken']})[_0x252a('0x26')](handleEntityNotFound(_0x2663dc,null))[_0x252a('0x26')](function(_0x340937){_0x4d8be6=_0x340937;_0x131e74=_0x4d8be6[_0x252a('0x5f')];_0x53fe6c=_0x131e74==='zoho.eu'?'eu':_0x252a('0x62');_0x2696c9=_0x4d8be6['serverUrl'];var _0x41b69d=_0x2696c9[_0x252a('0x63')](-0x1);if(_0x41b69d==='/'||_0x41b69d==='\x5c'||_0x41b69d===':'){_0x2696c9=_0x2696c9[_0x252a('0x64')](0x0,_0x2696c9['lastIndexOf'](_0x41b69d));}if(!_0x4d8be6[_0x252a('0x65')]){throw new Error(_0x252a('0x66'));}return getAccessToken(_0x4d8be6);})[_0x252a('0x26')](function(_0x30ee56){if(_0x30ee56){return rp({'method':_0x252a('0x67'),'uri':util['format'](_0x252a('0x68'),_0x53fe6c),'qs':{'module':_0x252a('0x69')},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x30ee56},'json':!![]});}})['then'](function(_0x270fcb){if(_0x270fcb){if(_0x270fcb[_0x252a('0x6a')]&&_0x270fcb[_0x252a('0x6a')][_0x252a('0x29')]){throw new Error(_0x270fcb[_0x252a('0x6a')][_0x252a('0x29')][_0x252a('0x6b')]);}var _0x481747=[];var _0xde676c=[];var _0x8237fd=[_0x252a('0x6c'),_0x252a('0x6d'),_0x252a('0x6e'),_0x252a('0x6f'),_0x252a('0x70'),_0x252a('0x71'),_0x252a('0x72'),_0x252a('0x73')];_0xde676c=_[_0x252a('0x74')](_0x270fcb[_0x252a('0x39')],function(_0x3d8748){return _0x8237fd[_0x252a('0x75')](_0x3d8748[_0x252a('0x76')]);});for(var _0x1bd257=0x0;_0x1bd257<_0xde676c[_0x252a('0x43')];_0x1bd257++){if(_0xde676c[_0x1bd257]['system_mandatory']===![]){_0x481747[_0x252a('0x77')]({'id':_0xde676c[_0x1bd257]['id'],'name':_0xde676c[_0x1bd257][_0x252a('0x78')],'custom':_0xde676c[_0x1bd257][_0x252a('0x79')],'options':_0xde676c[_0x1bd257][_0x252a('0x7a')]===_0x252a('0x7b')&&_0xde676c[_0x1bd257]['pick_list_values'][_0x252a('0x43')]>-0x1?_[_0x252a('0x2e')](_0xde676c[_0x1bd257][_0x252a('0x7c')],function(_0x5831d8){return{'name':_0x5831d8,'value':_0x5831d8};}):[]});}}return{'count':_0x481747[_0x252a('0x43')],'rows':_0x481747};}else{return{'count':0x0,'rows':[]};}})[_0x252a('0x26')](respondWithResult(_0x2663dc,null))[_0x252a('0x47')](function(_0xf6b2d4){var _0x31df93=_0x21c0d1[_0x252a('0x34')][_0x252a('0x7d')]?0x1f4:_0xf6b2d4[_0x252a('0x7e')]||0x1f4;logger[_0x252a('0x29')](_0x252a('0x7f'),_0x252a('0x80'),_0x31df93,JSON[_0x252a('0x81')](_0xf6b2d4));delete _0xf6b2d4[_0x252a('0x2b')];if(_0x31df93===0x191){_0x31df93=0x190;}_0x2663dc['status'](_0x31df93)[_0x252a('0x2c')](_0x21c0d1[_0x252a('0x34')][_0x252a('0x7d')]?{'message':_0x252a('0x82'),'statusCode':_0xf6b2d4[_0x252a('0x7e')]}:_0xf6b2d4);});};