Built motion from commit a61a4a20.|2.5.46
[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 _0x6ea5=['nolimit','offset','order','sort','where','filter','merge','type','options','includeAll','findAll','rows','catch','show','params','create','body','find','destroy','getFields','findOne','pick','getSubjects','ZohoField','hasOwnProperty','getDescriptions','eml-format','rimraf','request-promise','moment','bluebird','util','path','ejs','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','status','json','undefined','limit','count','set','apply','reject','save','update','then','end','stack','name','send','index','map','ZohoConfiguration','rawAttributes','fieldName','key','query','keys','filters','intersection','attributes','model','fields','length'];(function(_0x5f309e,_0x66e31){var _0x487b5e=function(_0x44f203){while(--_0x44f203){_0x5f309e['push'](_0x5f309e['shift']());}};_0x487b5e(++_0x66e31);}(_0x6ea5,0x196));var _0x56ea=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6ea5[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x56ea('0x0'));var rimraf=require(_0x56ea('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x56ea('0x2'));var moment=require(_0x56ea('0x3'));var BPromise=require(_0x56ea('0x4'));var Mustache=require('mustache');var util=require(_0x56ea('0x5'));var path=require(_0x56ea('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x56ea('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x56ea('0x8'));var squel=require(_0x56ea('0x9'));var crypto=require('crypto');var jsforce=require(_0x56ea('0xa'));var deskjs=require(_0x56ea('0xb'));var toCsv=require('to-csv');var querystring=require(_0x56ea('0xc'));var Papa=require('papaparse');var Redis=require(_0x56ea('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x56ea('0xe'));var as=require(_0x56ea('0xf'));var hardwareService=require(_0x56ea('0x10'));var logger=require(_0x56ea('0x11'))(_0x56ea('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x56ea('0x13'));var db=require(_0x56ea('0x14'))['db'];function respondWithStatusCode(_0x2a8c6a,_0x25f552){_0x25f552=_0x25f552||0xcc;return function(_0x28bf4a){if(_0x28bf4a){return _0x2a8c6a['sendStatus'](_0x25f552);}return _0x2a8c6a[_0x56ea('0x15')](_0x25f552)['end']();};}function respondWithResult(_0x272da5,_0x1a745e){_0x1a745e=_0x1a745e||0xc8;return function(_0x2ccc74){if(_0x2ccc74){return _0x272da5['status'](_0x1a745e)[_0x56ea('0x16')](_0x2ccc74);}};}function respondWithFilteredResult(_0x296d16,_0x379851){return function(_0x3a3f3b){if(_0x3a3f3b){var _0x1db48a=typeof _0x379851['offset']===_0x56ea('0x17')&&typeof _0x379851[_0x56ea('0x18')]===_0x56ea('0x17');var _0x71e0c5=_0x3a3f3b[_0x56ea('0x19')];var _0x19712c=_0x1db48a?0x0:_0x379851['offset'];var _0x7ba39=_0x1db48a?_0x3a3f3b[_0x56ea('0x19')]:_0x379851['offset']+_0x379851[_0x56ea('0x18')];var _0x1115d8;if(_0x7ba39>=_0x71e0c5){_0x7ba39=_0x71e0c5;_0x1115d8=0xc8;}else{_0x1115d8=0xce;}_0x296d16[_0x56ea('0x15')](_0x1115d8);return _0x296d16[_0x56ea('0x1a')]('Content-Range',_0x19712c+'-'+_0x7ba39+'/'+_0x71e0c5)['json'](_0x3a3f3b);}return null;};}function patchUpdates(_0x53c030){return function(_0x24dea4){try{jsonpatch[_0x56ea('0x1b')](_0x24dea4,_0x53c030,!![]);}catch(_0x42e8a4){return BPromise[_0x56ea('0x1c')](_0x42e8a4);}return _0x24dea4[_0x56ea('0x1d')]();};}function saveUpdates(_0x4bbac7,_0x57ccbe){return function(_0x51995d){if(_0x51995d){return _0x51995d[_0x56ea('0x1e')](_0x4bbac7)[_0x56ea('0x1f')](function(_0x5804bf){return _0x5804bf;});}return null;};}function removeEntity(_0x17df6e,_0x350b36){return function(_0xe83701){if(_0xe83701){return _0xe83701['destroy']()[_0x56ea('0x1f')](function(){_0x17df6e[_0x56ea('0x15')](0xcc)[_0x56ea('0x20')]();});}};}function handleEntityNotFound(_0x28a72a,_0x4b60b2){return function(_0x5001d3){if(!_0x5001d3){_0x28a72a['sendStatus'](0x194);}return _0x5001d3;};}function handleError(_0x715601,_0x589b8b){_0x589b8b=_0x589b8b||0x1f4;return function(_0x3fd73b){logger['error'](_0x3fd73b[_0x56ea('0x21')]);if(_0x3fd73b[_0x56ea('0x22')]){delete _0x3fd73b[_0x56ea('0x22')];}_0x715601[_0x56ea('0x15')](_0x589b8b)[_0x56ea('0x23')](_0x3fd73b);};}exports[_0x56ea('0x24')]=function(_0x469029,_0x4950c6){var _0x146340={},_0x21f96d={},_0x2842aa={'count':0x0,'rows':[]};var _0xe34e37=_[_0x56ea('0x25')](db[_0x56ea('0x26')][_0x56ea('0x27')],function(_0x94d30f){return{'name':_0x94d30f[_0x56ea('0x28')],'type':_0x94d30f['type'][_0x56ea('0x29')]};});_0x21f96d['model']=_[_0x56ea('0x25')](_0xe34e37,'name');_0x21f96d[_0x56ea('0x2a')]=_[_0x56ea('0x2b')](_0x469029['query']);_0x21f96d[_0x56ea('0x2c')]=_[_0x56ea('0x2d')](_0x21f96d['model'],_0x21f96d[_0x56ea('0x2a')]);_0x146340[_0x56ea('0x2e')]=_[_0x56ea('0x2d')](_0x21f96d[_0x56ea('0x2f')],qs[_0x56ea('0x30')](_0x469029['query'][_0x56ea('0x30')]));_0x146340[_0x56ea('0x2e')]=_0x146340[_0x56ea('0x2e')][_0x56ea('0x31')]?_0x146340['attributes']:_0x21f96d[_0x56ea('0x2f')];if(!_0x469029[_0x56ea('0x2a')]['hasOwnProperty'](_0x56ea('0x32'))){_0x146340['limit']=qs[_0x56ea('0x18')](_0x469029['query']['limit']);_0x146340[_0x56ea('0x33')]=qs[_0x56ea('0x33')](_0x469029[_0x56ea('0x2a')][_0x56ea('0x33')]);}_0x146340[_0x56ea('0x34')]=qs['sort'](_0x469029[_0x56ea('0x2a')][_0x56ea('0x35')]);_0x146340[_0x56ea('0x36')]=qs[_0x56ea('0x2c')](_['pick'](_0x469029[_0x56ea('0x2a')],_0x21f96d['filters']),_0xe34e37);if(_0x469029['query'][_0x56ea('0x37')]){_0x146340['where']=_[_0x56ea('0x38')](_0x146340[_0x56ea('0x36')],{'$or':_[_0x56ea('0x25')](_0xe34e37,function(_0xc5c66a){if(_0xc5c66a[_0x56ea('0x39')]!=='VIRTUAL'){var _0x5d92e2={};_0x5d92e2[_0xc5c66a[_0x56ea('0x22')]]={'$like':'%'+_0x469029[_0x56ea('0x2a')]['filter']+'%'};return _0x5d92e2;}})});}_0x146340=_[_0x56ea('0x38')]({},_0x146340,_0x469029[_0x56ea('0x3a')]);var _0x5b5356={'where':_0x146340[_0x56ea('0x36')]};return db[_0x56ea('0x26')][_0x56ea('0x19')](_0x5b5356)[_0x56ea('0x1f')](function(_0x335515){_0x2842aa['count']=_0x335515;if(_0x469029[_0x56ea('0x2a')][_0x56ea('0x3b')]){_0x146340['include']=[{'all':!![]}];}return db[_0x56ea('0x26')][_0x56ea('0x3c')](_0x146340);})[_0x56ea('0x1f')](function(_0x138122){_0x2842aa[_0x56ea('0x3d')]=_0x138122;return _0x2842aa;})['then'](respondWithFilteredResult(_0x4950c6,_0x146340))[_0x56ea('0x3e')](handleError(_0x4950c6,null));};exports[_0x56ea('0x3f')]=function(_0x53aa9d,_0x1f938a){var _0x281122={'raw':![],'where':{'id':_0x53aa9d[_0x56ea('0x40')]['id']}},_0x565bb6={};_0x565bb6[_0x56ea('0x2f')]=_[_0x56ea('0x2b')](db[_0x56ea('0x26')]['rawAttributes']);_0x565bb6[_0x56ea('0x2a')]=_[_0x56ea('0x2b')](_0x53aa9d[_0x56ea('0x2a')]);_0x565bb6[_0x56ea('0x2c')]=_[_0x56ea('0x2d')](_0x565bb6[_0x56ea('0x2f')],_0x565bb6[_0x56ea('0x2a')]);_0x281122[_0x56ea('0x2e')]=_[_0x56ea('0x2d')](_0x565bb6[_0x56ea('0x2f')],qs[_0x56ea('0x30')](_0x53aa9d['query'][_0x56ea('0x30')]));_0x281122[_0x56ea('0x2e')]=_0x281122[_0x56ea('0x2e')][_0x56ea('0x31')]?_0x281122[_0x56ea('0x2e')]:_0x565bb6[_0x56ea('0x2f')];if(_0x53aa9d['query'][_0x56ea('0x3b')]){_0x281122['include']=[{'all':!![]}];}_0x281122=_[_0x56ea('0x38')]({},_0x281122,_0x53aa9d[_0x56ea('0x3a')]);return db['ZohoConfiguration']['find'](_0x281122)['then'](handleEntityNotFound(_0x1f938a,null))[_0x56ea('0x1f')](respondWithResult(_0x1f938a,null))[_0x56ea('0x3e')](handleError(_0x1f938a,null));};exports['create']=function(_0x45a2df,_0x4aa291){return db[_0x56ea('0x26')][_0x56ea('0x41')](_0x45a2df['body'],{})['then'](respondWithResult(_0x4aa291,0xc9))[_0x56ea('0x3e')](handleError(_0x4aa291,null));};exports[_0x56ea('0x1e')]=function(_0x1962f5,_0x29dc1c){if(_0x1962f5['body']['id']){delete _0x1962f5[_0x56ea('0x42')]['id'];}return db[_0x56ea('0x26')][_0x56ea('0x43')]({'where':{'id':_0x1962f5['params']['id']}})[_0x56ea('0x1f')](handleEntityNotFound(_0x29dc1c,null))[_0x56ea('0x1f')](saveUpdates(_0x1962f5[_0x56ea('0x42')],null))[_0x56ea('0x1f')](respondWithResult(_0x29dc1c,null))[_0x56ea('0x3e')](handleError(_0x29dc1c,null));};exports[_0x56ea('0x44')]=function(_0x1c1ffc,_0x26ced0){return db[_0x56ea('0x26')][_0x56ea('0x43')]({'where':{'id':_0x1c1ffc[_0x56ea('0x40')]['id']}})['then'](handleEntityNotFound(_0x26ced0,null))[_0x56ea('0x1f')](removeEntity(_0x26ced0,null))[_0x56ea('0x3e')](handleError(_0x26ced0,null));};exports[_0x56ea('0x45')]=function(_0x3c63cd,_0x15e9db,_0x39f073){var _0x2c572e={};var _0x948ee2={};var _0xbeed6f;var _0x5456fd;return db[_0x56ea('0x26')][_0x56ea('0x46')]({'where':{'id':_0x3c63cd[_0x56ea('0x40')]['id']}})[_0x56ea('0x1f')](handleEntityNotFound(_0x15e9db,null))[_0x56ea('0x1f')](function(_0x2819a2){if(_0x2819a2){_0xbeed6f=_0x2819a2;_0x948ee2[_0x56ea('0x2f')]=_['keys'](db['ZohoField'][_0x56ea('0x27')]);_0x948ee2[_0x56ea('0x2a')]=_[_0x56ea('0x2b')](_0x3c63cd[_0x56ea('0x2a')]);_0x948ee2[_0x56ea('0x2c')]=_['intersection'](_0x948ee2[_0x56ea('0x2f')],_0x948ee2[_0x56ea('0x2a')]);_0x2c572e[_0x56ea('0x2e')]=_[_0x56ea('0x2d')](_0x948ee2[_0x56ea('0x2f')],qs[_0x56ea('0x30')](_0x3c63cd['query'][_0x56ea('0x30')]));_0x2c572e[_0x56ea('0x2e')]=_0x2c572e[_0x56ea('0x2e')][_0x56ea('0x31')]?_0x2c572e['attributes']:_0x948ee2['model'];_0x2c572e['order']=qs[_0x56ea('0x35')](_0x3c63cd[_0x56ea('0x2a')]['sort']);_0x2c572e[_0x56ea('0x36')]=qs[_0x56ea('0x2c')](_[_0x56ea('0x47')](_0x3c63cd['query'],_0x948ee2[_0x56ea('0x2c')]));if(_0x3c63cd[_0x56ea('0x2a')][_0x56ea('0x37')]){_0x2c572e[_0x56ea('0x36')]=_[_0x56ea('0x38')](_0x2c572e[_0x56ea('0x36')],{'$or':_[_0x56ea('0x25')](_0x2c572e[_0x56ea('0x2e')],function(_0x47e58f){var _0x2d48eb={};_0x2d48eb[_0x47e58f]={'$like':'%'+_0x3c63cd[_0x56ea('0x2a')][_0x56ea('0x37')]+'%'};return _0x2d48eb;})});}_0x2c572e=_[_0x56ea('0x38')]({},_0x2c572e,_0x3c63cd[_0x56ea('0x3a')]);return _0xbeed6f['getFields'](_0x2c572e);}})[_0x56ea('0x1f')](function(_0x53605a){if(_0x53605a){_0x5456fd=_0x53605a[_0x56ea('0x31')];if(!_0x3c63cd[_0x56ea('0x2a')]['hasOwnProperty']('nolimit')){_0x2c572e[_0x56ea('0x18')]=qs[_0x56ea('0x18')](_0x3c63cd[_0x56ea('0x2a')][_0x56ea('0x18')]);_0x2c572e[_0x56ea('0x33')]=qs[_0x56ea('0x33')](_0x3c63cd[_0x56ea('0x2a')][_0x56ea('0x33')]);}return _0xbeed6f[_0x56ea('0x45')](_0x2c572e);}})[_0x56ea('0x1f')](function(_0x1f917a){if(_0x1f917a){return _0x1f917a?{'count':_0x5456fd,'rows':_0x1f917a}:null;}})[_0x56ea('0x1f')](respondWithResult(_0x15e9db,null))[_0x56ea('0x3e')](handleError(_0x15e9db,null));};exports[_0x56ea('0x48')]=function(_0x2d8314,_0x24480c,_0x3d82fd){var _0x4b8725={};var _0x48bbdc={};var _0x40a4e8;var _0x30a528;return db[_0x56ea('0x26')]['findOne']({'where':{'id':_0x2d8314['params']['id']}})[_0x56ea('0x1f')](handleEntityNotFound(_0x24480c,null))['then'](function(_0xa95a1){if(_0xa95a1){_0x40a4e8=_0xa95a1;_0x48bbdc['model']=_[_0x56ea('0x2b')](db[_0x56ea('0x49')][_0x56ea('0x27')]);_0x48bbdc[_0x56ea('0x2a')]=_[_0x56ea('0x2b')](_0x2d8314[_0x56ea('0x2a')]);_0x48bbdc['filters']=_[_0x56ea('0x2d')](_0x48bbdc[_0x56ea('0x2f')],_0x48bbdc[_0x56ea('0x2a')]);_0x4b8725[_0x56ea('0x2e')]=_['intersection'](_0x48bbdc[_0x56ea('0x2f')],qs[_0x56ea('0x30')](_0x2d8314[_0x56ea('0x2a')][_0x56ea('0x30')]));_0x4b8725['attributes']=_0x4b8725['attributes'][_0x56ea('0x31')]?_0x4b8725['attributes']:_0x48bbdc[_0x56ea('0x2f')];_0x4b8725[_0x56ea('0x34')]=qs[_0x56ea('0x35')](_0x2d8314['query'][_0x56ea('0x35')]);_0x4b8725[_0x56ea('0x36')]=qs[_0x56ea('0x2c')](_[_0x56ea('0x47')](_0x2d8314[_0x56ea('0x2a')],_0x48bbdc[_0x56ea('0x2c')]));if(_0x2d8314[_0x56ea('0x2a')][_0x56ea('0x37')]){_0x4b8725['where']=_['merge'](_0x4b8725['where'],{'$or':_['map'](_0x4b8725[_0x56ea('0x2e')],function(_0x5d557c){var _0x3631e7={};_0x3631e7[_0x5d557c]={'$like':'%'+_0x2d8314[_0x56ea('0x2a')][_0x56ea('0x37')]+'%'};return _0x3631e7;})});}_0x4b8725=_[_0x56ea('0x38')]({},_0x4b8725,_0x2d8314[_0x56ea('0x3a')]);return _0x40a4e8[_0x56ea('0x48')](_0x4b8725);}})[_0x56ea('0x1f')](function(_0x5cd57b){if(_0x5cd57b){_0x30a528=_0x5cd57b['length'];if(!_0x2d8314[_0x56ea('0x2a')][_0x56ea('0x4a')](_0x56ea('0x32'))){_0x4b8725[_0x56ea('0x18')]=qs[_0x56ea('0x18')](_0x2d8314[_0x56ea('0x2a')]['limit']);_0x4b8725[_0x56ea('0x33')]=qs[_0x56ea('0x33')](_0x2d8314[_0x56ea('0x2a')][_0x56ea('0x33')]);}return _0x40a4e8['getSubjects'](_0x4b8725);}})[_0x56ea('0x1f')](function(_0x4e3c5c){if(_0x4e3c5c){return _0x4e3c5c?{'count':_0x30a528,'rows':_0x4e3c5c}:null;}})[_0x56ea('0x1f')](respondWithResult(_0x24480c,null))[_0x56ea('0x3e')](handleError(_0x24480c,null));};exports[_0x56ea('0x4b')]=function(_0x3908ba,_0x4d1dc2,_0x437fc8){var _0x26288c={};var _0x30b23f={};var _0xf17c31;var _0x26934d;return db[_0x56ea('0x26')][_0x56ea('0x46')]({'where':{'id':_0x3908ba['params']['id']}})['then'](handleEntityNotFound(_0x4d1dc2,null))['then'](function(_0x26d3e9){if(_0x26d3e9){_0xf17c31=_0x26d3e9;_0x30b23f[_0x56ea('0x2f')]=_[_0x56ea('0x2b')](db['ZohoField']['rawAttributes']);_0x30b23f[_0x56ea('0x2a')]=_['keys'](_0x3908ba['query']);_0x30b23f[_0x56ea('0x2c')]=_[_0x56ea('0x2d')](_0x30b23f[_0x56ea('0x2f')],_0x30b23f['query']);_0x26288c['attributes']=_[_0x56ea('0x2d')](_0x30b23f[_0x56ea('0x2f')],qs[_0x56ea('0x30')](_0x3908ba['query'][_0x56ea('0x30')]));_0x26288c[_0x56ea('0x2e')]=_0x26288c[_0x56ea('0x2e')][_0x56ea('0x31')]?_0x26288c[_0x56ea('0x2e')]:_0x30b23f['model'];_0x26288c[_0x56ea('0x34')]=qs['sort'](_0x3908ba['query'][_0x56ea('0x35')]);_0x26288c[_0x56ea('0x36')]=qs['filters'](_[_0x56ea('0x47')](_0x3908ba[_0x56ea('0x2a')],_0x30b23f['filters']));if(_0x3908ba[_0x56ea('0x2a')][_0x56ea('0x37')]){_0x26288c[_0x56ea('0x36')]=_[_0x56ea('0x38')](_0x26288c['where'],{'$or':_[_0x56ea('0x25')](_0x26288c['attributes'],function(_0x5a6249){var _0x58c78e={};_0x58c78e[_0x5a6249]={'$like':'%'+_0x3908ba[_0x56ea('0x2a')][_0x56ea('0x37')]+'%'};return _0x58c78e;})});}_0x26288c=_['merge']({},_0x26288c,_0x3908ba[_0x56ea('0x3a')]);return _0xf17c31[_0x56ea('0x4b')](_0x26288c);}})['then'](function(_0x5dacae){if(_0x5dacae){_0x26934d=_0x5dacae['length'];if(!_0x3908ba[_0x56ea('0x2a')][_0x56ea('0x4a')](_0x56ea('0x32'))){_0x26288c[_0x56ea('0x18')]=qs['limit'](_0x3908ba['query'][_0x56ea('0x18')]);_0x26288c[_0x56ea('0x33')]=qs[_0x56ea('0x33')](_0x3908ba[_0x56ea('0x2a')][_0x56ea('0x33')]);}return _0xf17c31['getDescriptions'](_0x26288c);}})[_0x56ea('0x1f')](function(_0x2e912d){if(_0x2e912d){return _0x2e912d?{'count':_0x26934d,'rows':_0x2e912d}:null;}})[_0x56ea('0x1f')](respondWithResult(_0x4d1dc2,null))[_0x56ea('0x3e')](handleError(_0x4d1dc2,null));};