b923f01f1699c88e82d8e2448bc82a5a58877824
[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 _0xcea8=['where','pick','filter','merge','VIRTUAL','options','ZohoConfiguration','includeAll','include','show','find','catch','create','body','params','destroy','findOne','ZohoField','sort','getFields','getSubjects','getDescriptions','eml-format','rimraf','request-promise','bluebird','util','path','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','then','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order'];(function(_0x23078f,_0x38e1d4){var _0x4b2736=function(_0x1243c2){while(--_0x1243c2){_0x23078f['push'](_0x23078f['shift']());}};_0x4b2736(++_0x38e1d4);}(_0xcea8,0xfd));var _0x8cea=function(_0x5ca0b3,_0x33f5ef){_0x5ca0b3=_0x5ca0b3-0x0;var _0x6ba806=_0xcea8[_0x5ca0b3];return _0x6ba806;};'use strict';var emlformat=require(_0x8cea('0x0'));var rimraf=require(_0x8cea('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x8cea('0x2'));var moment=require('moment');var BPromise=require(_0x8cea('0x3'));var Mustache=require('mustache');var util=require(_0x8cea('0x4'));var path=require(_0x8cea('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8cea('0x6'));var squel=require(_0x8cea('0x7'));var crypto=require(_0x8cea('0x8'));var jsforce=require(_0x8cea('0x9'));var deskjs=require(_0x8cea('0xa'));var toCsv=require(_0x8cea('0xb'));var querystring=require(_0x8cea('0xc'));var Papa=require(_0x8cea('0xd'));var Redis=require('ioredis');var authService=require(_0x8cea('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x8cea('0xf'))(_0x8cea('0x10'));var utils=require(_0x8cea('0x11'));var config=require(_0x8cea('0x12'));var licenseUtil=require(_0x8cea('0x13'));var db=require(_0x8cea('0x14'))['db'];function respondWithStatusCode(_0x289a3a,_0x14b650){_0x14b650=_0x14b650||0xcc;return function(_0x58a497){if(_0x58a497){return _0x289a3a[_0x8cea('0x15')](_0x14b650);}return _0x289a3a[_0x8cea('0x16')](_0x14b650)[_0x8cea('0x17')]();};}function respondWithResult(_0x51f2d0,_0x1ec23e){_0x1ec23e=_0x1ec23e||0xc8;return function(_0x3fef2f){if(_0x3fef2f){return _0x51f2d0['status'](_0x1ec23e)[_0x8cea('0x18')](_0x3fef2f);}};}function respondWithFilteredResult(_0xb24d0e,_0x4ebd39){return function(_0x5a9148){if(_0x5a9148){var _0x2c2e25=typeof _0x4ebd39['offset']===_0x8cea('0x19')&&typeof _0x4ebd39[_0x8cea('0x1a')]==='undefined';var _0x45186c=_0x5a9148[_0x8cea('0x1b')];var _0x37330d=_0x2c2e25?0x0:_0x4ebd39[_0x8cea('0x1c')];var _0x370e86=_0x2c2e25?_0x5a9148['count']:_0x4ebd39[_0x8cea('0x1c')]+_0x4ebd39[_0x8cea('0x1a')];var _0x581663;if(_0x370e86>=_0x45186c){_0x370e86=_0x45186c;_0x581663=0xc8;}else{_0x581663=0xce;}_0xb24d0e[_0x8cea('0x16')](_0x581663);return _0xb24d0e[_0x8cea('0x1d')](_0x8cea('0x1e'),_0x37330d+'-'+_0x370e86+'/'+_0x45186c)[_0x8cea('0x18')](_0x5a9148);}return null;};}function patchUpdates(_0x4a7897){return function(_0x19c547){try{jsonpatch[_0x8cea('0x1f')](_0x19c547,_0x4a7897,!![]);}catch(_0x27e306){return BPromise['reject'](_0x27e306);}return _0x19c547[_0x8cea('0x20')]();};}function saveUpdates(_0x322286,_0x134685){return function(_0x17782b){if(_0x17782b){return _0x17782b[_0x8cea('0x21')](_0x322286)['then'](function(_0x1f0c03){return _0x1f0c03;});}return null;};}function removeEntity(_0x13eeb5,_0x321da7){return function(_0x63bad){if(_0x63bad){return _0x63bad['destroy']()[_0x8cea('0x22')](function(){_0x13eeb5[_0x8cea('0x16')](0xcc)[_0x8cea('0x17')]();});}};}function handleEntityNotFound(_0x5604f0,_0x1533f8){return function(_0x5d2b71){if(!_0x5d2b71){_0x5604f0[_0x8cea('0x15')](0x194);}return _0x5d2b71;};}function handleError(_0x4c4a23,_0x554894){_0x554894=_0x554894||0x1f4;return function(_0x54f795){logger['error'](_0x54f795[_0x8cea('0x23')]);if(_0x54f795[_0x8cea('0x24')]){delete _0x54f795['name'];}_0x4c4a23[_0x8cea('0x16')](_0x554894)[_0x8cea('0x25')](_0x54f795);};}exports[_0x8cea('0x26')]=function(_0x50e8c6,_0x37ba5f){var _0x3b15e4={},_0x12741e={},_0x1bf81a={'count':0x0,'rows':[]};var _0x2aba60=_[_0x8cea('0x27')](db['ZohoConfiguration'][_0x8cea('0x28')],function(_0x1f724e){return{'name':_0x1f724e[_0x8cea('0x29')],'type':_0x1f724e[_0x8cea('0x2a')][_0x8cea('0x2b')]};});_0x12741e['model']=_[_0x8cea('0x27')](_0x2aba60,_0x8cea('0x24'));_0x12741e[_0x8cea('0x2c')]=_[_0x8cea('0x2d')](_0x50e8c6['query']);_0x12741e[_0x8cea('0x2e')]=_[_0x8cea('0x2f')](_0x12741e['model'],_0x12741e['query']);_0x3b15e4[_0x8cea('0x30')]=_[_0x8cea('0x2f')](_0x12741e[_0x8cea('0x31')],qs[_0x8cea('0x32')](_0x50e8c6[_0x8cea('0x2c')][_0x8cea('0x32')]));_0x3b15e4[_0x8cea('0x30')]=_0x3b15e4['attributes'][_0x8cea('0x33')]?_0x3b15e4[_0x8cea('0x30')]:_0x12741e[_0x8cea('0x31')];if(!_0x50e8c6[_0x8cea('0x2c')][_0x8cea('0x34')](_0x8cea('0x35'))){_0x3b15e4[_0x8cea('0x1a')]=qs[_0x8cea('0x1a')](_0x50e8c6[_0x8cea('0x2c')][_0x8cea('0x1a')]);_0x3b15e4[_0x8cea('0x1c')]=qs['offset'](_0x50e8c6['query'][_0x8cea('0x1c')]);}_0x3b15e4[_0x8cea('0x36')]=qs['sort'](_0x50e8c6['query']['sort']);_0x3b15e4[_0x8cea('0x37')]=qs[_0x8cea('0x2e')](_[_0x8cea('0x38')](_0x50e8c6[_0x8cea('0x2c')],_0x12741e['filters']),_0x2aba60);if(_0x50e8c6[_0x8cea('0x2c')][_0x8cea('0x39')]){_0x3b15e4['where']=_[_0x8cea('0x3a')](_0x3b15e4['where'],{'$or':_[_0x8cea('0x27')](_0x2aba60,function(_0x531497){if(_0x531497[_0x8cea('0x2a')]!==_0x8cea('0x3b')){var _0x169d36={};_0x169d36[_0x531497['name']]={'$like':'%'+_0x50e8c6['query'][_0x8cea('0x39')]+'%'};return _0x169d36;}})});}_0x3b15e4=_[_0x8cea('0x3a')]({},_0x3b15e4,_0x50e8c6[_0x8cea('0x3c')]);var _0x4aee71={'where':_0x3b15e4[_0x8cea('0x37')]};return db[_0x8cea('0x3d')][_0x8cea('0x1b')](_0x4aee71)[_0x8cea('0x22')](function(_0x5a0323){_0x1bf81a['count']=_0x5a0323;if(_0x50e8c6[_0x8cea('0x2c')][_0x8cea('0x3e')]){_0x3b15e4[_0x8cea('0x3f')]=[{'all':!![]}];}return db[_0x8cea('0x3d')]['findAll'](_0x3b15e4);})['then'](function(_0x3ad012){_0x1bf81a['rows']=_0x3ad012;return _0x1bf81a;})['then'](respondWithFilteredResult(_0x37ba5f,_0x3b15e4))['catch'](handleError(_0x37ba5f,null));};exports[_0x8cea('0x40')]=function(_0xae1d9a,_0x5029e0){var _0x2539a={'raw':![],'where':{'id':_0xae1d9a['params']['id']}},_0x62610d={};_0x62610d[_0x8cea('0x31')]=_[_0x8cea('0x2d')](db[_0x8cea('0x3d')]['rawAttributes']);_0x62610d['query']=_[_0x8cea('0x2d')](_0xae1d9a['query']);_0x62610d[_0x8cea('0x2e')]=_[_0x8cea('0x2f')](_0x62610d[_0x8cea('0x31')],_0x62610d[_0x8cea('0x2c')]);_0x2539a[_0x8cea('0x30')]=_[_0x8cea('0x2f')](_0x62610d[_0x8cea('0x31')],qs[_0x8cea('0x32')](_0xae1d9a[_0x8cea('0x2c')][_0x8cea('0x32')]));_0x2539a[_0x8cea('0x30')]=_0x2539a[_0x8cea('0x30')][_0x8cea('0x33')]?_0x2539a[_0x8cea('0x30')]:_0x62610d['model'];if(_0xae1d9a[_0x8cea('0x2c')][_0x8cea('0x3e')]){_0x2539a[_0x8cea('0x3f')]=[{'all':!![]}];}_0x2539a=_['merge']({},_0x2539a,_0xae1d9a[_0x8cea('0x3c')]);return db[_0x8cea('0x3d')][_0x8cea('0x41')](_0x2539a)['then'](handleEntityNotFound(_0x5029e0,null))[_0x8cea('0x22')](respondWithResult(_0x5029e0,null))[_0x8cea('0x42')](handleError(_0x5029e0,null));};exports['create']=function(_0x4cc457,_0x7cdd8d){return db[_0x8cea('0x3d')][_0x8cea('0x43')](_0x4cc457[_0x8cea('0x44')],{})['then'](respondWithResult(_0x7cdd8d,0xc9))['catch'](handleError(_0x7cdd8d,null));};exports[_0x8cea('0x21')]=function(_0x59eb52,_0x480eee){if(_0x59eb52[_0x8cea('0x44')]['id']){delete _0x59eb52['body']['id'];}return db[_0x8cea('0x3d')][_0x8cea('0x41')]({'where':{'id':_0x59eb52[_0x8cea('0x45')]['id']}})[_0x8cea('0x22')](handleEntityNotFound(_0x480eee,null))['then'](saveUpdates(_0x59eb52[_0x8cea('0x44')],null))[_0x8cea('0x22')](respondWithResult(_0x480eee,null))[_0x8cea('0x42')](handleError(_0x480eee,null));};exports[_0x8cea('0x46')]=function(_0x5b049a,_0x30a9be){return db[_0x8cea('0x3d')]['find']({'where':{'id':_0x5b049a[_0x8cea('0x45')]['id']}})[_0x8cea('0x22')](handleEntityNotFound(_0x30a9be,null))['then'](removeEntity(_0x30a9be,null))['catch'](handleError(_0x30a9be,null));};exports['getFields']=function(_0x2c1260,_0x3832f3,_0x21f78e){var _0x1a7ba3={};var _0x1580f9={};var _0x50e47e;var _0x4a8c50;return db['ZohoConfiguration'][_0x8cea('0x47')]({'where':{'id':_0x2c1260[_0x8cea('0x45')]['id']}})[_0x8cea('0x22')](handleEntityNotFound(_0x3832f3,null))[_0x8cea('0x22')](function(_0x4fa999){if(_0x4fa999){_0x50e47e=_0x4fa999;_0x1580f9[_0x8cea('0x31')]=_['keys'](db[_0x8cea('0x48')][_0x8cea('0x28')]);_0x1580f9['query']=_[_0x8cea('0x2d')](_0x2c1260[_0x8cea('0x2c')]);_0x1580f9[_0x8cea('0x2e')]=_['intersection'](_0x1580f9['model'],_0x1580f9[_0x8cea('0x2c')]);_0x1a7ba3[_0x8cea('0x30')]=_[_0x8cea('0x2f')](_0x1580f9[_0x8cea('0x31')],qs[_0x8cea('0x32')](_0x2c1260[_0x8cea('0x2c')][_0x8cea('0x32')]));_0x1a7ba3['attributes']=_0x1a7ba3['attributes'][_0x8cea('0x33')]?_0x1a7ba3[_0x8cea('0x30')]:_0x1580f9[_0x8cea('0x31')];_0x1a7ba3[_0x8cea('0x36')]=qs['sort'](_0x2c1260[_0x8cea('0x2c')][_0x8cea('0x49')]);_0x1a7ba3[_0x8cea('0x37')]=qs[_0x8cea('0x2e')](_[_0x8cea('0x38')](_0x2c1260[_0x8cea('0x2c')],_0x1580f9[_0x8cea('0x2e')]));if(_0x2c1260[_0x8cea('0x2c')][_0x8cea('0x39')]){_0x1a7ba3[_0x8cea('0x37')]=_[_0x8cea('0x3a')](_0x1a7ba3[_0x8cea('0x37')],{'$or':_['map'](_0x1a7ba3[_0x8cea('0x30')],function(_0x7535a2){var _0x5b6b42={};_0x5b6b42[_0x7535a2]={'$like':'%'+_0x2c1260[_0x8cea('0x2c')][_0x8cea('0x39')]+'%'};return _0x5b6b42;})});}_0x1a7ba3=_[_0x8cea('0x3a')]({},_0x1a7ba3,_0x2c1260[_0x8cea('0x3c')]);return _0x50e47e[_0x8cea('0x4a')](_0x1a7ba3);}})[_0x8cea('0x22')](function(_0x59332d){if(_0x59332d){_0x4a8c50=_0x59332d[_0x8cea('0x33')];if(!_0x2c1260['query'][_0x8cea('0x34')](_0x8cea('0x35'))){_0x1a7ba3[_0x8cea('0x1a')]=qs[_0x8cea('0x1a')](_0x2c1260[_0x8cea('0x2c')][_0x8cea('0x1a')]);_0x1a7ba3[_0x8cea('0x1c')]=qs[_0x8cea('0x1c')](_0x2c1260[_0x8cea('0x2c')][_0x8cea('0x1c')]);}return _0x50e47e[_0x8cea('0x4a')](_0x1a7ba3);}})['then'](function(_0x3cf5d7){if(_0x3cf5d7){return _0x3cf5d7?{'count':_0x4a8c50,'rows':_0x3cf5d7}:null;}})['then'](respondWithResult(_0x3832f3,null))[_0x8cea('0x42')](handleError(_0x3832f3,null));};exports['getSubjects']=function(_0x4d46dc,_0x4f379f,_0x3e6d30){var _0x25d312={};var _0x894191={};var _0x3ca084;var _0x50a3f5;return db[_0x8cea('0x3d')][_0x8cea('0x47')]({'where':{'id':_0x4d46dc[_0x8cea('0x45')]['id']}})[_0x8cea('0x22')](handleEntityNotFound(_0x4f379f,null))[_0x8cea('0x22')](function(_0x29d52e){if(_0x29d52e){_0x3ca084=_0x29d52e;_0x894191[_0x8cea('0x31')]=_[_0x8cea('0x2d')](db[_0x8cea('0x48')]['rawAttributes']);_0x894191[_0x8cea('0x2c')]=_[_0x8cea('0x2d')](_0x4d46dc[_0x8cea('0x2c')]);_0x894191[_0x8cea('0x2e')]=_['intersection'](_0x894191[_0x8cea('0x31')],_0x894191[_0x8cea('0x2c')]);_0x25d312[_0x8cea('0x30')]=_[_0x8cea('0x2f')](_0x894191['model'],qs[_0x8cea('0x32')](_0x4d46dc[_0x8cea('0x2c')][_0x8cea('0x32')]));_0x25d312[_0x8cea('0x30')]=_0x25d312[_0x8cea('0x30')]['length']?_0x25d312[_0x8cea('0x30')]:_0x894191[_0x8cea('0x31')];_0x25d312[_0x8cea('0x36')]=qs[_0x8cea('0x49')](_0x4d46dc[_0x8cea('0x2c')]['sort']);_0x25d312[_0x8cea('0x37')]=qs['filters'](_[_0x8cea('0x38')](_0x4d46dc[_0x8cea('0x2c')],_0x894191['filters']));if(_0x4d46dc['query'][_0x8cea('0x39')]){_0x25d312['where']=_[_0x8cea('0x3a')](_0x25d312[_0x8cea('0x37')],{'$or':_[_0x8cea('0x27')](_0x25d312[_0x8cea('0x30')],function(_0x1fffe4){var _0x502ad5={};_0x502ad5[_0x1fffe4]={'$like':'%'+_0x4d46dc[_0x8cea('0x2c')]['filter']+'%'};return _0x502ad5;})});}_0x25d312=_['merge']({},_0x25d312,_0x4d46dc[_0x8cea('0x3c')]);return _0x3ca084[_0x8cea('0x4b')](_0x25d312);}})[_0x8cea('0x22')](function(_0x4da622){if(_0x4da622){_0x50a3f5=_0x4da622[_0x8cea('0x33')];if(!_0x4d46dc[_0x8cea('0x2c')][_0x8cea('0x34')](_0x8cea('0x35'))){_0x25d312[_0x8cea('0x1a')]=qs[_0x8cea('0x1a')](_0x4d46dc[_0x8cea('0x2c')][_0x8cea('0x1a')]);_0x25d312[_0x8cea('0x1c')]=qs[_0x8cea('0x1c')](_0x4d46dc[_0x8cea('0x2c')][_0x8cea('0x1c')]);}return _0x3ca084[_0x8cea('0x4b')](_0x25d312);}})[_0x8cea('0x22')](function(_0x204e40){if(_0x204e40){return _0x204e40?{'count':_0x50a3f5,'rows':_0x204e40}:null;}})[_0x8cea('0x22')](respondWithResult(_0x4f379f,null))['catch'](handleError(_0x4f379f,null));};exports[_0x8cea('0x4c')]=function(_0x513125,_0x311da8,_0x383858){var _0x3a996a={};var _0x2b7012={};var _0x2460e7;var _0x11e3bc;return db[_0x8cea('0x3d')][_0x8cea('0x47')]({'where':{'id':_0x513125[_0x8cea('0x45')]['id']}})[_0x8cea('0x22')](handleEntityNotFound(_0x311da8,null))['then'](function(_0x4f1fb9){if(_0x4f1fb9){_0x2460e7=_0x4f1fb9;_0x2b7012['model']=_['keys'](db[_0x8cea('0x48')][_0x8cea('0x28')]);_0x2b7012[_0x8cea('0x2c')]=_['keys'](_0x513125[_0x8cea('0x2c')]);_0x2b7012['filters']=_['intersection'](_0x2b7012[_0x8cea('0x31')],_0x2b7012[_0x8cea('0x2c')]);_0x3a996a[_0x8cea('0x30')]=_[_0x8cea('0x2f')](_0x2b7012[_0x8cea('0x31')],qs['fields'](_0x513125[_0x8cea('0x2c')][_0x8cea('0x32')]));_0x3a996a[_0x8cea('0x30')]=_0x3a996a[_0x8cea('0x30')][_0x8cea('0x33')]?_0x3a996a[_0x8cea('0x30')]:_0x2b7012[_0x8cea('0x31')];_0x3a996a[_0x8cea('0x36')]=qs[_0x8cea('0x49')](_0x513125[_0x8cea('0x2c')][_0x8cea('0x49')]);_0x3a996a['where']=qs['filters'](_[_0x8cea('0x38')](_0x513125[_0x8cea('0x2c')],_0x2b7012[_0x8cea('0x2e')]));if(_0x513125[_0x8cea('0x2c')][_0x8cea('0x39')]){_0x3a996a['where']=_[_0x8cea('0x3a')](_0x3a996a['where'],{'$or':_[_0x8cea('0x27')](_0x3a996a[_0x8cea('0x30')],function(_0x30c564){var _0x4be86a={};_0x4be86a[_0x30c564]={'$like':'%'+_0x513125['query']['filter']+'%'};return _0x4be86a;})});}_0x3a996a=_[_0x8cea('0x3a')]({},_0x3a996a,_0x513125['options']);return _0x2460e7[_0x8cea('0x4c')](_0x3a996a);}})[_0x8cea('0x22')](function(_0x58ce39){if(_0x58ce39){_0x11e3bc=_0x58ce39[_0x8cea('0x33')];if(!_0x513125[_0x8cea('0x2c')][_0x8cea('0x34')](_0x8cea('0x35'))){_0x3a996a[_0x8cea('0x1a')]=qs[_0x8cea('0x1a')](_0x513125[_0x8cea('0x2c')]['limit']);_0x3a996a[_0x8cea('0x1c')]=qs[_0x8cea('0x1c')](_0x513125['query'][_0x8cea('0x1c')]);}return _0x2460e7['getDescriptions'](_0x3a996a);}})[_0x8cea('0x22')](function(_0x738389){if(_0x738389){return _0x738389?{'count':_0x11e3bc,'rows':_0x738389}:null;}})[_0x8cea('0x22')](respondWithResult(_0x311da8,null))[_0x8cea('0x42')](handleError(_0x311da8,null));};