57fe6584abfa7d80bf88be08709cbd5a15ac3228
[motion2.git] / server / api / intZohoConfiguration / intZohoConfiguration.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 _0xd008=['hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','includeAll','findAll','rows','catch','show','include','options','create','body','find','params','getFields','findOne','getSubjects','ZohoField','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','ZohoConfiguration','rawAttributes','type','key','model','map','keys','query','filters','attributes','intersection','fields','length'];(function(_0x3d4af7,_0x3ef5f9){var _0x187b2b=function(_0x2e416c){while(--_0x2e416c){_0x3d4af7['push'](_0x3d4af7['shift']());}};_0x187b2b(++_0x3ef5f9);}(_0xd008,0x117));var _0x8d00=function(_0xc2c5b,_0x1366a4){_0xc2c5b=_0xc2c5b-0x0;var _0x195889=_0xd008[_0xc2c5b];return _0x195889;};'use strict';var emlformat=require(_0x8d00('0x0'));var rimraf=require(_0x8d00('0x1'));var zipdir=require(_0x8d00('0x2'));var jsonpatch=require(_0x8d00('0x3'));var rp=require(_0x8d00('0x4'));var moment=require(_0x8d00('0x5'));var BPromise=require(_0x8d00('0x6'));var Mustache=require('mustache');var util=require(_0x8d00('0x7'));var path=require(_0x8d00('0x8'));var sox=require(_0x8d00('0x9'));var csv=require(_0x8d00('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8d00('0xb'));var _=require(_0x8d00('0xc'));var squel=require(_0x8d00('0xd'));var crypto=require(_0x8d00('0xe'));var jsforce=require(_0x8d00('0xf'));var deskjs=require(_0x8d00('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x8d00('0x11'));var Redis=require(_0x8d00('0x12'));var authService=require(_0x8d00('0x13'));var qs=require(_0x8d00('0x14'));var as=require(_0x8d00('0x15'));var hardwareService=require(_0x8d00('0x16'));var logger=require(_0x8d00('0x17'))(_0x8d00('0x18'));var utils=require(_0x8d00('0x19'));var config=require(_0x8d00('0x1a'));var licenseUtil=require(_0x8d00('0x1b'));var db=require(_0x8d00('0x1c'))['db'];function respondWithStatusCode(_0x193c0e,_0xeacd6d){_0xeacd6d=_0xeacd6d||0xcc;return function(_0x3df361){if(_0x3df361){return _0x193c0e['sendStatus'](_0xeacd6d);}return _0x193c0e[_0x8d00('0x1d')](_0xeacd6d)[_0x8d00('0x1e')]();};}function respondWithResult(_0x394835,_0x2ced0a){_0x2ced0a=_0x2ced0a||0xc8;return function(_0x1a9065){if(_0x1a9065){return _0x394835[_0x8d00('0x1d')](_0x2ced0a)['json'](_0x1a9065);}};}function respondWithFilteredResult(_0x19972d,_0x15c984){return function(_0x225f6b){if(_0x225f6b){var _0x350a94=typeof _0x15c984[_0x8d00('0x1f')]===_0x8d00('0x20')&&typeof _0x15c984[_0x8d00('0x21')]===_0x8d00('0x20');var _0x52a8fd=_0x225f6b['count'];var _0x2d2e92=_0x350a94?0x0:_0x15c984['offset'];var _0xa9dfd1=_0x350a94?_0x225f6b[_0x8d00('0x22')]:_0x15c984[_0x8d00('0x1f')]+_0x15c984[_0x8d00('0x21')];var _0x4cc80c;if(_0xa9dfd1>=_0x52a8fd){_0xa9dfd1=_0x52a8fd;_0x4cc80c=0xc8;}else{_0x4cc80c=0xce;}_0x19972d['status'](_0x4cc80c);return _0x19972d[_0x8d00('0x23')](_0x8d00('0x24'),_0x2d2e92+'-'+_0xa9dfd1+'/'+_0x52a8fd)['json'](_0x225f6b);}return null;};}function patchUpdates(_0x3b9d27){return function(_0x1c29ee){try{jsonpatch[_0x8d00('0x25')](_0x1c29ee,_0x3b9d27,!![]);}catch(_0xd332f3){return BPromise[_0x8d00('0x26')](_0xd332f3);}return _0x1c29ee[_0x8d00('0x27')]();};}function saveUpdates(_0x531432,_0x5225b4){return function(_0x616268){if(_0x616268){return _0x616268[_0x8d00('0x28')](_0x531432)[_0x8d00('0x29')](function(_0x3c438d){return _0x3c438d;});}return null;};}function removeEntity(_0x22c214,_0x74786c){return function(_0x28ef7f){if(_0x28ef7f){return _0x28ef7f[_0x8d00('0x2a')]()[_0x8d00('0x29')](function(){_0x22c214['status'](0xcc)[_0x8d00('0x1e')]();});}};}function handleEntityNotFound(_0x52acc7,_0x57853e){return function(_0x3ac7dd){if(!_0x3ac7dd){_0x52acc7[_0x8d00('0x2b')](0x194);}return _0x3ac7dd;};}function handleError(_0x3be9f2,_0x3a27bd){_0x3a27bd=_0x3a27bd||0x1f4;return function(_0x2a8a9f){logger[_0x8d00('0x2c')](_0x2a8a9f[_0x8d00('0x2d')]);if(_0x2a8a9f[_0x8d00('0x2e')]){delete _0x2a8a9f[_0x8d00('0x2e')];}_0x3be9f2[_0x8d00('0x1d')](_0x3a27bd)[_0x8d00('0x2f')](_0x2a8a9f);};}exports['index']=function(_0x33adc6,_0xb9d49e){var _0x506428={},_0x58f622={},_0x3232ef={'count':0x0,'rows':[]};var _0x10ea8c=_['map'](db[_0x8d00('0x30')][_0x8d00('0x31')],function(_0xcabc08){return{'name':_0xcabc08['fieldName'],'type':_0xcabc08[_0x8d00('0x32')][_0x8d00('0x33')]};});_0x58f622[_0x8d00('0x34')]=_[_0x8d00('0x35')](_0x10ea8c,_0x8d00('0x2e'));_0x58f622['query']=_[_0x8d00('0x36')](_0x33adc6[_0x8d00('0x37')]);_0x58f622[_0x8d00('0x38')]=_['intersection'](_0x58f622['model'],_0x58f622['query']);_0x506428[_0x8d00('0x39')]=_[_0x8d00('0x3a')](_0x58f622['model'],qs['fields'](_0x33adc6['query'][_0x8d00('0x3b')]));_0x506428['attributes']=_0x506428['attributes'][_0x8d00('0x3c')]?_0x506428[_0x8d00('0x39')]:_0x58f622['model'];if(!_0x33adc6[_0x8d00('0x37')][_0x8d00('0x3d')](_0x8d00('0x3e'))){_0x506428[_0x8d00('0x21')]=qs[_0x8d00('0x21')](_0x33adc6['query'][_0x8d00('0x21')]);_0x506428[_0x8d00('0x1f')]=qs['offset'](_0x33adc6['query'][_0x8d00('0x1f')]);}_0x506428[_0x8d00('0x3f')]=qs['sort'](_0x33adc6[_0x8d00('0x37')][_0x8d00('0x40')]);_0x506428[_0x8d00('0x41')]=qs[_0x8d00('0x38')](_[_0x8d00('0x42')](_0x33adc6[_0x8d00('0x37')],_0x58f622[_0x8d00('0x38')]),_0x10ea8c);if(_0x33adc6['query'][_0x8d00('0x43')]){_0x506428[_0x8d00('0x41')]=_[_0x8d00('0x44')](_0x506428[_0x8d00('0x41')],{'$or':_[_0x8d00('0x35')](_0x10ea8c,function(_0x1e0a11){if(_0x1e0a11[_0x8d00('0x32')]!=='VIRTUAL'){var _0x45ae77={};_0x45ae77[_0x1e0a11[_0x8d00('0x2e')]]={'$like':'%'+_0x33adc6[_0x8d00('0x37')][_0x8d00('0x43')]+'%'};return _0x45ae77;}})});}_0x506428=_[_0x8d00('0x44')]({},_0x506428,_0x33adc6['options']);var _0xf0c517={'where':_0x506428[_0x8d00('0x41')]};return db[_0x8d00('0x30')]['count'](_0xf0c517)[_0x8d00('0x29')](function(_0x2c397e){_0x3232ef[_0x8d00('0x22')]=_0x2c397e;if(_0x33adc6['query'][_0x8d00('0x45')]){_0x506428['include']=[{'all':!![]}];}return db[_0x8d00('0x30')][_0x8d00('0x46')](_0x506428);})[_0x8d00('0x29')](function(_0x47bfc5){_0x3232ef[_0x8d00('0x47')]=_0x47bfc5;return _0x3232ef;})['then'](respondWithFilteredResult(_0xb9d49e,_0x506428))[_0x8d00('0x48')](handleError(_0xb9d49e,null));};exports[_0x8d00('0x49')]=function(_0x588f4f,_0x44ed62){var _0x16e074={'raw':![],'where':{'id':_0x588f4f['params']['id']}},_0x57bcf4={};_0x57bcf4['model']=_[_0x8d00('0x36')](db[_0x8d00('0x30')][_0x8d00('0x31')]);_0x57bcf4[_0x8d00('0x37')]=_['keys'](_0x588f4f[_0x8d00('0x37')]);_0x57bcf4[_0x8d00('0x38')]=_[_0x8d00('0x3a')](_0x57bcf4[_0x8d00('0x34')],_0x57bcf4['query']);_0x16e074['attributes']=_['intersection'](_0x57bcf4[_0x8d00('0x34')],qs['fields'](_0x588f4f[_0x8d00('0x37')][_0x8d00('0x3b')]));_0x16e074[_0x8d00('0x39')]=_0x16e074[_0x8d00('0x39')][_0x8d00('0x3c')]?_0x16e074[_0x8d00('0x39')]:_0x57bcf4[_0x8d00('0x34')];if(_0x588f4f[_0x8d00('0x37')][_0x8d00('0x45')]){_0x16e074[_0x8d00('0x4a')]=[{'all':!![]}];}_0x16e074=_['merge']({},_0x16e074,_0x588f4f[_0x8d00('0x4b')]);return db[_0x8d00('0x30')]['find'](_0x16e074)[_0x8d00('0x29')](handleEntityNotFound(_0x44ed62,null))[_0x8d00('0x29')](respondWithResult(_0x44ed62,null))[_0x8d00('0x48')](handleError(_0x44ed62,null));};exports[_0x8d00('0x4c')]=function(_0x2e81b2,_0x1f7cb4){return db[_0x8d00('0x30')][_0x8d00('0x4c')](_0x2e81b2[_0x8d00('0x4d')],{})[_0x8d00('0x29')](respondWithResult(_0x1f7cb4,0xc9))[_0x8d00('0x48')](handleError(_0x1f7cb4,null));};exports[_0x8d00('0x28')]=function(_0x1af262,_0x4ad4a8){if(_0x1af262['body']['id']){delete _0x1af262[_0x8d00('0x4d')]['id'];}return db[_0x8d00('0x30')][_0x8d00('0x4e')]({'where':{'id':_0x1af262['params']['id']}})[_0x8d00('0x29')](handleEntityNotFound(_0x4ad4a8,null))[_0x8d00('0x29')](saveUpdates(_0x1af262['body'],null))['then'](respondWithResult(_0x4ad4a8,null))[_0x8d00('0x48')](handleError(_0x4ad4a8,null));};exports['destroy']=function(_0x1fa60e,_0x189dc4){return db[_0x8d00('0x30')][_0x8d00('0x4e')]({'where':{'id':_0x1fa60e[_0x8d00('0x4f')]['id']}})[_0x8d00('0x29')](handleEntityNotFound(_0x189dc4,null))[_0x8d00('0x29')](removeEntity(_0x189dc4,null))[_0x8d00('0x48')](handleError(_0x189dc4,null));};exports[_0x8d00('0x50')]=function(_0x3f0495,_0x286a0e,_0x380c1e){var _0x1c2971={};var _0xb9d2ba={};var _0x36d495;var _0x104471;return db[_0x8d00('0x30')][_0x8d00('0x51')]({'where':{'id':_0x3f0495[_0x8d00('0x4f')]['id']}})['then'](handleEntityNotFound(_0x286a0e,null))[_0x8d00('0x29')](function(_0x3626cd){if(_0x3626cd){_0x36d495=_0x3626cd;_0xb9d2ba[_0x8d00('0x34')]=_[_0x8d00('0x36')](db['ZohoField']['rawAttributes']);_0xb9d2ba[_0x8d00('0x37')]=_[_0x8d00('0x36')](_0x3f0495['query']);_0xb9d2ba[_0x8d00('0x38')]=_[_0x8d00('0x3a')](_0xb9d2ba[_0x8d00('0x34')],_0xb9d2ba[_0x8d00('0x37')]);_0x1c2971[_0x8d00('0x39')]=_['intersection'](_0xb9d2ba[_0x8d00('0x34')],qs[_0x8d00('0x3b')](_0x3f0495['query'][_0x8d00('0x3b')]));_0x1c2971[_0x8d00('0x39')]=_0x1c2971['attributes'][_0x8d00('0x3c')]?_0x1c2971[_0x8d00('0x39')]:_0xb9d2ba['model'];_0x1c2971[_0x8d00('0x3f')]=qs['sort'](_0x3f0495[_0x8d00('0x37')][_0x8d00('0x40')]);_0x1c2971[_0x8d00('0x41')]=qs[_0x8d00('0x38')](_[_0x8d00('0x42')](_0x3f0495[_0x8d00('0x37')],_0xb9d2ba[_0x8d00('0x38')]));if(_0x3f0495[_0x8d00('0x37')][_0x8d00('0x43')]){_0x1c2971[_0x8d00('0x41')]=_['merge'](_0x1c2971[_0x8d00('0x41')],{'$or':_[_0x8d00('0x35')](_0x1c2971['attributes'],function(_0xbfc194){var _0x19acfe={};_0x19acfe[_0xbfc194]={'$like':'%'+_0x3f0495['query'][_0x8d00('0x43')]+'%'};return _0x19acfe;})});}_0x1c2971=_[_0x8d00('0x44')]({},_0x1c2971,_0x3f0495['options']);return _0x36d495[_0x8d00('0x50')](_0x1c2971);}})[_0x8d00('0x29')](function(_0x220f72){if(_0x220f72){_0x104471=_0x220f72['length'];if(!_0x3f0495[_0x8d00('0x37')][_0x8d00('0x3d')]('nolimit')){_0x1c2971[_0x8d00('0x21')]=qs[_0x8d00('0x21')](_0x3f0495[_0x8d00('0x37')]['limit']);_0x1c2971['offset']=qs[_0x8d00('0x1f')](_0x3f0495[_0x8d00('0x37')]['offset']);}return _0x36d495[_0x8d00('0x50')](_0x1c2971);}})[_0x8d00('0x29')](function(_0x52da89){if(_0x52da89){return _0x52da89?{'count':_0x104471,'rows':_0x52da89}:null;}})[_0x8d00('0x29')](respondWithResult(_0x286a0e,null))[_0x8d00('0x48')](handleError(_0x286a0e,null));};exports[_0x8d00('0x52')]=function(_0x228552,_0x57eaaa,_0x3f9aa9){var _0x3496={};var _0x43a95c={};var _0x2ce901;var _0x3dbe61;return db[_0x8d00('0x30')][_0x8d00('0x51')]({'where':{'id':_0x228552['params']['id']}})[_0x8d00('0x29')](handleEntityNotFound(_0x57eaaa,null))['then'](function(_0x24fddd){if(_0x24fddd){_0x2ce901=_0x24fddd;_0x43a95c[_0x8d00('0x34')]=_[_0x8d00('0x36')](db[_0x8d00('0x53')][_0x8d00('0x31')]);_0x43a95c[_0x8d00('0x37')]=_[_0x8d00('0x36')](_0x228552[_0x8d00('0x37')]);_0x43a95c[_0x8d00('0x38')]=_[_0x8d00('0x3a')](_0x43a95c[_0x8d00('0x34')],_0x43a95c[_0x8d00('0x37')]);_0x3496[_0x8d00('0x39')]=_[_0x8d00('0x3a')](_0x43a95c['model'],qs[_0x8d00('0x3b')](_0x228552['query'][_0x8d00('0x3b')]));_0x3496['attributes']=_0x3496[_0x8d00('0x39')][_0x8d00('0x3c')]?_0x3496[_0x8d00('0x39')]:_0x43a95c[_0x8d00('0x34')];_0x3496[_0x8d00('0x3f')]=qs[_0x8d00('0x40')](_0x228552[_0x8d00('0x37')][_0x8d00('0x40')]);_0x3496[_0x8d00('0x41')]=qs[_0x8d00('0x38')](_[_0x8d00('0x42')](_0x228552['query'],_0x43a95c[_0x8d00('0x38')]));if(_0x228552['query'][_0x8d00('0x43')]){_0x3496['where']=_[_0x8d00('0x44')](_0x3496[_0x8d00('0x41')],{'$or':_['map'](_0x3496[_0x8d00('0x39')],function(_0x4b6132){var _0x133d59={};_0x133d59[_0x4b6132]={'$like':'%'+_0x228552['query'][_0x8d00('0x43')]+'%'};return _0x133d59;})});}_0x3496=_[_0x8d00('0x44')]({},_0x3496,_0x228552[_0x8d00('0x4b')]);return _0x2ce901['getSubjects'](_0x3496);}})[_0x8d00('0x29')](function(_0xa8d8c5){if(_0xa8d8c5){_0x3dbe61=_0xa8d8c5[_0x8d00('0x3c')];if(!_0x228552[_0x8d00('0x37')]['hasOwnProperty']('nolimit')){_0x3496[_0x8d00('0x21')]=qs['limit'](_0x228552[_0x8d00('0x37')][_0x8d00('0x21')]);_0x3496[_0x8d00('0x1f')]=qs[_0x8d00('0x1f')](_0x228552[_0x8d00('0x37')]['offset']);}return _0x2ce901[_0x8d00('0x52')](_0x3496);}})['then'](function(_0x242e1a){if(_0x242e1a){return _0x242e1a?{'count':_0x3dbe61,'rows':_0x242e1a}:null;}})[_0x8d00('0x29')](respondWithResult(_0x57eaaa,null))[_0x8d00('0x48')](handleError(_0x57eaaa,null));};exports[_0x8d00('0x54')]=function(_0x15bddc,_0xdcab3a,_0x2f7621){var _0x3f9d30={};var _0x5779eb={};var _0x533446;var _0x36c12b;return db[_0x8d00('0x30')]['findOne']({'where':{'id':_0x15bddc[_0x8d00('0x4f')]['id']}})['then'](handleEntityNotFound(_0xdcab3a,null))['then'](function(_0x2235a8){if(_0x2235a8){_0x533446=_0x2235a8;_0x5779eb[_0x8d00('0x34')]=_[_0x8d00('0x36')](db[_0x8d00('0x53')]['rawAttributes']);_0x5779eb[_0x8d00('0x37')]=_[_0x8d00('0x36')](_0x15bddc[_0x8d00('0x37')]);_0x5779eb[_0x8d00('0x38')]=_[_0x8d00('0x3a')](_0x5779eb['model'],_0x5779eb['query']);_0x3f9d30[_0x8d00('0x39')]=_[_0x8d00('0x3a')](_0x5779eb[_0x8d00('0x34')],qs[_0x8d00('0x3b')](_0x15bddc[_0x8d00('0x37')][_0x8d00('0x3b')]));_0x3f9d30[_0x8d00('0x39')]=_0x3f9d30['attributes']['length']?_0x3f9d30[_0x8d00('0x39')]:_0x5779eb['model'];_0x3f9d30['order']=qs[_0x8d00('0x40')](_0x15bddc[_0x8d00('0x37')]['sort']);_0x3f9d30[_0x8d00('0x41')]=qs[_0x8d00('0x38')](_['pick'](_0x15bddc[_0x8d00('0x37')],_0x5779eb['filters']));if(_0x15bddc[_0x8d00('0x37')][_0x8d00('0x43')]){_0x3f9d30[_0x8d00('0x41')]=_[_0x8d00('0x44')](_0x3f9d30[_0x8d00('0x41')],{'$or':_[_0x8d00('0x35')](_0x3f9d30['attributes'],function(_0x174d4c){var _0x8f7619={};_0x8f7619[_0x174d4c]={'$like':'%'+_0x15bddc[_0x8d00('0x37')]['filter']+'%'};return _0x8f7619;})});}_0x3f9d30=_['merge']({},_0x3f9d30,_0x15bddc[_0x8d00('0x4b')]);return _0x533446['getDescriptions'](_0x3f9d30);}})[_0x8d00('0x29')](function(_0x1f66d1){if(_0x1f66d1){_0x36c12b=_0x1f66d1[_0x8d00('0x3c')];if(!_0x15bddc[_0x8d00('0x37')][_0x8d00('0x3d')](_0x8d00('0x3e'))){_0x3f9d30[_0x8d00('0x21')]=qs[_0x8d00('0x21')](_0x15bddc[_0x8d00('0x37')][_0x8d00('0x21')]);_0x3f9d30[_0x8d00('0x1f')]=qs['offset'](_0x15bddc['query'][_0x8d00('0x1f')]);}return _0x533446[_0x8d00('0x54')](_0x3f9d30);}})[_0x8d00('0x29')](function(_0x5908f9){if(_0x5908f9){return _0x5908f9?{'count':_0x36c12b,'rows':_0x5908f9}:null;}})[_0x8d00('0x29')](respondWithResult(_0xdcab3a,null))['catch'](handleError(_0xdcab3a,null));};