c99717813e691cbf77b0976b7b321170c9e9a748
[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 _0x56d6=['then','destroy','error','name','send','map','ZohoConfiguration','rawAttributes','fieldName','type','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','filter','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','merge','find','create','body','getFields','findOne','ZohoField','pick','getSubjects','options','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','update'];(function(_0x4965a4,_0x59ff3b){var _0x29bc0d=function(_0x2dbdf2){while(--_0x2dbdf2){_0x4965a4['push'](_0x4965a4['shift']());}};_0x29bc0d(++_0x59ff3b);}(_0x56d6,0x11f));var _0x656d=function(_0x3364ea,_0x2bf65a){_0x3364ea=_0x3364ea-0x0;var _0x28df0b=_0x56d6[_0x3364ea];return _0x28df0b;};'use strict';var emlformat=require(_0x656d('0x0'));var rimraf=require(_0x656d('0x1'));var zipdir=require(_0x656d('0x2'));var jsonpatch=require(_0x656d('0x3'));var rp=require(_0x656d('0x4'));var moment=require(_0x656d('0x5'));var BPromise=require(_0x656d('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x656d('0x7'));var sox=require(_0x656d('0x8'));var csv=require('to-csv');var ejs=require(_0x656d('0x9'));var fs=require('fs');var fs_extra=require(_0x656d('0xa'));var _=require(_0x656d('0xb'));var squel=require(_0x656d('0xc'));var crypto=require(_0x656d('0xd'));var jsforce=require(_0x656d('0xe'));var deskjs=require(_0x656d('0xf'));var toCsv=require('to-csv');var querystring=require(_0x656d('0x10'));var Papa=require(_0x656d('0x11'));var Redis=require(_0x656d('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x656d('0x13'));var as=require(_0x656d('0x14'));var hardwareService=require(_0x656d('0x15'));var logger=require(_0x656d('0x16'))('api');var utils=require(_0x656d('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x656d('0x18'))['db'];function respondWithStatusCode(_0x39d953,_0x583223){_0x583223=_0x583223||0xcc;return function(_0x961547){if(_0x961547){return _0x39d953[_0x656d('0x19')](_0x583223);}return _0x39d953[_0x656d('0x1a')](_0x583223)[_0x656d('0x1b')]();};}function respondWithResult(_0x25c6c8,_0x48244e){_0x48244e=_0x48244e||0xc8;return function(_0x936b6c){if(_0x936b6c){return _0x25c6c8[_0x656d('0x1a')](_0x48244e)[_0x656d('0x1c')](_0x936b6c);}};}function respondWithFilteredResult(_0x5ad2f6,_0x41d885){return function(_0x19303e){if(_0x19303e){var _0x148890=typeof _0x41d885[_0x656d('0x1d')]===_0x656d('0x1e')&&typeof _0x41d885['limit']===_0x656d('0x1e');var _0x352a9a=_0x19303e[_0x656d('0x1f')];var _0x2783be=_0x148890?0x0:_0x41d885[_0x656d('0x1d')];var _0x4df3ae=_0x148890?_0x19303e['count']:_0x41d885['offset']+_0x41d885['limit'];var _0x357285;if(_0x4df3ae>=_0x352a9a){_0x4df3ae=_0x352a9a;_0x357285=0xc8;}else{_0x357285=0xce;}_0x5ad2f6[_0x656d('0x1a')](_0x357285);return _0x5ad2f6[_0x656d('0x20')](_0x656d('0x21'),_0x2783be+'-'+_0x4df3ae+'/'+_0x352a9a)['json'](_0x19303e);}return null;};}function patchUpdates(_0xb57533){return function(_0x204c0f){try{jsonpatch[_0x656d('0x22')](_0x204c0f,_0xb57533,!![]);}catch(_0x64d6a4){return BPromise[_0x656d('0x23')](_0x64d6a4);}return _0x204c0f['save']();};}function saveUpdates(_0x58b96f,_0x591c24){return function(_0x3931f0){if(_0x3931f0){return _0x3931f0[_0x656d('0x24')](_0x58b96f)[_0x656d('0x25')](function(_0xaf12f4){return _0xaf12f4;});}return null;};}function removeEntity(_0x10a601,_0x48fa9b){return function(_0x112b28){if(_0x112b28){return _0x112b28[_0x656d('0x26')]()[_0x656d('0x25')](function(){_0x10a601[_0x656d('0x1a')](0xcc)[_0x656d('0x1b')]();});}};}function handleEntityNotFound(_0xf4c928,_0x23f7cc){return function(_0x1b7dda){if(!_0x1b7dda){_0xf4c928[_0x656d('0x19')](0x194);}return _0x1b7dda;};}function handleError(_0x38eb62,_0x22161f){_0x22161f=_0x22161f||0x1f4;return function(_0x59fc8b){logger[_0x656d('0x27')](_0x59fc8b['stack']);if(_0x59fc8b['name']){delete _0x59fc8b[_0x656d('0x28')];}_0x38eb62[_0x656d('0x1a')](_0x22161f)[_0x656d('0x29')](_0x59fc8b);};}exports['index']=function(_0x5b7c39,_0x3809cd){var _0x20e768={},_0x599adb={},_0x5f49fa={'count':0x0,'rows':[]};var _0x16cda0=_[_0x656d('0x2a')](db[_0x656d('0x2b')][_0x656d('0x2c')],function(_0x5e7a41){return{'name':_0x5e7a41[_0x656d('0x2d')],'type':_0x5e7a41[_0x656d('0x2e')]['key']};});_0x599adb['model']=_['map'](_0x16cda0,_0x656d('0x28'));_0x599adb[_0x656d('0x2f')]=_[_0x656d('0x30')](_0x5b7c39[_0x656d('0x2f')]);_0x599adb['filters']=_[_0x656d('0x31')](_0x599adb[_0x656d('0x32')],_0x599adb[_0x656d('0x2f')]);_0x20e768[_0x656d('0x33')]=_[_0x656d('0x31')](_0x599adb[_0x656d('0x32')],qs[_0x656d('0x34')](_0x5b7c39['query']['fields']));_0x20e768[_0x656d('0x33')]=_0x20e768['attributes'][_0x656d('0x35')]?_0x20e768[_0x656d('0x33')]:_0x599adb[_0x656d('0x32')];if(!_0x5b7c39[_0x656d('0x2f')][_0x656d('0x36')](_0x656d('0x37'))){_0x20e768[_0x656d('0x38')]=qs[_0x656d('0x38')](_0x5b7c39[_0x656d('0x2f')]['limit']);_0x20e768[_0x656d('0x1d')]=qs[_0x656d('0x1d')](_0x5b7c39[_0x656d('0x2f')][_0x656d('0x1d')]);}_0x20e768[_0x656d('0x39')]=qs[_0x656d('0x3a')](_0x5b7c39[_0x656d('0x2f')][_0x656d('0x3a')]);_0x20e768[_0x656d('0x3b')]=qs[_0x656d('0x3c')](_['pick'](_0x5b7c39[_0x656d('0x2f')],_0x599adb['filters']),_0x16cda0);if(_0x5b7c39[_0x656d('0x2f')][_0x656d('0x3d')]){_0x20e768[_0x656d('0x3b')]=_['merge'](_0x20e768[_0x656d('0x3b')],{'$or':_[_0x656d('0x2a')](_0x16cda0,function(_0x75e41b){if(_0x75e41b['type']!==_0x656d('0x3e')){var _0x1dae1f={};_0x1dae1f[_0x75e41b['name']]={'$like':'%'+_0x5b7c39['query'][_0x656d('0x3d')]+'%'};return _0x1dae1f;}})});}_0x20e768=_['merge']({},_0x20e768,_0x5b7c39['options']);var _0x501765={'where':_0x20e768[_0x656d('0x3b')]};return db[_0x656d('0x2b')][_0x656d('0x1f')](_0x501765)[_0x656d('0x25')](function(_0x53effc){_0x5f49fa[_0x656d('0x1f')]=_0x53effc;if(_0x5b7c39[_0x656d('0x2f')][_0x656d('0x3f')]){_0x20e768[_0x656d('0x40')]=[{'all':!![]}];}return db[_0x656d('0x2b')][_0x656d('0x41')](_0x20e768);})[_0x656d('0x25')](function(_0x58b844){_0x5f49fa[_0x656d('0x42')]=_0x58b844;return _0x5f49fa;})['then'](respondWithFilteredResult(_0x3809cd,_0x20e768))[_0x656d('0x43')](handleError(_0x3809cd,null));};exports[_0x656d('0x44')]=function(_0x391679,_0x461881){var _0x181e44={'raw':![],'where':{'id':_0x391679[_0x656d('0x45')]['id']}},_0x5cf950={};_0x5cf950['model']=_['keys'](db[_0x656d('0x2b')][_0x656d('0x2c')]);_0x5cf950[_0x656d('0x2f')]=_['keys'](_0x391679[_0x656d('0x2f')]);_0x5cf950[_0x656d('0x3c')]=_[_0x656d('0x31')](_0x5cf950[_0x656d('0x32')],_0x5cf950['query']);_0x181e44[_0x656d('0x33')]=_[_0x656d('0x31')](_0x5cf950['model'],qs[_0x656d('0x34')](_0x391679[_0x656d('0x2f')][_0x656d('0x34')]));_0x181e44[_0x656d('0x33')]=_0x181e44[_0x656d('0x33')][_0x656d('0x35')]?_0x181e44[_0x656d('0x33')]:_0x5cf950['model'];if(_0x391679[_0x656d('0x2f')][_0x656d('0x3f')]){_0x181e44['include']=[{'all':!![]}];}_0x181e44=_[_0x656d('0x46')]({},_0x181e44,_0x391679['options']);return db[_0x656d('0x2b')][_0x656d('0x47')](_0x181e44)['then'](handleEntityNotFound(_0x461881,null))['then'](respondWithResult(_0x461881,null))[_0x656d('0x43')](handleError(_0x461881,null));};exports['create']=function(_0x35ef2b,_0x4d02dc){return db[_0x656d('0x2b')][_0x656d('0x48')](_0x35ef2b[_0x656d('0x49')],{})[_0x656d('0x25')](respondWithResult(_0x4d02dc,0xc9))[_0x656d('0x43')](handleError(_0x4d02dc,null));};exports[_0x656d('0x24')]=function(_0x2bb379,_0x336228){if(_0x2bb379[_0x656d('0x49')]['id']){delete _0x2bb379[_0x656d('0x49')]['id'];}return db['ZohoConfiguration']['find']({'where':{'id':_0x2bb379[_0x656d('0x45')]['id']}})[_0x656d('0x25')](handleEntityNotFound(_0x336228,null))[_0x656d('0x25')](saveUpdates(_0x2bb379[_0x656d('0x49')],null))[_0x656d('0x25')](respondWithResult(_0x336228,null))[_0x656d('0x43')](handleError(_0x336228,null));};exports[_0x656d('0x26')]=function(_0x52a9b4,_0x4f1490){return db[_0x656d('0x2b')][_0x656d('0x47')]({'where':{'id':_0x52a9b4[_0x656d('0x45')]['id']}})['then'](handleEntityNotFound(_0x4f1490,null))[_0x656d('0x25')](removeEntity(_0x4f1490,null))[_0x656d('0x43')](handleError(_0x4f1490,null));};exports[_0x656d('0x4a')]=function(_0x202060,_0x532bcb,_0x60a49f){var _0x39b292={};var _0x55e2ab={};var _0x3ad4cf;var _0x262667;return db[_0x656d('0x2b')][_0x656d('0x4b')]({'where':{'id':_0x202060[_0x656d('0x45')]['id']}})['then'](handleEntityNotFound(_0x532bcb,null))[_0x656d('0x25')](function(_0x2a80b4){if(_0x2a80b4){_0x3ad4cf=_0x2a80b4;_0x55e2ab[_0x656d('0x32')]=_[_0x656d('0x30')](db[_0x656d('0x4c')]['rawAttributes']);_0x55e2ab['query']=_[_0x656d('0x30')](_0x202060['query']);_0x55e2ab['filters']=_[_0x656d('0x31')](_0x55e2ab[_0x656d('0x32')],_0x55e2ab[_0x656d('0x2f')]);_0x39b292[_0x656d('0x33')]=_[_0x656d('0x31')](_0x55e2ab[_0x656d('0x32')],qs[_0x656d('0x34')](_0x202060[_0x656d('0x2f')][_0x656d('0x34')]));_0x39b292[_0x656d('0x33')]=_0x39b292[_0x656d('0x33')][_0x656d('0x35')]?_0x39b292[_0x656d('0x33')]:_0x55e2ab[_0x656d('0x32')];_0x39b292[_0x656d('0x39')]=qs[_0x656d('0x3a')](_0x202060[_0x656d('0x2f')]['sort']);_0x39b292[_0x656d('0x3b')]=qs[_0x656d('0x3c')](_[_0x656d('0x4d')](_0x202060[_0x656d('0x2f')],_0x55e2ab['filters']));if(_0x202060[_0x656d('0x2f')][_0x656d('0x3d')]){_0x39b292[_0x656d('0x3b')]=_[_0x656d('0x46')](_0x39b292[_0x656d('0x3b')],{'$or':_[_0x656d('0x2a')](_0x39b292['attributes'],function(_0x4adb78){var _0x54b28e={};_0x54b28e[_0x4adb78]={'$like':'%'+_0x202060['query'][_0x656d('0x3d')]+'%'};return _0x54b28e;})});}_0x39b292=_['merge']({},_0x39b292,_0x202060['options']);return _0x3ad4cf[_0x656d('0x4a')](_0x39b292);}})[_0x656d('0x25')](function(_0x2644e2){if(_0x2644e2){_0x262667=_0x2644e2['length'];if(!_0x202060[_0x656d('0x2f')]['hasOwnProperty'](_0x656d('0x37'))){_0x39b292['limit']=qs['limit'](_0x202060['query'][_0x656d('0x38')]);_0x39b292['offset']=qs[_0x656d('0x1d')](_0x202060[_0x656d('0x2f')][_0x656d('0x1d')]);}return _0x3ad4cf[_0x656d('0x4a')](_0x39b292);}})[_0x656d('0x25')](function(_0x25bd75){if(_0x25bd75){return _0x25bd75?{'count':_0x262667,'rows':_0x25bd75}:null;}})[_0x656d('0x25')](respondWithResult(_0x532bcb,null))['catch'](handleError(_0x532bcb,null));};exports[_0x656d('0x4e')]=function(_0x440be4,_0x6cf55,_0x1c55e6){var _0x97fb99={};var _0x2235da={};var _0x2b1b3b;var _0x5ad5aa;return db['ZohoConfiguration'][_0x656d('0x4b')]({'where':{'id':_0x440be4[_0x656d('0x45')]['id']}})[_0x656d('0x25')](handleEntityNotFound(_0x6cf55,null))['then'](function(_0x2e9899){if(_0x2e9899){_0x2b1b3b=_0x2e9899;_0x2235da['model']=_[_0x656d('0x30')](db[_0x656d('0x4c')][_0x656d('0x2c')]);_0x2235da['query']=_[_0x656d('0x30')](_0x440be4[_0x656d('0x2f')]);_0x2235da[_0x656d('0x3c')]=_['intersection'](_0x2235da[_0x656d('0x32')],_0x2235da[_0x656d('0x2f')]);_0x97fb99[_0x656d('0x33')]=_['intersection'](_0x2235da['model'],qs[_0x656d('0x34')](_0x440be4[_0x656d('0x2f')]['fields']));_0x97fb99[_0x656d('0x33')]=_0x97fb99[_0x656d('0x33')][_0x656d('0x35')]?_0x97fb99[_0x656d('0x33')]:_0x2235da[_0x656d('0x32')];_0x97fb99[_0x656d('0x39')]=qs[_0x656d('0x3a')](_0x440be4[_0x656d('0x2f')]['sort']);_0x97fb99['where']=qs[_0x656d('0x3c')](_[_0x656d('0x4d')](_0x440be4[_0x656d('0x2f')],_0x2235da[_0x656d('0x3c')]));if(_0x440be4['query']['filter']){_0x97fb99[_0x656d('0x3b')]=_[_0x656d('0x46')](_0x97fb99['where'],{'$or':_[_0x656d('0x2a')](_0x97fb99[_0x656d('0x33')],function(_0x3062cd){var _0x3c2dba={};_0x3c2dba[_0x3062cd]={'$like':'%'+_0x440be4[_0x656d('0x2f')][_0x656d('0x3d')]+'%'};return _0x3c2dba;})});}_0x97fb99=_[_0x656d('0x46')]({},_0x97fb99,_0x440be4['options']);return _0x2b1b3b[_0x656d('0x4e')](_0x97fb99);}})[_0x656d('0x25')](function(_0xe002f4){if(_0xe002f4){_0x5ad5aa=_0xe002f4[_0x656d('0x35')];if(!_0x440be4[_0x656d('0x2f')][_0x656d('0x36')](_0x656d('0x37'))){_0x97fb99[_0x656d('0x38')]=qs[_0x656d('0x38')](_0x440be4['query'][_0x656d('0x38')]);_0x97fb99[_0x656d('0x1d')]=qs[_0x656d('0x1d')](_0x440be4[_0x656d('0x2f')][_0x656d('0x1d')]);}return _0x2b1b3b[_0x656d('0x4e')](_0x97fb99);}})[_0x656d('0x25')](function(_0x76805f){if(_0x76805f){return _0x76805f?{'count':_0x5ad5aa,'rows':_0x76805f}:null;}})[_0x656d('0x25')](respondWithResult(_0x6cf55,null))[_0x656d('0x43')](handleError(_0x6cf55,null));};exports['getDescriptions']=function(_0x58a42a,_0x201a1e,_0x2c2d8b){var _0x3c95a9={};var _0x166952={};var _0x4aac25;var _0x5e7aa9;return db['ZohoConfiguration'][_0x656d('0x4b')]({'where':{'id':_0x58a42a[_0x656d('0x45')]['id']}})['then'](handleEntityNotFound(_0x201a1e,null))['then'](function(_0x80422f){if(_0x80422f){_0x4aac25=_0x80422f;_0x166952[_0x656d('0x32')]=_[_0x656d('0x30')](db[_0x656d('0x4c')][_0x656d('0x2c')]);_0x166952[_0x656d('0x2f')]=_[_0x656d('0x30')](_0x58a42a[_0x656d('0x2f')]);_0x166952[_0x656d('0x3c')]=_[_0x656d('0x31')](_0x166952[_0x656d('0x32')],_0x166952[_0x656d('0x2f')]);_0x3c95a9['attributes']=_[_0x656d('0x31')](_0x166952[_0x656d('0x32')],qs[_0x656d('0x34')](_0x58a42a['query']['fields']));_0x3c95a9['attributes']=_0x3c95a9[_0x656d('0x33')]['length']?_0x3c95a9[_0x656d('0x33')]:_0x166952[_0x656d('0x32')];_0x3c95a9[_0x656d('0x39')]=qs[_0x656d('0x3a')](_0x58a42a[_0x656d('0x2f')]['sort']);_0x3c95a9[_0x656d('0x3b')]=qs[_0x656d('0x3c')](_[_0x656d('0x4d')](_0x58a42a[_0x656d('0x2f')],_0x166952[_0x656d('0x3c')]));if(_0x58a42a[_0x656d('0x2f')][_0x656d('0x3d')]){_0x3c95a9[_0x656d('0x3b')]=_[_0x656d('0x46')](_0x3c95a9[_0x656d('0x3b')],{'$or':_['map'](_0x3c95a9['attributes'],function(_0x167399){var _0x3c0275={};_0x3c0275[_0x167399]={'$like':'%'+_0x58a42a[_0x656d('0x2f')]['filter']+'%'};return _0x3c0275;})});}_0x3c95a9=_[_0x656d('0x46')]({},_0x3c95a9,_0x58a42a[_0x656d('0x4f')]);return _0x4aac25[_0x656d('0x50')](_0x3c95a9);}})[_0x656d('0x25')](function(_0x133842){if(_0x133842){_0x5e7aa9=_0x133842['length'];if(!_0x58a42a[_0x656d('0x2f')][_0x656d('0x36')]('nolimit')){_0x3c95a9[_0x656d('0x38')]=qs[_0x656d('0x38')](_0x58a42a['query'][_0x656d('0x38')]);_0x3c95a9[_0x656d('0x1d')]=qs[_0x656d('0x1d')](_0x58a42a['query'][_0x656d('0x1d')]);}return _0x4aac25[_0x656d('0x50')](_0x3c95a9);}})[_0x656d('0x25')](function(_0x539d87){if(_0x539d87){return _0x539d87?{'count':_0x5e7aa9,'rows':_0x539d87}:null;}})[_0x656d('0x25')](respondWithResult(_0x201a1e,null))[_0x656d('0x43')](handleError(_0x201a1e,null));};