dcbb96dae30ee4b85fd92c0899878464d085a27d
[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 _0xeebb=['keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','filter','count','includeAll','include','findAll','rows','show','params','catch','create','body','find','ZohoField','options','nolimit','getSubjects','getDescriptions','findOne','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','Content-Range','reject','update','then','destroy','sendStatus','error','stack','index','map','ZohoConfiguration','rawAttributes','fieldName','model','name'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xeebb,0x1ee));var _0xbeeb=function(_0x15cbf2,_0x50e69a){_0x15cbf2=_0x15cbf2-0x0;var _0x2be316=_0xeebb[_0x15cbf2];return _0x2be316;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xbeeb('0x0'));var jsonpatch=require(_0xbeeb('0x1'));var rp=require(_0xbeeb('0x2'));var moment=require(_0xbeeb('0x3'));var BPromise=require(_0xbeeb('0x4'));var Mustache=require(_0xbeeb('0x5'));var util=require(_0xbeeb('0x6'));var path=require(_0xbeeb('0x7'));var sox=require(_0xbeeb('0x8'));var csv=require(_0xbeeb('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xbeeb('0xa'));var _=require(_0xbeeb('0xb'));var squel=require('squel');var crypto=require(_0xbeeb('0xc'));var jsforce=require(_0xbeeb('0xd'));var deskjs=require(_0xbeeb('0xe'));var toCsv=require('to-csv');var querystring=require(_0xbeeb('0xf'));var Papa=require('papaparse');var Redis=require(_0xbeeb('0x10'));var authService=require(_0xbeeb('0x11'));var qs=require(_0xbeeb('0x12'));var as=require(_0xbeeb('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xbeeb('0x14'))(_0xbeeb('0x15'));var utils=require(_0xbeeb('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xbeeb('0x17'));var db=require(_0xbeeb('0x18'))['db'];function respondWithStatusCode(_0x16319e,_0x557543){_0x557543=_0x557543||0xcc;return function(_0x43849e){if(_0x43849e){return _0x16319e['sendStatus'](_0x557543);}return _0x16319e[_0xbeeb('0x19')](_0x557543)['end']();};}function respondWithResult(_0x44abf2,_0xfd5ad1){_0xfd5ad1=_0xfd5ad1||0xc8;return function(_0x240e90){if(_0x240e90){return _0x44abf2[_0xbeeb('0x19')](_0xfd5ad1)[_0xbeeb('0x1a')](_0x240e90);}};}function respondWithFilteredResult(_0x3b74ab,_0x29b971){return function(_0x43856b){if(_0x43856b){var _0x11c8a3=typeof _0x29b971[_0xbeeb('0x1b')]===_0xbeeb('0x1c')&&typeof _0x29b971[_0xbeeb('0x1d')]==='undefined';var _0x1655ff=_0x43856b['count'];var _0x5dea2c=_0x11c8a3?0x0:_0x29b971['offset'];var _0x5077ee=_0x11c8a3?_0x43856b['count']:_0x29b971['offset']+_0x29b971[_0xbeeb('0x1d')];var _0x203adf;if(_0x5077ee>=_0x1655ff){_0x5077ee=_0x1655ff;_0x203adf=0xc8;}else{_0x203adf=0xce;}_0x3b74ab[_0xbeeb('0x19')](_0x203adf);return _0x3b74ab['set'](_0xbeeb('0x1e'),_0x5dea2c+'-'+_0x5077ee+'/'+_0x1655ff)[_0xbeeb('0x1a')](_0x43856b);}return null;};}function patchUpdates(_0x510ea4){return function(_0x3630b9){try{jsonpatch['apply'](_0x3630b9,_0x510ea4,!![]);}catch(_0x13d321){return BPromise[_0xbeeb('0x1f')](_0x13d321);}return _0x3630b9['save']();};}function saveUpdates(_0x18db64,_0x4105d2){return function(_0x4ba7db){if(_0x4ba7db){return _0x4ba7db[_0xbeeb('0x20')](_0x18db64)[_0xbeeb('0x21')](function(_0x1830b1){return _0x1830b1;});}return null;};}function removeEntity(_0x542c76,_0x412b80){return function(_0x42a7f3){if(_0x42a7f3){return _0x42a7f3[_0xbeeb('0x22')]()[_0xbeeb('0x21')](function(){_0x542c76[_0xbeeb('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2350dc,_0x1ec090){return function(_0x7a24ba){if(!_0x7a24ba){_0x2350dc[_0xbeeb('0x23')](0x194);}return _0x7a24ba;};}function handleError(_0x576629,_0x40584b){_0x40584b=_0x40584b||0x1f4;return function(_0x4fe514){logger[_0xbeeb('0x24')](_0x4fe514[_0xbeeb('0x25')]);if(_0x4fe514['name']){delete _0x4fe514['name'];}_0x576629[_0xbeeb('0x19')](_0x40584b)['send'](_0x4fe514);};}exports[_0xbeeb('0x26')]=function(_0x18b078,_0x3331dd){var _0x27124c={},_0x22404f={},_0x509ce0={'count':0x0,'rows':[]};var _0xbe0a4e=_[_0xbeeb('0x27')](db[_0xbeeb('0x28')][_0xbeeb('0x29')],function(_0x15a1fe){return{'name':_0x15a1fe[_0xbeeb('0x2a')],'type':_0x15a1fe['type']['key']};});_0x22404f[_0xbeeb('0x2b')]=_['map'](_0xbe0a4e,_0xbeeb('0x2c'));_0x22404f['query']=_[_0xbeeb('0x2d')](_0x18b078[_0xbeeb('0x2e')]);_0x22404f[_0xbeeb('0x2f')]=_['intersection'](_0x22404f[_0xbeeb('0x2b')],_0x22404f[_0xbeeb('0x2e')]);_0x27124c[_0xbeeb('0x30')]=_[_0xbeeb('0x31')](_0x22404f[_0xbeeb('0x2b')],qs[_0xbeeb('0x32')](_0x18b078[_0xbeeb('0x2e')][_0xbeeb('0x32')]));_0x27124c['attributes']=_0x27124c[_0xbeeb('0x30')][_0xbeeb('0x33')]?_0x27124c[_0xbeeb('0x30')]:_0x22404f[_0xbeeb('0x2b')];if(!_0x18b078['query'][_0xbeeb('0x34')]('nolimit')){_0x27124c[_0xbeeb('0x1d')]=qs[_0xbeeb('0x1d')](_0x18b078['query'][_0xbeeb('0x1d')]);_0x27124c[_0xbeeb('0x1b')]=qs['offset'](_0x18b078[_0xbeeb('0x2e')]['offset']);}_0x27124c[_0xbeeb('0x35')]=qs[_0xbeeb('0x36')](_0x18b078[_0xbeeb('0x2e')][_0xbeeb('0x36')]);_0x27124c[_0xbeeb('0x37')]=qs[_0xbeeb('0x2f')](_[_0xbeeb('0x38')](_0x18b078[_0xbeeb('0x2e')],_0x22404f[_0xbeeb('0x2f')]),_0xbe0a4e);if(_0x18b078[_0xbeeb('0x2e')]['filter']){_0x27124c['where']=_[_0xbeeb('0x39')](_0x27124c[_0xbeeb('0x37')],{'$or':_['map'](_0xbe0a4e,function(_0x241015){if(_0x241015['type']!==_0xbeeb('0x3a')){var _0x2dfb23={};_0x2dfb23[_0x241015[_0xbeeb('0x2c')]]={'$like':'%'+_0x18b078[_0xbeeb('0x2e')][_0xbeeb('0x3b')]+'%'};return _0x2dfb23;}})});}_0x27124c=_[_0xbeeb('0x39')]({},_0x27124c,_0x18b078['options']);var _0x4b7fdf={'where':_0x27124c['where']};return db[_0xbeeb('0x28')]['count'](_0x4b7fdf)[_0xbeeb('0x21')](function(_0x4d6faf){_0x509ce0[_0xbeeb('0x3c')]=_0x4d6faf;if(_0x18b078[_0xbeeb('0x2e')][_0xbeeb('0x3d')]){_0x27124c[_0xbeeb('0x3e')]=[{'all':!![]}];}return db[_0xbeeb('0x28')][_0xbeeb('0x3f')](_0x27124c);})[_0xbeeb('0x21')](function(_0x10f615){_0x509ce0[_0xbeeb('0x40')]=_0x10f615;return _0x509ce0;})[_0xbeeb('0x21')](respondWithFilteredResult(_0x3331dd,_0x27124c))['catch'](handleError(_0x3331dd,null));};exports[_0xbeeb('0x41')]=function(_0x246dd1,_0x3ad6e1){var _0x446b9e={'raw':![],'where':{'id':_0x246dd1[_0xbeeb('0x42')]['id']}},_0x472239={};_0x472239['model']=_[_0xbeeb('0x2d')](db['ZohoConfiguration']['rawAttributes']);_0x472239['query']=_[_0xbeeb('0x2d')](_0x246dd1[_0xbeeb('0x2e')]);_0x472239[_0xbeeb('0x2f')]=_['intersection'](_0x472239[_0xbeeb('0x2b')],_0x472239[_0xbeeb('0x2e')]);_0x446b9e[_0xbeeb('0x30')]=_[_0xbeeb('0x31')](_0x472239['model'],qs[_0xbeeb('0x32')](_0x246dd1[_0xbeeb('0x2e')][_0xbeeb('0x32')]));_0x446b9e[_0xbeeb('0x30')]=_0x446b9e[_0xbeeb('0x30')]['length']?_0x446b9e[_0xbeeb('0x30')]:_0x472239[_0xbeeb('0x2b')];if(_0x246dd1[_0xbeeb('0x2e')]['includeAll']){_0x446b9e[_0xbeeb('0x3e')]=[{'all':!![]}];}_0x446b9e=_['merge']({},_0x446b9e,_0x246dd1['options']);return db['ZohoConfiguration']['find'](_0x446b9e)[_0xbeeb('0x21')](handleEntityNotFound(_0x3ad6e1,null))[_0xbeeb('0x21')](respondWithResult(_0x3ad6e1,null))[_0xbeeb('0x43')](handleError(_0x3ad6e1,null));};exports[_0xbeeb('0x44')]=function(_0x4adfc0,_0x447fe9){return db['ZohoConfiguration'][_0xbeeb('0x44')](_0x4adfc0[_0xbeeb('0x45')],{})[_0xbeeb('0x21')](respondWithResult(_0x447fe9,0xc9))[_0xbeeb('0x43')](handleError(_0x447fe9,null));};exports[_0xbeeb('0x20')]=function(_0x530dcc,_0x162e68){if(_0x530dcc[_0xbeeb('0x45')]['id']){delete _0x530dcc['body']['id'];}return db['ZohoConfiguration'][_0xbeeb('0x46')]({'where':{'id':_0x530dcc['params']['id']}})[_0xbeeb('0x21')](handleEntityNotFound(_0x162e68,null))[_0xbeeb('0x21')](saveUpdates(_0x530dcc[_0xbeeb('0x45')],null))['then'](respondWithResult(_0x162e68,null))['catch'](handleError(_0x162e68,null));};exports[_0xbeeb('0x22')]=function(_0x5e3f0f,_0x456fcd){return db[_0xbeeb('0x28')]['find']({'where':{'id':_0x5e3f0f[_0xbeeb('0x42')]['id']}})[_0xbeeb('0x21')](handleEntityNotFound(_0x456fcd,null))[_0xbeeb('0x21')](removeEntity(_0x456fcd,null))[_0xbeeb('0x43')](handleError(_0x456fcd,null));};exports['getFields']=function(_0x1dff9b,_0x39984a,_0x15e680){var _0x204b00={};var _0x89b8a0={};var _0x1b3154;var _0x5ea558;return db[_0xbeeb('0x28')]['findOne']({'where':{'id':_0x1dff9b[_0xbeeb('0x42')]['id']}})[_0xbeeb('0x21')](handleEntityNotFound(_0x39984a,null))[_0xbeeb('0x21')](function(_0x5f08cc){if(_0x5f08cc){_0x1b3154=_0x5f08cc;_0x89b8a0[_0xbeeb('0x2b')]=_[_0xbeeb('0x2d')](db[_0xbeeb('0x47')][_0xbeeb('0x29')]);_0x89b8a0['query']=_['keys'](_0x1dff9b[_0xbeeb('0x2e')]);_0x89b8a0[_0xbeeb('0x2f')]=_['intersection'](_0x89b8a0['model'],_0x89b8a0[_0xbeeb('0x2e')]);_0x204b00['attributes']=_[_0xbeeb('0x31')](_0x89b8a0[_0xbeeb('0x2b')],qs['fields'](_0x1dff9b[_0xbeeb('0x2e')]['fields']));_0x204b00['attributes']=_0x204b00[_0xbeeb('0x30')][_0xbeeb('0x33')]?_0x204b00['attributes']:_0x89b8a0[_0xbeeb('0x2b')];_0x204b00['order']=qs[_0xbeeb('0x36')](_0x1dff9b[_0xbeeb('0x2e')]['sort']);_0x204b00[_0xbeeb('0x37')]=qs[_0xbeeb('0x2f')](_[_0xbeeb('0x38')](_0x1dff9b[_0xbeeb('0x2e')],_0x89b8a0[_0xbeeb('0x2f')]));if(_0x1dff9b[_0xbeeb('0x2e')][_0xbeeb('0x3b')]){_0x204b00[_0xbeeb('0x37')]=_[_0xbeeb('0x39')](_0x204b00[_0xbeeb('0x37')],{'$or':_[_0xbeeb('0x27')](_0x204b00[_0xbeeb('0x30')],function(_0x3cfd64){var _0x13bb3c={};_0x13bb3c[_0x3cfd64]={'$like':'%'+_0x1dff9b[_0xbeeb('0x2e')]['filter']+'%'};return _0x13bb3c;})});}_0x204b00=_['merge']({},_0x204b00,_0x1dff9b[_0xbeeb('0x48')]);return _0x1b3154['getFields'](_0x204b00);}})[_0xbeeb('0x21')](function(_0x3c1091){if(_0x3c1091){_0x5ea558=_0x3c1091[_0xbeeb('0x33')];if(!_0x1dff9b[_0xbeeb('0x2e')][_0xbeeb('0x34')](_0xbeeb('0x49'))){_0x204b00[_0xbeeb('0x1d')]=qs[_0xbeeb('0x1d')](_0x1dff9b[_0xbeeb('0x2e')][_0xbeeb('0x1d')]);_0x204b00['offset']=qs[_0xbeeb('0x1b')](_0x1dff9b[_0xbeeb('0x2e')][_0xbeeb('0x1b')]);}return _0x1b3154['getFields'](_0x204b00);}})['then'](function(_0x498140){if(_0x498140){return _0x498140?{'count':_0x5ea558,'rows':_0x498140}:null;}})[_0xbeeb('0x21')](respondWithResult(_0x39984a,null))[_0xbeeb('0x43')](handleError(_0x39984a,null));};exports[_0xbeeb('0x4a')]=function(_0x5f0553,_0x53c1fb,_0x5ab904){var _0x4c343e={};var _0x382d84={};var _0x4d3750;var _0x3f1177;return db[_0xbeeb('0x28')]['findOne']({'where':{'id':_0x5f0553[_0xbeeb('0x42')]['id']}})['then'](handleEntityNotFound(_0x53c1fb,null))[_0xbeeb('0x21')](function(_0x517112){if(_0x517112){_0x4d3750=_0x517112;_0x382d84[_0xbeeb('0x2b')]=_[_0xbeeb('0x2d')](db[_0xbeeb('0x47')]['rawAttributes']);_0x382d84[_0xbeeb('0x2e')]=_[_0xbeeb('0x2d')](_0x5f0553['query']);_0x382d84[_0xbeeb('0x2f')]=_['intersection'](_0x382d84['model'],_0x382d84[_0xbeeb('0x2e')]);_0x4c343e[_0xbeeb('0x30')]=_['intersection'](_0x382d84[_0xbeeb('0x2b')],qs['fields'](_0x5f0553['query']['fields']));_0x4c343e[_0xbeeb('0x30')]=_0x4c343e[_0xbeeb('0x30')]['length']?_0x4c343e[_0xbeeb('0x30')]:_0x382d84['model'];_0x4c343e[_0xbeeb('0x35')]=qs[_0xbeeb('0x36')](_0x5f0553[_0xbeeb('0x2e')]['sort']);_0x4c343e[_0xbeeb('0x37')]=qs['filters'](_[_0xbeeb('0x38')](_0x5f0553[_0xbeeb('0x2e')],_0x382d84[_0xbeeb('0x2f')]));if(_0x5f0553['query'][_0xbeeb('0x3b')]){_0x4c343e['where']=_['merge'](_0x4c343e[_0xbeeb('0x37')],{'$or':_[_0xbeeb('0x27')](_0x4c343e[_0xbeeb('0x30')],function(_0x2545cb){var _0x31dea5={};_0x31dea5[_0x2545cb]={'$like':'%'+_0x5f0553[_0xbeeb('0x2e')][_0xbeeb('0x3b')]+'%'};return _0x31dea5;})});}_0x4c343e=_[_0xbeeb('0x39')]({},_0x4c343e,_0x5f0553[_0xbeeb('0x48')]);return _0x4d3750['getSubjects'](_0x4c343e);}})[_0xbeeb('0x21')](function(_0x24f272){if(_0x24f272){_0x3f1177=_0x24f272[_0xbeeb('0x33')];if(!_0x5f0553[_0xbeeb('0x2e')][_0xbeeb('0x34')](_0xbeeb('0x49'))){_0x4c343e[_0xbeeb('0x1d')]=qs[_0xbeeb('0x1d')](_0x5f0553[_0xbeeb('0x2e')][_0xbeeb('0x1d')]);_0x4c343e[_0xbeeb('0x1b')]=qs['offset'](_0x5f0553['query'][_0xbeeb('0x1b')]);}return _0x4d3750[_0xbeeb('0x4a')](_0x4c343e);}})[_0xbeeb('0x21')](function(_0x4e13d8){if(_0x4e13d8){return _0x4e13d8?{'count':_0x3f1177,'rows':_0x4e13d8}:null;}})[_0xbeeb('0x21')](respondWithResult(_0x53c1fb,null))['catch'](handleError(_0x53c1fb,null));};exports[_0xbeeb('0x4b')]=function(_0xccb23d,_0x275ee0,_0x378a8f){var _0x2496b3={};var _0x10b06a={};var _0x4d149e;var _0x5815fc;return db['ZohoConfiguration'][_0xbeeb('0x4c')]({'where':{'id':_0xccb23d['params']['id']}})[_0xbeeb('0x21')](handleEntityNotFound(_0x275ee0,null))['then'](function(_0xd2445){if(_0xd2445){_0x4d149e=_0xd2445;_0x10b06a[_0xbeeb('0x2b')]=_[_0xbeeb('0x2d')](db[_0xbeeb('0x47')][_0xbeeb('0x29')]);_0x10b06a[_0xbeeb('0x2e')]=_[_0xbeeb('0x2d')](_0xccb23d[_0xbeeb('0x2e')]);_0x10b06a[_0xbeeb('0x2f')]=_[_0xbeeb('0x31')](_0x10b06a[_0xbeeb('0x2b')],_0x10b06a[_0xbeeb('0x2e')]);_0x2496b3[_0xbeeb('0x30')]=_[_0xbeeb('0x31')](_0x10b06a['model'],qs['fields'](_0xccb23d[_0xbeeb('0x2e')][_0xbeeb('0x32')]));_0x2496b3[_0xbeeb('0x30')]=_0x2496b3[_0xbeeb('0x30')][_0xbeeb('0x33')]?_0x2496b3[_0xbeeb('0x30')]:_0x10b06a[_0xbeeb('0x2b')];_0x2496b3[_0xbeeb('0x35')]=qs['sort'](_0xccb23d[_0xbeeb('0x2e')][_0xbeeb('0x36')]);_0x2496b3['where']=qs[_0xbeeb('0x2f')](_[_0xbeeb('0x38')](_0xccb23d[_0xbeeb('0x2e')],_0x10b06a[_0xbeeb('0x2f')]));if(_0xccb23d[_0xbeeb('0x2e')][_0xbeeb('0x3b')]){_0x2496b3[_0xbeeb('0x37')]=_[_0xbeeb('0x39')](_0x2496b3[_0xbeeb('0x37')],{'$or':_[_0xbeeb('0x27')](_0x2496b3[_0xbeeb('0x30')],function(_0x48121a){var _0x34279e={};_0x34279e[_0x48121a]={'$like':'%'+_0xccb23d[_0xbeeb('0x2e')][_0xbeeb('0x3b')]+'%'};return _0x34279e;})});}_0x2496b3=_[_0xbeeb('0x39')]({},_0x2496b3,_0xccb23d[_0xbeeb('0x48')]);return _0x4d149e[_0xbeeb('0x4b')](_0x2496b3);}})[_0xbeeb('0x21')](function(_0x2240db){if(_0x2240db){_0x5815fc=_0x2240db[_0xbeeb('0x33')];if(!_0xccb23d[_0xbeeb('0x2e')][_0xbeeb('0x34')](_0xbeeb('0x49'))){_0x2496b3['limit']=qs[_0xbeeb('0x1d')](_0xccb23d[_0xbeeb('0x2e')][_0xbeeb('0x1d')]);_0x2496b3[_0xbeeb('0x1b')]=qs['offset'](_0xccb23d['query']['offset']);}return _0x4d149e[_0xbeeb('0x4b')](_0x2496b3);}})[_0xbeeb('0x21')](function(_0x16ceaf){if(_0x16ceaf){return _0x16ceaf?{'count':_0x5815fc,'rows':_0x16ceaf}:null;}})[_0xbeeb('0x21')](respondWithResult(_0x275ee0,null))['catch'](handleError(_0x275ee0,null));};