Built motion from commit e02f907f.|2.6.14
[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 _0x5767=['desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','index','map','ZohoAccount','rawAttributes','fieldName','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','pick','filter','where','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','find','create','body','getConfigurations','findOne','ZohoConfiguration','order','addConfiguration','AccountId','channel','Descriptions','getDescriptions','ZohoField','Subjects','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','clientId','clientSecret','refresh_token','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','host','code','refreshToken','zoho.eu','com','serverUrl','substring','lastIndexOf','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','GET','https://www.zohoapis.%s/crm/v2/settings/fields','Calls','Zoho-oauthtoken\x20','response','Owner','Subject','Description','WhoId','Call_Duration','Call_Result','Call_Start_Time','Call_Type','includes','system_mandatory','display_label','custom_field','picklist','pick_list_values','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','ejs','fs-extra','lodash','jsforce'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x5767,0x77));var _0x7576=function(_0x168c4f,_0x32c2d4){_0x168c4f=_0x168c4f-0x0;var _0x3f7006=_0x5767[_0x168c4f];return _0x3f7006;};'use strict';var emlformat=require(_0x7576('0x0'));var rimraf=require(_0x7576('0x1'));var zipdir=require(_0x7576('0x2'));var jsonpatch=require(_0x7576('0x3'));var rp=require('request-promise');var moment=require(_0x7576('0x4'));var BPromise=require(_0x7576('0x5'));var Mustache=require(_0x7576('0x6'));var util=require('util');var path=require(_0x7576('0x7'));var sox=require(_0x7576('0x8'));var csv=require('to-csv');var ejs=require(_0x7576('0x9'));var fs=require('fs');var fs_extra=require(_0x7576('0xa'));var _=require(_0x7576('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7576('0xc'));var deskjs=require(_0x7576('0xd'));var toCsv=require('to-csv');var querystring=require(_0x7576('0xe'));var Papa=require(_0x7576('0xf'));var Redis=require(_0x7576('0x10'));var authService=require(_0x7576('0x11'));var qs=require(_0x7576('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7576('0x13'));var logger=require(_0x7576('0x14'))(_0x7576('0x15'));var utils=require(_0x7576('0x16'));var config=require(_0x7576('0x17'));var licenseUtil=require(_0x7576('0x18'));var db=require(_0x7576('0x19'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x538962,_0x5d48eb){_0x5d48eb=_0x5d48eb||0xcc;return function(_0x14364b){if(_0x14364b){return _0x538962[_0x7576('0x1a')](_0x5d48eb);}return _0x538962[_0x7576('0x1b')](_0x5d48eb)[_0x7576('0x1c')]();};}function respondWithResult(_0x2e7a57,_0x1ecf69){_0x1ecf69=_0x1ecf69||0xc8;return function(_0x55c097){if(_0x55c097){return _0x2e7a57[_0x7576('0x1b')](_0x1ecf69)[_0x7576('0x1d')](_0x55c097);}};}function respondWithFilteredResult(_0x3cf0a0,_0x3ff41c){return function(_0x377d5e){if(_0x377d5e){var _0x31fdfd=typeof _0x3ff41c['offset']==='undefined'&&typeof _0x3ff41c[_0x7576('0x1e')]===_0x7576('0x1f');var _0x2c1862=_0x377d5e[_0x7576('0x20')];var _0x176efd=_0x31fdfd?0x0:_0x3ff41c[_0x7576('0x21')];var _0x4bf939=_0x31fdfd?_0x377d5e[_0x7576('0x20')]:_0x3ff41c[_0x7576('0x21')]+_0x3ff41c['limit'];var _0x3a7bb5;if(_0x4bf939>=_0x2c1862){_0x4bf939=_0x2c1862;_0x3a7bb5=0xc8;}else{_0x3a7bb5=0xce;}_0x3cf0a0[_0x7576('0x1b')](_0x3a7bb5);return _0x3cf0a0[_0x7576('0x22')](_0x7576('0x23'),_0x176efd+'-'+_0x4bf939+'/'+_0x2c1862)[_0x7576('0x1d')](_0x377d5e);}return null;};}function patchUpdates(_0x48ac95){return function(_0xdc9224){try{jsonpatch[_0x7576('0x24')](_0xdc9224,_0x48ac95,!![]);}catch(_0xb20d02){return BPromise['reject'](_0xb20d02);}return _0xdc9224[_0x7576('0x25')]();};}function saveUpdates(_0x30b335,_0x376c81){return function(_0x284d2b){if(_0x284d2b){return _0x284d2b[_0x7576('0x26')](_0x30b335)[_0x7576('0x27')](function(_0xe70425){return _0xe70425;});}return null;};}function removeEntity(_0x8ef470,_0x58e811){return function(_0x33288c){if(_0x33288c){return _0x33288c[_0x7576('0x28')]()[_0x7576('0x27')](function(){_0x8ef470[_0x7576('0x1b')](0xcc)[_0x7576('0x1c')]();});}};}function handleEntityNotFound(_0x47f4db,_0x12e89b){return function(_0x1f9e2a){if(!_0x1f9e2a){_0x47f4db[_0x7576('0x1a')](0x194);}return _0x1f9e2a;};}function handleError(_0x288984,_0x17c3fe){_0x17c3fe=_0x17c3fe||0x1f4;return function(_0x22092f){logger[_0x7576('0x29')](_0x22092f[_0x7576('0x2a')]);if(_0x22092f['name']){delete _0x22092f[_0x7576('0x2b')];}_0x288984[_0x7576('0x1b')](_0x17c3fe)[_0x7576('0x2c')](_0x22092f);};}exports[_0x7576('0x2d')]=function(_0x3d54a8,_0x17406a){var _0x108e4a={},_0x5751c1={},_0x31f944={'count':0x0,'rows':[]};var _0x5c3dea=_[_0x7576('0x2e')](db[_0x7576('0x2f')][_0x7576('0x30')],function(_0x31ea31){return{'name':_0x31ea31[_0x7576('0x31')],'type':_0x31ea31['type']['key']};});_0x5751c1[_0x7576('0x32')]=_[_0x7576('0x2e')](_0x5c3dea,_0x7576('0x2b'));_0x5751c1[_0x7576('0x33')]=_[_0x7576('0x34')](_0x3d54a8[_0x7576('0x33')]);_0x5751c1[_0x7576('0x35')]=_[_0x7576('0x36')](_0x5751c1[_0x7576('0x32')],_0x5751c1[_0x7576('0x33')]);_0x108e4a['attributes']=_[_0x7576('0x36')](_0x5751c1[_0x7576('0x32')],qs[_0x7576('0x37')](_0x3d54a8['query'][_0x7576('0x37')]));_0x108e4a[_0x7576('0x38')]=_0x108e4a[_0x7576('0x38')][_0x7576('0x39')]?_0x108e4a[_0x7576('0x38')]:_0x5751c1['model'];if(!_0x3d54a8[_0x7576('0x33')][_0x7576('0x3a')](_0x7576('0x3b'))){_0x108e4a[_0x7576('0x1e')]=qs[_0x7576('0x1e')](_0x3d54a8[_0x7576('0x33')][_0x7576('0x1e')]);_0x108e4a['offset']=qs[_0x7576('0x21')](_0x3d54a8['query'][_0x7576('0x21')]);}_0x108e4a['order']=qs['sort'](_0x3d54a8[_0x7576('0x33')][_0x7576('0x3c')]);_0x108e4a['where']=qs[_0x7576('0x35')](_[_0x7576('0x3d')](_0x3d54a8[_0x7576('0x33')],_0x5751c1[_0x7576('0x35')]),_0x5c3dea);if(_0x3d54a8[_0x7576('0x33')][_0x7576('0x3e')]){_0x108e4a[_0x7576('0x3f')]=_[_0x7576('0x40')](_0x108e4a[_0x7576('0x3f')],{'$or':_['map'](_0x5c3dea,function(_0x5b9313){if(_0x5b9313[_0x7576('0x41')]!==_0x7576('0x42')){var _0x8a6291={};_0x8a6291[_0x5b9313[_0x7576('0x2b')]]={'$like':'%'+_0x3d54a8[_0x7576('0x33')][_0x7576('0x3e')]+'%'};return _0x8a6291;}})});}_0x108e4a=_[_0x7576('0x40')]({},_0x108e4a,_0x3d54a8[_0x7576('0x43')]);var _0x4e0e30={'where':_0x108e4a[_0x7576('0x3f')]};return db[_0x7576('0x2f')][_0x7576('0x20')](_0x4e0e30)[_0x7576('0x27')](function(_0x1bbd75){_0x31f944[_0x7576('0x20')]=_0x1bbd75;if(_0x3d54a8[_0x7576('0x33')][_0x7576('0x44')]){_0x108e4a[_0x7576('0x45')]=[{'all':!![]}];}return db[_0x7576('0x2f')][_0x7576('0x46')](_0x108e4a);})[_0x7576('0x27')](function(_0x326d01){_0x31f944[_0x7576('0x47')]=_0x326d01;return _0x31f944;})['then'](respondWithFilteredResult(_0x17406a,_0x108e4a))[_0x7576('0x48')](handleError(_0x17406a,null));};exports['show']=function(_0x32a2bd,_0x4a87f5){var _0x3cebdc={'raw':![],'where':{'id':_0x32a2bd[_0x7576('0x49')]['id']}},_0xeebb93={};_0xeebb93[_0x7576('0x32')]=_['keys'](db[_0x7576('0x2f')]['rawAttributes']);_0xeebb93[_0x7576('0x33')]=_['keys'](_0x32a2bd[_0x7576('0x33')]);_0xeebb93['filters']=_[_0x7576('0x36')](_0xeebb93[_0x7576('0x32')],_0xeebb93[_0x7576('0x33')]);_0x3cebdc[_0x7576('0x38')]=_['intersection'](_0xeebb93['model'],qs[_0x7576('0x37')](_0x32a2bd['query'][_0x7576('0x37')]));_0x3cebdc[_0x7576('0x38')]=_0x3cebdc['attributes'][_0x7576('0x39')]?_0x3cebdc[_0x7576('0x38')]:_0xeebb93['model'];if(_0x32a2bd['query']['includeAll']){_0x3cebdc[_0x7576('0x45')]=[{'all':!![]}];}_0x3cebdc=_['merge']({},_0x3cebdc,_0x32a2bd[_0x7576('0x43')]);return db[_0x7576('0x2f')][_0x7576('0x4a')](_0x3cebdc)[_0x7576('0x27')](handleEntityNotFound(_0x4a87f5,null))[_0x7576('0x27')](respondWithResult(_0x4a87f5,null))[_0x7576('0x48')](handleError(_0x4a87f5,null));};exports[_0x7576('0x4b')]=function(_0x836a91,_0x3f5b79){return db[_0x7576('0x2f')]['create'](_0x836a91[_0x7576('0x4c')],{})[_0x7576('0x27')](respondWithResult(_0x3f5b79,0xc9))['catch'](handleError(_0x3f5b79,null));};exports[_0x7576('0x26')]=function(_0x57863b,_0x36cdab){if(_0x57863b[_0x7576('0x4c')]['id']){delete _0x57863b[_0x7576('0x4c')]['id'];}return db['ZohoAccount'][_0x7576('0x4a')]({'where':{'id':_0x57863b['params']['id']}})[_0x7576('0x27')](handleEntityNotFound(_0x36cdab,null))['then'](saveUpdates(_0x57863b[_0x7576('0x4c')],null))[_0x7576('0x27')](respondWithResult(_0x36cdab,null))[_0x7576('0x48')](handleError(_0x36cdab,null));};exports['destroy']=function(_0x4f71f0,_0x41f680){return db[_0x7576('0x2f')][_0x7576('0x4a')]({'where':{'id':_0x4f71f0[_0x7576('0x49')]['id']}})[_0x7576('0x27')](handleEntityNotFound(_0x41f680,null))[_0x7576('0x27')](removeEntity(_0x41f680,null))['catch'](handleError(_0x41f680,null));};exports[_0x7576('0x4d')]=function(_0x35dd16,_0x3f7a00,_0x185cfc){var _0x5b3891={};var _0x232a7c={};var _0x4e2132;var _0x2e9ada;return db['ZohoAccount'][_0x7576('0x4e')]({'where':{'id':_0x35dd16['params']['id']}})[_0x7576('0x27')](handleEntityNotFound(_0x3f7a00,null))[_0x7576('0x27')](function(_0x4fd325){if(_0x4fd325){_0x4e2132=_0x4fd325;_0x232a7c[_0x7576('0x32')]=_[_0x7576('0x34')](db[_0x7576('0x4f')][_0x7576('0x30')]);_0x232a7c[_0x7576('0x33')]=_[_0x7576('0x34')](_0x35dd16[_0x7576('0x33')]);_0x232a7c[_0x7576('0x35')]=_[_0x7576('0x36')](_0x232a7c[_0x7576('0x32')],_0x232a7c[_0x7576('0x33')]);_0x5b3891[_0x7576('0x38')]=_[_0x7576('0x36')](_0x232a7c[_0x7576('0x32')],qs[_0x7576('0x37')](_0x35dd16[_0x7576('0x33')][_0x7576('0x37')]));_0x5b3891['attributes']=_0x5b3891['attributes']['length']?_0x5b3891['attributes']:_0x232a7c[_0x7576('0x32')];_0x5b3891[_0x7576('0x50')]=qs['sort'](_0x35dd16[_0x7576('0x33')][_0x7576('0x3c')]);_0x5b3891['where']=qs[_0x7576('0x35')](_['pick'](_0x35dd16[_0x7576('0x33')],_0x232a7c['filters']));if(_0x35dd16[_0x7576('0x33')][_0x7576('0x3e')]){_0x5b3891['where']=_[_0x7576('0x40')](_0x5b3891[_0x7576('0x3f')],{'$or':_['map'](_0x5b3891[_0x7576('0x38')],function(_0x18cb77){var _0x3e1f4d={};_0x3e1f4d[_0x18cb77]={'$like':'%'+_0x35dd16[_0x7576('0x33')][_0x7576('0x3e')]+'%'};return _0x3e1f4d;})});}_0x5b3891=_[_0x7576('0x40')]({},_0x5b3891,_0x35dd16['options']);return _0x4e2132[_0x7576('0x4d')](_0x5b3891);}})[_0x7576('0x27')](function(_0x2fa706){if(_0x2fa706){_0x2e9ada=_0x2fa706[_0x7576('0x39')];if(!_0x35dd16[_0x7576('0x33')][_0x7576('0x3a')](_0x7576('0x3b'))){_0x5b3891[_0x7576('0x1e')]=qs[_0x7576('0x1e')](_0x35dd16[_0x7576('0x33')][_0x7576('0x1e')]);_0x5b3891['offset']=qs[_0x7576('0x21')](_0x35dd16[_0x7576('0x33')][_0x7576('0x21')]);}return _0x4e2132[_0x7576('0x4d')](_0x5b3891);}})[_0x7576('0x27')](function(_0x3a61aa){if(_0x3a61aa){return _0x3a61aa?{'count':_0x2e9ada,'rows':_0x3a61aa}:null;}})[_0x7576('0x27')](respondWithResult(_0x3f7a00,null))[_0x7576('0x48')](handleError(_0x3f7a00,null));};exports[_0x7576('0x51')]=function(_0xb4a1e7,_0x2304aa,_0x2af644){if(_0xb4a1e7[_0x7576('0x4c')]['id']){delete _0xb4a1e7['body']['id'];}return db[_0x7576('0x2f')][_0x7576('0x4e')]({'where':{'id':_0xb4a1e7[_0x7576('0x49')]['id']}})['then'](handleEntityNotFound(_0x2304aa,null))[_0x7576('0x27')](function(_0x1f78a4){if(_0x1f78a4){_0xb4a1e7['body'][_0x7576('0x52')]=_0x1f78a4['id'];_0xb4a1e7[_0x7576('0x4c')]['Subjects']=integrations['getSubjects'](_0xb4a1e7['body'][_0x7576('0x53')],_0xb4a1e7[_0x7576('0x4c')][_0x7576('0x41')]);_0xb4a1e7[_0x7576('0x4c')][_0x7576('0x54')]=integrations[_0x7576('0x55')](_0xb4a1e7[_0x7576('0x4c')][_0x7576('0x53')],_0xb4a1e7[_0x7576('0x4c')]['type']);return db[_0x7576('0x4f')]['create'](_0xb4a1e7['body'],{'include':[{'model':db[_0x7576('0x56')],'as':_0x7576('0x57')},{'model':db[_0x7576('0x56')],'as':_0x7576('0x54')}]});}return null;})['then'](respondWithResult(_0x2304aa,null))[_0x7576('0x48')](handleError(_0x2304aa,null));};function getAccessToken(_0x15aa9f){return new Promise(function(_0x273299,_0x4fc85f){var _0x22e952;switch(_0x15aa9f['zone']){case'US':_0x22e952=_0x7576('0x58');break;case'AU':_0x22e952=_0x7576('0x59');break;case'EU':_0x22e952=_0x7576('0x5a');break;case'IN':_0x22e952=_0x7576('0x5b');break;case'CN':_0x22e952=_0x7576('0x5c');break;default:_0x22e952=_0x7576('0x5a');break;}var _0x10ea76={'method':_0x7576('0x5d'),'uri':_0x22e952+'/oauth/v2/token','qs':{'refresh_token':_0x15aa9f['refreshToken'],'client_id':_0x15aa9f[_0x7576('0x5e')],'client_secret':_0x15aa9f[_0x7576('0x5f')],'grant_type':_0x7576('0x60')},'json':!![]};return rp(_0x10ea76)[_0x7576('0x27')](function(_0x4e14a3){if(_0x4e14a3[_0x7576('0x61')]){_0x273299(_0x4e14a3[_0x7576('0x61')]);}else{_0x4fc85f(_0x7576('0x62'));}})[_0x7576('0x48')](function(_0x2a0ec8){_0x4fc85f(_0x2a0ec8);});});}exports['getFields']=function(_0x347284,_0x4d06fa,_0x39ec37){var _0x430693,_0x27e12c,_0x5077ea,_0x3b49d3,_0x375466;return db[_0x7576('0x2f')][_0x7576('0x4e')]({'where':{'id':_0x347284['params']['id']},'attributes':['id',_0x7576('0x63'),'zone','clientId',_0x7576('0x5f'),'serverUrl',_0x7576('0x64'),_0x7576('0x65')]})['then'](handleEntityNotFound(_0x4d06fa,null))[_0x7576('0x27')](function(_0x3c7eb5){_0x375466=_0x3c7eb5;_0x430693=_0x375466[_0x7576('0x63')];_0x27e12c=_0x430693===_0x7576('0x66')?'eu':_0x7576('0x67');_0x5077ea=_0x375466[_0x7576('0x68')];var _0x54d6f0=_0x5077ea['slice'](-0x1);if(_0x54d6f0==='/'||_0x54d6f0==='\x5c'||_0x54d6f0===':'){_0x5077ea=_0x5077ea[_0x7576('0x69')](0x0,_0x5077ea[_0x7576('0x6a')](_0x54d6f0));}if(!_0x375466[_0x7576('0x65')]){throw new Error(_0x7576('0x6b'));}return getAccessToken(_0x375466);})['then'](function(_0x5d776f){if(_0x5d776f){return rp({'method':_0x7576('0x6c'),'uri':util['format'](_0x7576('0x6d'),_0x27e12c),'qs':{'module':_0x7576('0x6e')},'headers':{'Authorization':_0x7576('0x6f')+_0x5d776f},'json':!![]});}})[_0x7576('0x27')](function(_0x1d0a21){if(_0x1d0a21){if(_0x1d0a21['response']&&_0x1d0a21[_0x7576('0x70')][_0x7576('0x29')]){throw new Error(_0x1d0a21[_0x7576('0x70')][_0x7576('0x29')]['message']);}var _0x1d116e=[];var _0x165640=[];var _0x39dac9=[_0x7576('0x71'),_0x7576('0x72'),_0x7576('0x73'),_0x7576('0x74'),_0x7576('0x75'),_0x7576('0x76'),_0x7576('0x77'),_0x7576('0x78')];_0x165640=_['remove'](_0x1d0a21[_0x7576('0x37')],function(_0x44df6d){return _0x39dac9[_0x7576('0x79')](_0x44df6d['api_name']);});for(var _0x339cbe=0x0;_0x339cbe<_0x165640[_0x7576('0x39')];_0x339cbe++){if(_0x165640[_0x339cbe][_0x7576('0x7a')]===![]){_0x1d116e['push']({'id':_0x165640[_0x339cbe]['id'],'name':_0x165640[_0x339cbe][_0x7576('0x7b')],'custom':_0x165640[_0x339cbe][_0x7576('0x7c')],'options':_0x165640[_0x339cbe]['data_type']===_0x7576('0x7d')&&_0x165640[_0x339cbe][_0x7576('0x7e')]['length']>-0x1?_[_0x7576('0x2e')](_0x165640[_0x339cbe]['pick_list_values'],function(_0x387ecb){return{'name':_0x387ecb,'value':_0x387ecb};}):[]});}}return{'count':_0x1d116e['length'],'rows':_0x1d116e};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithResult(_0x4d06fa,null))['catch'](function(_0x1d87d5){var _0x5bc6a2=_0x347284['query'][_0x7576('0x7f')]?0x1f4:_0x1d87d5[_0x7576('0x80')]||0x1f4;logger[_0x7576('0x29')](_0x7576('0x81'),_0x7576('0x82'),_0x5bc6a2,JSON['stringify'](_0x1d87d5));delete _0x1d87d5['name'];if(_0x5bc6a2===0x191){_0x5bc6a2=0x190;}_0x4d06fa[_0x7576('0x1b')](_0x5bc6a2)['send'](_0x347284['query']['test']?{'message':_0x7576('0x83'),'statusCode':_0x1d87d5[_0x7576('0x80')]}:_0x1d87d5);});};