Built motion from commit 19a84241.|2.5.34
[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 _0x4938=['clientId','clientSecret','refresh_token','access_token','getFields','host','code','zoho.eu','com','serverUrl','slice','substring','lastIndexOf','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','GET','format','https://www.zohoapis.%s/crm/v2/settings/fields','Calls','Zoho-oauthtoken\x20','response','error','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','stringify','send','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','json','offset','undefined','count','limit','status','Content-Range','save','update','then','destroy','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','options','ZohoAccount','includeAll','include','findAll','rows','catch','show','params','find','create','body','getConfigurations','findOne','ZohoConfiguration','length','pick','addConfiguration','getSubjects','channel','Descriptions','getDescriptions','Subjects','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','refreshToken'];(function(_0xee7577,_0x23b02a){var _0x2b7f07=function(_0x30e33c){while(--_0x30e33c){_0xee7577['push'](_0xee7577['shift']());}};_0x2b7f07(++_0x23b02a);}(_0x4938,0xb1));var _0x8493=function(_0x3c7d53,_0x2826d0){_0x3c7d53=_0x3c7d53-0x0;var _0x2c8387=_0x4938[_0x3c7d53];return _0x2c8387;};'use strict';var emlformat=require(_0x8493('0x0'));var rimraf=require(_0x8493('0x1'));var zipdir=require(_0x8493('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8493('0x3'));var moment=require(_0x8493('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x8493('0x5'));var util=require(_0x8493('0x6'));var path=require(_0x8493('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8493('0x8'));var _=require(_0x8493('0x9'));var squel=require(_0x8493('0xa'));var crypto=require('crypto');var jsforce=require(_0x8493('0xb'));var deskjs=require(_0x8493('0xc'));var toCsv=require('to-csv');var querystring=require(_0x8493('0xd'));var Papa=require(_0x8493('0xe'));var Redis=require(_0x8493('0xf'));var authService=require(_0x8493('0x10'));var qs=require(_0x8493('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8493('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0x8493('0x13'));var config=require(_0x8493('0x14'));var licenseUtil=require(_0x8493('0x15'));var db=require(_0x8493('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3e591c,_0x428ad4){_0x428ad4=_0x428ad4||0xcc;return function(_0x3db869){if(_0x3db869){return _0x3e591c['sendStatus'](_0x428ad4);}return _0x3e591c['status'](_0x428ad4)[_0x8493('0x17')]();};}function respondWithResult(_0x1c0aac,_0x317832){_0x317832=_0x317832||0xc8;return function(_0x2c39e1){if(_0x2c39e1){return _0x1c0aac['status'](_0x317832)[_0x8493('0x18')](_0x2c39e1);}};}function respondWithFilteredResult(_0x43b243,_0x3436db){return function(_0x4ee6a8){if(_0x4ee6a8){var _0x134c1a=typeof _0x3436db[_0x8493('0x19')]==='undefined'&&typeof _0x3436db['limit']===_0x8493('0x1a');var _0x24447f=_0x4ee6a8[_0x8493('0x1b')];var _0x525c61=_0x134c1a?0x0:_0x3436db[_0x8493('0x19')];var _0x54e1f9=_0x134c1a?_0x4ee6a8[_0x8493('0x1b')]:_0x3436db[_0x8493('0x19')]+_0x3436db[_0x8493('0x1c')];var _0x3e458d;if(_0x54e1f9>=_0x24447f){_0x54e1f9=_0x24447f;_0x3e458d=0xc8;}else{_0x3e458d=0xce;}_0x43b243[_0x8493('0x1d')](_0x3e458d);return _0x43b243['set'](_0x8493('0x1e'),_0x525c61+'-'+_0x54e1f9+'/'+_0x24447f)[_0x8493('0x18')](_0x4ee6a8);}return null;};}function patchUpdates(_0x46922c){return function(_0x247cbb){try{jsonpatch['apply'](_0x247cbb,_0x46922c,!![]);}catch(_0x33e2bc){return BPromise['reject'](_0x33e2bc);}return _0x247cbb[_0x8493('0x1f')]();};}function saveUpdates(_0x21b0f0,_0x3948a1){return function(_0x3bea8d){if(_0x3bea8d){return _0x3bea8d[_0x8493('0x20')](_0x21b0f0)[_0x8493('0x21')](function(_0x4ef115){return _0x4ef115;});}return null;};}function removeEntity(_0xb510ca,_0x131792){return function(_0x58a0ab){if(_0x58a0ab){return _0x58a0ab[_0x8493('0x22')]()[_0x8493('0x21')](function(){_0xb510ca[_0x8493('0x1d')](0xcc)[_0x8493('0x17')]();});}};}function handleEntityNotFound(_0x1b3e25,_0x1c98cc){return function(_0x4cb1c3){if(!_0x4cb1c3){_0x1b3e25['sendStatus'](0x194);}return _0x4cb1c3;};}function handleError(_0x330ddf,_0x5efc87){_0x5efc87=_0x5efc87||0x1f4;return function(_0xa6cb3f){logger['error'](_0xa6cb3f['stack']);if(_0xa6cb3f[_0x8493('0x23')]){delete _0xa6cb3f[_0x8493('0x23')];}_0x330ddf[_0x8493('0x1d')](_0x5efc87)['send'](_0xa6cb3f);};}exports[_0x8493('0x24')]=function(_0x176b13,_0x2e4c13){var _0x109985={},_0x3748a2={},_0xb1ae58={'count':0x0,'rows':[]};var _0xf7b9f4=_[_0x8493('0x25')](db['ZohoAccount'][_0x8493('0x26')],function(_0x1a7e9a){return{'name':_0x1a7e9a[_0x8493('0x27')],'type':_0x1a7e9a[_0x8493('0x28')][_0x8493('0x29')]};});_0x3748a2[_0x8493('0x2a')]=_[_0x8493('0x25')](_0xf7b9f4,_0x8493('0x23'));_0x3748a2[_0x8493('0x2b')]=_[_0x8493('0x2c')](_0x176b13[_0x8493('0x2b')]);_0x3748a2['filters']=_['intersection'](_0x3748a2[_0x8493('0x2a')],_0x3748a2[_0x8493('0x2b')]);_0x109985[_0x8493('0x2d')]=_[_0x8493('0x2e')](_0x3748a2[_0x8493('0x2a')],qs['fields'](_0x176b13[_0x8493('0x2b')][_0x8493('0x2f')]));_0x109985[_0x8493('0x2d')]=_0x109985[_0x8493('0x2d')]['length']?_0x109985[_0x8493('0x2d')]:_0x3748a2[_0x8493('0x2a')];if(!_0x176b13[_0x8493('0x2b')][_0x8493('0x30')](_0x8493('0x31'))){_0x109985[_0x8493('0x1c')]=qs[_0x8493('0x1c')](_0x176b13[_0x8493('0x2b')][_0x8493('0x1c')]);_0x109985[_0x8493('0x19')]=qs[_0x8493('0x19')](_0x176b13[_0x8493('0x2b')][_0x8493('0x19')]);}_0x109985[_0x8493('0x32')]=qs[_0x8493('0x33')](_0x176b13[_0x8493('0x2b')][_0x8493('0x33')]);_0x109985[_0x8493('0x34')]=qs[_0x8493('0x35')](_['pick'](_0x176b13[_0x8493('0x2b')],_0x3748a2[_0x8493('0x35')]),_0xf7b9f4);if(_0x176b13[_0x8493('0x2b')][_0x8493('0x36')]){_0x109985[_0x8493('0x34')]=_[_0x8493('0x37')](_0x109985[_0x8493('0x34')],{'$or':_[_0x8493('0x25')](_0xf7b9f4,function(_0x5db671){if(_0x5db671[_0x8493('0x28')]!==_0x8493('0x38')){var _0xdba826={};_0xdba826[_0x5db671[_0x8493('0x23')]]={'$like':'%'+_0x176b13['query'][_0x8493('0x36')]+'%'};return _0xdba826;}})});}_0x109985=_[_0x8493('0x37')]({},_0x109985,_0x176b13[_0x8493('0x39')]);var _0x19762b={'where':_0x109985[_0x8493('0x34')]};return db[_0x8493('0x3a')]['count'](_0x19762b)[_0x8493('0x21')](function(_0x157107){_0xb1ae58[_0x8493('0x1b')]=_0x157107;if(_0x176b13[_0x8493('0x2b')][_0x8493('0x3b')]){_0x109985[_0x8493('0x3c')]=[{'all':!![]}];}return db[_0x8493('0x3a')][_0x8493('0x3d')](_0x109985);})[_0x8493('0x21')](function(_0x4ae33f){_0xb1ae58[_0x8493('0x3e')]=_0x4ae33f;return _0xb1ae58;})[_0x8493('0x21')](respondWithFilteredResult(_0x2e4c13,_0x109985))[_0x8493('0x3f')](handleError(_0x2e4c13,null));};exports[_0x8493('0x40')]=function(_0x5e43b4,_0x349cfa){var _0x1781dd={'raw':![],'where':{'id':_0x5e43b4[_0x8493('0x41')]['id']}},_0x1aca15={};_0x1aca15[_0x8493('0x2a')]=_['keys'](db['ZohoAccount'][_0x8493('0x26')]);_0x1aca15[_0x8493('0x2b')]=_['keys'](_0x5e43b4[_0x8493('0x2b')]);_0x1aca15[_0x8493('0x35')]=_[_0x8493('0x2e')](_0x1aca15[_0x8493('0x2a')],_0x1aca15[_0x8493('0x2b')]);_0x1781dd[_0x8493('0x2d')]=_['intersection'](_0x1aca15[_0x8493('0x2a')],qs[_0x8493('0x2f')](_0x5e43b4['query'][_0x8493('0x2f')]));_0x1781dd[_0x8493('0x2d')]=_0x1781dd[_0x8493('0x2d')]['length']?_0x1781dd[_0x8493('0x2d')]:_0x1aca15[_0x8493('0x2a')];if(_0x5e43b4['query']['includeAll']){_0x1781dd[_0x8493('0x3c')]=[{'all':!![]}];}_0x1781dd=_[_0x8493('0x37')]({},_0x1781dd,_0x5e43b4[_0x8493('0x39')]);return db['ZohoAccount'][_0x8493('0x42')](_0x1781dd)[_0x8493('0x21')](handleEntityNotFound(_0x349cfa,null))['then'](respondWithResult(_0x349cfa,null))[_0x8493('0x3f')](handleError(_0x349cfa,null));};exports[_0x8493('0x43')]=function(_0x97ad1,_0x4c1f55){return db[_0x8493('0x3a')][_0x8493('0x43')](_0x97ad1[_0x8493('0x44')],{})['then'](respondWithResult(_0x4c1f55,0xc9))[_0x8493('0x3f')](handleError(_0x4c1f55,null));};exports['update']=function(_0x3b7d32,_0x22c826){if(_0x3b7d32['body']['id']){delete _0x3b7d32['body']['id'];}return db[_0x8493('0x3a')][_0x8493('0x42')]({'where':{'id':_0x3b7d32[_0x8493('0x41')]['id']}})[_0x8493('0x21')](handleEntityNotFound(_0x22c826,null))['then'](saveUpdates(_0x3b7d32[_0x8493('0x44')],null))[_0x8493('0x21')](respondWithResult(_0x22c826,null))[_0x8493('0x3f')](handleError(_0x22c826,null));};exports['destroy']=function(_0x4ba601,_0x594007){return db[_0x8493('0x3a')][_0x8493('0x42')]({'where':{'id':_0x4ba601[_0x8493('0x41')]['id']}})[_0x8493('0x21')](handleEntityNotFound(_0x594007,null))['then'](removeEntity(_0x594007,null))[_0x8493('0x3f')](handleError(_0x594007,null));};exports[_0x8493('0x45')]=function(_0x23e0e,_0x2a81af,_0x4eadc6){var _0x25ce79={};var _0x313d82={};var _0x267896;var _0x4103fd;return db[_0x8493('0x3a')][_0x8493('0x46')]({'where':{'id':_0x23e0e['params']['id']}})[_0x8493('0x21')](handleEntityNotFound(_0x2a81af,null))['then'](function(_0x5dd72b){if(_0x5dd72b){_0x267896=_0x5dd72b;_0x313d82[_0x8493('0x2a')]=_[_0x8493('0x2c')](db[_0x8493('0x47')][_0x8493('0x26')]);_0x313d82[_0x8493('0x2b')]=_[_0x8493('0x2c')](_0x23e0e[_0x8493('0x2b')]);_0x313d82[_0x8493('0x35')]=_[_0x8493('0x2e')](_0x313d82[_0x8493('0x2a')],_0x313d82[_0x8493('0x2b')]);_0x25ce79[_0x8493('0x2d')]=_[_0x8493('0x2e')](_0x313d82['model'],qs[_0x8493('0x2f')](_0x23e0e[_0x8493('0x2b')][_0x8493('0x2f')]));_0x25ce79[_0x8493('0x2d')]=_0x25ce79[_0x8493('0x2d')][_0x8493('0x48')]?_0x25ce79[_0x8493('0x2d')]:_0x313d82[_0x8493('0x2a')];_0x25ce79[_0x8493('0x32')]=qs[_0x8493('0x33')](_0x23e0e[_0x8493('0x2b')]['sort']);_0x25ce79[_0x8493('0x34')]=qs[_0x8493('0x35')](_[_0x8493('0x49')](_0x23e0e['query'],_0x313d82['filters']));if(_0x23e0e[_0x8493('0x2b')][_0x8493('0x36')]){_0x25ce79[_0x8493('0x34')]=_['merge'](_0x25ce79[_0x8493('0x34')],{'$or':_[_0x8493('0x25')](_0x25ce79[_0x8493('0x2d')],function(_0x1e1c62){var _0x1793ed={};_0x1793ed[_0x1e1c62]={'$like':'%'+_0x23e0e['query'][_0x8493('0x36')]+'%'};return _0x1793ed;})});}_0x25ce79=_[_0x8493('0x37')]({},_0x25ce79,_0x23e0e[_0x8493('0x39')]);return _0x267896[_0x8493('0x45')](_0x25ce79);}})[_0x8493('0x21')](function(_0x40afc7){if(_0x40afc7){_0x4103fd=_0x40afc7[_0x8493('0x48')];if(!_0x23e0e['query']['hasOwnProperty']('nolimit')){_0x25ce79[_0x8493('0x1c')]=qs[_0x8493('0x1c')](_0x23e0e['query']['limit']);_0x25ce79[_0x8493('0x19')]=qs[_0x8493('0x19')](_0x23e0e['query'][_0x8493('0x19')]);}return _0x267896[_0x8493('0x45')](_0x25ce79);}})[_0x8493('0x21')](function(_0x24a4dc){if(_0x24a4dc){return _0x24a4dc?{'count':_0x4103fd,'rows':_0x24a4dc}:null;}})['then'](respondWithResult(_0x2a81af,null))[_0x8493('0x3f')](handleError(_0x2a81af,null));};exports[_0x8493('0x4a')]=function(_0x94ebd3,_0x211363,_0xa904c2){if(_0x94ebd3[_0x8493('0x44')]['id']){delete _0x94ebd3['body']['id'];}return db[_0x8493('0x3a')][_0x8493('0x46')]({'where':{'id':_0x94ebd3[_0x8493('0x41')]['id']}})[_0x8493('0x21')](handleEntityNotFound(_0x211363,null))[_0x8493('0x21')](function(_0x27d638){if(_0x27d638){_0x94ebd3['body']['AccountId']=_0x27d638['id'];_0x94ebd3[_0x8493('0x44')]['Subjects']=integrations[_0x8493('0x4b')](_0x94ebd3['body'][_0x8493('0x4c')],_0x94ebd3['body'][_0x8493('0x28')]);_0x94ebd3[_0x8493('0x44')][_0x8493('0x4d')]=integrations[_0x8493('0x4e')](_0x94ebd3[_0x8493('0x44')][_0x8493('0x4c')],_0x94ebd3[_0x8493('0x44')]['type']);return db[_0x8493('0x47')]['create'](_0x94ebd3['body'],{'include':[{'model':db['ZohoField'],'as':_0x8493('0x4f')},{'model':db['ZohoField'],'as':_0x8493('0x4d')}]});}return null;})[_0x8493('0x21')](respondWithResult(_0x211363,null))['catch'](handleError(_0x211363,null));};function getAccessToken(_0x2f197d){return new Promise(function(_0x5b193a,_0x154863){var _0x406679;switch(_0x2f197d[_0x8493('0x50')]){case'US':_0x406679=_0x8493('0x51');break;case'AU':_0x406679=_0x8493('0x52');break;case'EU':_0x406679=_0x8493('0x53');break;case'IN':_0x406679=_0x8493('0x54');break;case'CN':_0x406679=_0x8493('0x55');break;default:_0x406679=_0x8493('0x53');break;}var _0x594a80={'method':_0x8493('0x56'),'uri':_0x406679+_0x8493('0x57'),'qs':{'refresh_token':_0x2f197d[_0x8493('0x58')],'client_id':_0x2f197d[_0x8493('0x59')],'client_secret':_0x2f197d[_0x8493('0x5a')],'grant_type':_0x8493('0x5b')},'json':!![]};return rp(_0x594a80)[_0x8493('0x21')](function(_0x410ad2){if(_0x410ad2[_0x8493('0x5c')]){_0x5b193a(_0x410ad2['access_token']);}else{_0x154863('Unable\x20to\x20retrieve\x20the\x20access\x20token');}})['catch'](function(_0x34aba4){_0x154863(_0x34aba4);});});}exports[_0x8493('0x5d')]=function(_0x4374f2,_0x54ff2f,_0xb887ad){var _0x2a4e64,_0x21eb6d,_0x4d46a8,_0x286e85,_0x48cec9;return db['ZohoAccount'][_0x8493('0x46')]({'where':{'id':_0x4374f2[_0x8493('0x41')]['id']},'attributes':['id',_0x8493('0x5e'),'zone',_0x8493('0x59'),'clientSecret','serverUrl',_0x8493('0x5f'),_0x8493('0x58')]})[_0x8493('0x21')](handleEntityNotFound(_0x54ff2f,null))[_0x8493('0x21')](function(_0x504d30){_0x48cec9=_0x504d30;_0x2a4e64=_0x48cec9[_0x8493('0x5e')];_0x21eb6d=_0x2a4e64===_0x8493('0x60')?'eu':_0x8493('0x61');_0x4d46a8=_0x48cec9[_0x8493('0x62')];var _0xfdbf86=_0x4d46a8[_0x8493('0x63')](-0x1);if(_0xfdbf86==='/'||_0xfdbf86==='\x5c'||_0xfdbf86===':'){_0x4d46a8=_0x4d46a8[_0x8493('0x64')](0x0,_0x4d46a8[_0x8493('0x65')](_0xfdbf86));}if(!_0x48cec9['refreshToken']){throw new Error(_0x8493('0x66'));}return getAccessToken(_0x48cec9);})[_0x8493('0x21')](function(_0x131959){if(_0x131959){return rp({'method':_0x8493('0x67'),'uri':util[_0x8493('0x68')](_0x8493('0x69'),_0x21eb6d),'qs':{'module':_0x8493('0x6a')},'headers':{'Authorization':_0x8493('0x6b')+_0x131959},'json':!![]});}})[_0x8493('0x21')](function(_0xd4fb7f){if(_0xd4fb7f){if(_0xd4fb7f[_0x8493('0x6c')]&&_0xd4fb7f[_0x8493('0x6c')][_0x8493('0x6d')]){throw new Error(_0xd4fb7f[_0x8493('0x6c')][_0x8493('0x6d')][_0x8493('0x6e')]);}var _0x1a857f=[];var _0x5c118d=[];var _0x124cfd=[_0x8493('0x6f'),_0x8493('0x70'),_0x8493('0x71'),_0x8493('0x72'),_0x8493('0x73'),_0x8493('0x74'),_0x8493('0x75'),_0x8493('0x76')];_0x5c118d=_[_0x8493('0x77')](_0xd4fb7f['fields'],function(_0x206734){return _0x124cfd[_0x8493('0x78')](_0x206734[_0x8493('0x79')]);});for(var _0x2ae99b=0x0;_0x2ae99b<_0x5c118d['length'];_0x2ae99b++){if(_0x5c118d[_0x2ae99b]['system_mandatory']===![]){_0x1a857f[_0x8493('0x7a')]({'id':_0x5c118d[_0x2ae99b]['id'],'name':_0x5c118d[_0x2ae99b][_0x8493('0x7b')],'custom':_0x5c118d[_0x2ae99b][_0x8493('0x7c')],'options':_0x5c118d[_0x2ae99b][_0x8493('0x7d')]===_0x8493('0x7e')&&_0x5c118d[_0x2ae99b][_0x8493('0x7f')]['length']>-0x1?_['map'](_0x5c118d[_0x2ae99b]['pick_list_values'],function(_0x5ee3c7){return{'name':_0x5ee3c7,'value':_0x5ee3c7};}):[]});}}return{'count':_0x1a857f[_0x8493('0x48')],'rows':_0x1a857f};}else{return{'count':0x0,'rows':[]};}})[_0x8493('0x21')](respondWithResult(_0x54ff2f,null))[_0x8493('0x3f')](function(_0x40b81c){var _0x3c0c8d=_0x4374f2[_0x8493('0x2b')][_0x8493('0x80')]?0x1f4:_0x40b81c[_0x8493('0x81')]||0x1f4;logger[_0x8493('0x6d')](_0x8493('0x82'),_0x8493('0x5d'),_0x3c0c8d,JSON[_0x8493('0x83')](_0x40b81c));delete _0x40b81c[_0x8493('0x23')];if(_0x3c0c8d===0x191){_0x3c0c8d=0x190;}_0x54ff2f[_0x8493('0x1d')](_0x3c0c8d)[_0x8493('0x84')](_0x4374f2[_0x8493('0x2b')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x40b81c[_0x8493('0x81')]}:_0x40b81c);});};