cc927368dce6b95929846d2514cc3fbaacb57254
[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 _0x22ec=['type','key','model','query','keys','filters','intersection','attributes','length','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','ZohoConfiguration','includeAll','include','findAll','rows','catch','params','fields','find','create','body','destroy','getFields','findOne','ZohoField','order','hasOwnProperty','getSubjects','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','fs-extra','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','end','error','stack','name','send','map','rawAttributes','fieldName'];(function(_0x2b4411,_0x2625ed){var _0x8e41ef=function(_0x2aa8c1){while(--_0x2aa8c1){_0x2b4411['push'](_0x2b4411['shift']());}};_0x8e41ef(++_0x2625ed);}(_0x22ec,0x1a4));var _0xc22e=function(_0x104a67,_0x41bc3e){_0x104a67=_0x104a67-0x0;var _0x26013f=_0x22ec[_0x104a67];return _0x26013f;};'use strict';var emlformat=require(_0xc22e('0x0'));var rimraf=require(_0xc22e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc22e('0x2'));var rp=require(_0xc22e('0x3'));var moment=require(_0xc22e('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xc22e('0x5'));var util=require(_0xc22e('0x6'));var path=require('path');var sox=require(_0xc22e('0x7'));var csv=require(_0xc22e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc22e('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xc22e('0xa'));var jsforce=require(_0xc22e('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xc22e('0x8'));var querystring=require(_0xc22e('0xc'));var Papa=require(_0xc22e('0xd'));var Redis=require(_0xc22e('0xe'));var authService=require(_0xc22e('0xf'));var qs=require(_0xc22e('0x10'));var as=require(_0xc22e('0x11'));var hardwareService=require(_0xc22e('0x12'));var logger=require('../../config/logger')(_0xc22e('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xc22e('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x20a411,_0x27cf7a){_0x27cf7a=_0x27cf7a||0xcc;return function(_0x7c5360){if(_0x7c5360){return _0x20a411[_0xc22e('0x15')](_0x27cf7a);}return _0x20a411[_0xc22e('0x16')](_0x27cf7a)['end']();};}function respondWithResult(_0x1c2583,_0x36b5a0){_0x36b5a0=_0x36b5a0||0xc8;return function(_0x13b70b){if(_0x13b70b){return _0x1c2583[_0xc22e('0x16')](_0x36b5a0)[_0xc22e('0x17')](_0x13b70b);}};}function respondWithFilteredResult(_0x44173c,_0x55eb5b){return function(_0x55eb84){if(_0x55eb84){var _0x2553b4=typeof _0x55eb5b[_0xc22e('0x18')]===_0xc22e('0x19')&&typeof _0x55eb5b[_0xc22e('0x1a')]===_0xc22e('0x19');var _0x1fa4b9=_0x55eb84[_0xc22e('0x1b')];var _0x570145=_0x2553b4?0x0:_0x55eb5b[_0xc22e('0x18')];var _0x1450da=_0x2553b4?_0x55eb84[_0xc22e('0x1b')]:_0x55eb5b[_0xc22e('0x18')]+_0x55eb5b['limit'];var _0x3cd28f;if(_0x1450da>=_0x1fa4b9){_0x1450da=_0x1fa4b9;_0x3cd28f=0xc8;}else{_0x3cd28f=0xce;}_0x44173c[_0xc22e('0x16')](_0x3cd28f);return _0x44173c[_0xc22e('0x1c')](_0xc22e('0x1d'),_0x570145+'-'+_0x1450da+'/'+_0x1fa4b9)[_0xc22e('0x17')](_0x55eb84);}return null;};}function patchUpdates(_0x20bb36){return function(_0x205fd3){try{jsonpatch['apply'](_0x205fd3,_0x20bb36,!![]);}catch(_0x51ac5e){return BPromise[_0xc22e('0x1e')](_0x51ac5e);}return _0x205fd3[_0xc22e('0x1f')]();};}function saveUpdates(_0x51f7c6,_0x51d32f){return function(_0xefda85){if(_0xefda85){return _0xefda85[_0xc22e('0x20')](_0x51f7c6)[_0xc22e('0x21')](function(_0x27f576){return _0x27f576;});}return null;};}function removeEntity(_0x3785b5,_0x26eb9e){return function(_0x5ee14a){if(_0x5ee14a){return _0x5ee14a['destroy']()['then'](function(){_0x3785b5[_0xc22e('0x16')](0xcc)[_0xc22e('0x22')]();});}};}function handleEntityNotFound(_0x529fef,_0x5ad28d){return function(_0x2b81ee){if(!_0x2b81ee){_0x529fef['sendStatus'](0x194);}return _0x2b81ee;};}function handleError(_0x172ca0,_0x12ed6e){_0x12ed6e=_0x12ed6e||0x1f4;return function(_0x3260d3){logger[_0xc22e('0x23')](_0x3260d3[_0xc22e('0x24')]);if(_0x3260d3['name']){delete _0x3260d3[_0xc22e('0x25')];}_0x172ca0[_0xc22e('0x16')](_0x12ed6e)[_0xc22e('0x26')](_0x3260d3);};}exports['index']=function(_0x2e7ca7,_0x1f79e8){var _0x5e0948={},_0x29b654={},_0xf088ca={'count':0x0,'rows':[]};var _0x293fa1=_[_0xc22e('0x27')](db['ZohoConfiguration'][_0xc22e('0x28')],function(_0x1f5cd1){return{'name':_0x1f5cd1[_0xc22e('0x29')],'type':_0x1f5cd1[_0xc22e('0x2a')][_0xc22e('0x2b')]};});_0x29b654[_0xc22e('0x2c')]=_[_0xc22e('0x27')](_0x293fa1,_0xc22e('0x25'));_0x29b654[_0xc22e('0x2d')]=_[_0xc22e('0x2e')](_0x2e7ca7[_0xc22e('0x2d')]);_0x29b654[_0xc22e('0x2f')]=_[_0xc22e('0x30')](_0x29b654[_0xc22e('0x2c')],_0x29b654['query']);_0x5e0948[_0xc22e('0x31')]=_[_0xc22e('0x30')](_0x29b654[_0xc22e('0x2c')],qs['fields'](_0x2e7ca7[_0xc22e('0x2d')]['fields']));_0x5e0948['attributes']=_0x5e0948[_0xc22e('0x31')][_0xc22e('0x32')]?_0x5e0948[_0xc22e('0x31')]:_0x29b654[_0xc22e('0x2c')];if(!_0x2e7ca7[_0xc22e('0x2d')]['hasOwnProperty'](_0xc22e('0x33'))){_0x5e0948[_0xc22e('0x1a')]=qs[_0xc22e('0x1a')](_0x2e7ca7[_0xc22e('0x2d')][_0xc22e('0x1a')]);_0x5e0948[_0xc22e('0x18')]=qs['offset'](_0x2e7ca7['query']['offset']);}_0x5e0948['order']=qs[_0xc22e('0x34')](_0x2e7ca7[_0xc22e('0x2d')][_0xc22e('0x34')]);_0x5e0948[_0xc22e('0x35')]=qs[_0xc22e('0x2f')](_[_0xc22e('0x36')](_0x2e7ca7[_0xc22e('0x2d')],_0x29b654[_0xc22e('0x2f')]),_0x293fa1);if(_0x2e7ca7[_0xc22e('0x2d')]['filter']){_0x5e0948[_0xc22e('0x35')]=_[_0xc22e('0x37')](_0x5e0948['where'],{'$or':_[_0xc22e('0x27')](_0x293fa1,function(_0x1dcba1){if(_0x1dcba1['type']!==_0xc22e('0x38')){var _0x50f6c0={};_0x50f6c0[_0x1dcba1[_0xc22e('0x25')]]={'$like':'%'+_0x2e7ca7[_0xc22e('0x2d')][_0xc22e('0x39')]+'%'};return _0x50f6c0;}})});}_0x5e0948=_['merge']({},_0x5e0948,_0x2e7ca7[_0xc22e('0x3a')]);var _0x5acf24={'where':_0x5e0948['where']};return db[_0xc22e('0x3b')][_0xc22e('0x1b')](_0x5acf24)[_0xc22e('0x21')](function(_0x3c7a4a){_0xf088ca[_0xc22e('0x1b')]=_0x3c7a4a;if(_0x2e7ca7['query'][_0xc22e('0x3c')]){_0x5e0948[_0xc22e('0x3d')]=[{'all':!![]}];}return db[_0xc22e('0x3b')][_0xc22e('0x3e')](_0x5e0948);})['then'](function(_0x216b10){_0xf088ca[_0xc22e('0x3f')]=_0x216b10;return _0xf088ca;})[_0xc22e('0x21')](respondWithFilteredResult(_0x1f79e8,_0x5e0948))[_0xc22e('0x40')](handleError(_0x1f79e8,null));};exports['show']=function(_0x49db7c,_0x4a660b){var _0x239b1b={'raw':![],'where':{'id':_0x49db7c[_0xc22e('0x41')]['id']}},_0x2927e6={};_0x2927e6[_0xc22e('0x2c')]=_[_0xc22e('0x2e')](db[_0xc22e('0x3b')]['rawAttributes']);_0x2927e6[_0xc22e('0x2d')]=_[_0xc22e('0x2e')](_0x49db7c[_0xc22e('0x2d')]);_0x2927e6['filters']=_[_0xc22e('0x30')](_0x2927e6[_0xc22e('0x2c')],_0x2927e6[_0xc22e('0x2d')]);_0x239b1b[_0xc22e('0x31')]=_['intersection'](_0x2927e6[_0xc22e('0x2c')],qs['fields'](_0x49db7c[_0xc22e('0x2d')][_0xc22e('0x42')]));_0x239b1b[_0xc22e('0x31')]=_0x239b1b[_0xc22e('0x31')][_0xc22e('0x32')]?_0x239b1b['attributes']:_0x2927e6[_0xc22e('0x2c')];if(_0x49db7c[_0xc22e('0x2d')][_0xc22e('0x3c')]){_0x239b1b['include']=[{'all':!![]}];}_0x239b1b=_[_0xc22e('0x37')]({},_0x239b1b,_0x49db7c[_0xc22e('0x3a')]);return db[_0xc22e('0x3b')][_0xc22e('0x43')](_0x239b1b)[_0xc22e('0x21')](handleEntityNotFound(_0x4a660b,null))[_0xc22e('0x21')](respondWithResult(_0x4a660b,null))[_0xc22e('0x40')](handleError(_0x4a660b,null));};exports['create']=function(_0x3aaaf5,_0x4c70a4){return db[_0xc22e('0x3b')][_0xc22e('0x44')](_0x3aaaf5[_0xc22e('0x45')],{})[_0xc22e('0x21')](respondWithResult(_0x4c70a4,0xc9))[_0xc22e('0x40')](handleError(_0x4c70a4,null));};exports[_0xc22e('0x20')]=function(_0x382ea2,_0x28b183){if(_0x382ea2[_0xc22e('0x45')]['id']){delete _0x382ea2[_0xc22e('0x45')]['id'];}return db['ZohoConfiguration'][_0xc22e('0x43')]({'where':{'id':_0x382ea2[_0xc22e('0x41')]['id']}})[_0xc22e('0x21')](handleEntityNotFound(_0x28b183,null))[_0xc22e('0x21')](saveUpdates(_0x382ea2[_0xc22e('0x45')],null))[_0xc22e('0x21')](respondWithResult(_0x28b183,null))[_0xc22e('0x40')](handleError(_0x28b183,null));};exports[_0xc22e('0x46')]=function(_0x23269c,_0x256ff0){return db[_0xc22e('0x3b')][_0xc22e('0x43')]({'where':{'id':_0x23269c[_0xc22e('0x41')]['id']}})['then'](handleEntityNotFound(_0x256ff0,null))[_0xc22e('0x21')](removeEntity(_0x256ff0,null))['catch'](handleError(_0x256ff0,null));};exports[_0xc22e('0x47')]=function(_0xaf5317,_0x1938da,_0x469f41){var _0x1c3d46={};var _0x4970bd={};var _0x146c74;var _0x4366a1;return db[_0xc22e('0x3b')][_0xc22e('0x48')]({'where':{'id':_0xaf5317[_0xc22e('0x41')]['id']}})[_0xc22e('0x21')](handleEntityNotFound(_0x1938da,null))[_0xc22e('0x21')](function(_0x2467cd){if(_0x2467cd){_0x146c74=_0x2467cd;_0x4970bd['model']=_[_0xc22e('0x2e')](db[_0xc22e('0x49')][_0xc22e('0x28')]);_0x4970bd[_0xc22e('0x2d')]=_[_0xc22e('0x2e')](_0xaf5317['query']);_0x4970bd['filters']=_[_0xc22e('0x30')](_0x4970bd['model'],_0x4970bd[_0xc22e('0x2d')]);_0x1c3d46[_0xc22e('0x31')]=_[_0xc22e('0x30')](_0x4970bd[_0xc22e('0x2c')],qs['fields'](_0xaf5317[_0xc22e('0x2d')][_0xc22e('0x42')]));_0x1c3d46[_0xc22e('0x31')]=_0x1c3d46[_0xc22e('0x31')][_0xc22e('0x32')]?_0x1c3d46['attributes']:_0x4970bd[_0xc22e('0x2c')];_0x1c3d46[_0xc22e('0x4a')]=qs['sort'](_0xaf5317['query']['sort']);_0x1c3d46[_0xc22e('0x35')]=qs[_0xc22e('0x2f')](_[_0xc22e('0x36')](_0xaf5317[_0xc22e('0x2d')],_0x4970bd[_0xc22e('0x2f')]));if(_0xaf5317[_0xc22e('0x2d')][_0xc22e('0x39')]){_0x1c3d46['where']=_[_0xc22e('0x37')](_0x1c3d46['where'],{'$or':_[_0xc22e('0x27')](_0x1c3d46['attributes'],function(_0x20e1fb){var _0x3f37ee={};_0x3f37ee[_0x20e1fb]={'$like':'%'+_0xaf5317['query'][_0xc22e('0x39')]+'%'};return _0x3f37ee;})});}_0x1c3d46=_['merge']({},_0x1c3d46,_0xaf5317['options']);return _0x146c74['getFields'](_0x1c3d46);}})[_0xc22e('0x21')](function(_0x2cca20){if(_0x2cca20){_0x4366a1=_0x2cca20[_0xc22e('0x32')];if(!_0xaf5317[_0xc22e('0x2d')][_0xc22e('0x4b')](_0xc22e('0x33'))){_0x1c3d46['limit']=qs[_0xc22e('0x1a')](_0xaf5317[_0xc22e('0x2d')][_0xc22e('0x1a')]);_0x1c3d46['offset']=qs[_0xc22e('0x18')](_0xaf5317[_0xc22e('0x2d')][_0xc22e('0x18')]);}return _0x146c74['getFields'](_0x1c3d46);}})[_0xc22e('0x21')](function(_0x20d6e8){if(_0x20d6e8){return _0x20d6e8?{'count':_0x4366a1,'rows':_0x20d6e8}:null;}})[_0xc22e('0x21')](respondWithResult(_0x1938da,null))[_0xc22e('0x40')](handleError(_0x1938da,null));};exports[_0xc22e('0x4c')]=function(_0x4aa785,_0x1145fe,_0x1c4777){var _0x331b4e={};var _0x26aa8e={};var _0x47be81;var _0x5df96d;return db[_0xc22e('0x3b')][_0xc22e('0x48')]({'where':{'id':_0x4aa785['params']['id']}})['then'](handleEntityNotFound(_0x1145fe,null))['then'](function(_0x2eb495){if(_0x2eb495){_0x47be81=_0x2eb495;_0x26aa8e[_0xc22e('0x2c')]=_['keys'](db[_0xc22e('0x49')]['rawAttributes']);_0x26aa8e['query']=_[_0xc22e('0x2e')](_0x4aa785['query']);_0x26aa8e[_0xc22e('0x2f')]=_['intersection'](_0x26aa8e[_0xc22e('0x2c')],_0x26aa8e[_0xc22e('0x2d')]);_0x331b4e['attributes']=_[_0xc22e('0x30')](_0x26aa8e[_0xc22e('0x2c')],qs['fields'](_0x4aa785[_0xc22e('0x2d')][_0xc22e('0x42')]));_0x331b4e[_0xc22e('0x31')]=_0x331b4e[_0xc22e('0x31')][_0xc22e('0x32')]?_0x331b4e[_0xc22e('0x31')]:_0x26aa8e[_0xc22e('0x2c')];_0x331b4e[_0xc22e('0x4a')]=qs['sort'](_0x4aa785[_0xc22e('0x2d')][_0xc22e('0x34')]);_0x331b4e[_0xc22e('0x35')]=qs['filters'](_['pick'](_0x4aa785[_0xc22e('0x2d')],_0x26aa8e['filters']));if(_0x4aa785[_0xc22e('0x2d')][_0xc22e('0x39')]){_0x331b4e['where']=_[_0xc22e('0x37')](_0x331b4e[_0xc22e('0x35')],{'$or':_[_0xc22e('0x27')](_0x331b4e[_0xc22e('0x31')],function(_0x207497){var _0x5e91bb={};_0x5e91bb[_0x207497]={'$like':'%'+_0x4aa785[_0xc22e('0x2d')]['filter']+'%'};return _0x5e91bb;})});}_0x331b4e=_[_0xc22e('0x37')]({},_0x331b4e,_0x4aa785[_0xc22e('0x3a')]);return _0x47be81[_0xc22e('0x4c')](_0x331b4e);}})[_0xc22e('0x21')](function(_0x2703c7){if(_0x2703c7){_0x5df96d=_0x2703c7['length'];if(!_0x4aa785[_0xc22e('0x2d')][_0xc22e('0x4b')](_0xc22e('0x33'))){_0x331b4e[_0xc22e('0x1a')]=qs['limit'](_0x4aa785[_0xc22e('0x2d')][_0xc22e('0x1a')]);_0x331b4e[_0xc22e('0x18')]=qs[_0xc22e('0x18')](_0x4aa785[_0xc22e('0x2d')][_0xc22e('0x18')]);}return _0x47be81[_0xc22e('0x4c')](_0x331b4e);}})[_0xc22e('0x21')](function(_0x257781){if(_0x257781){return _0x257781?{'count':_0x5df96d,'rows':_0x257781}:null;}})[_0xc22e('0x21')](respondWithResult(_0x1145fe,null))[_0xc22e('0x40')](handleError(_0x1145fe,null));};exports['getDescriptions']=function(_0x1497e8,_0x2238c1,_0x37b1aa){var _0x5d4d1b={};var _0x112ae1={};var _0x357815;var _0x1e197f;return db[_0xc22e('0x3b')][_0xc22e('0x48')]({'where':{'id':_0x1497e8[_0xc22e('0x41')]['id']}})[_0xc22e('0x21')](handleEntityNotFound(_0x2238c1,null))[_0xc22e('0x21')](function(_0x1bd972){if(_0x1bd972){_0x357815=_0x1bd972;_0x112ae1[_0xc22e('0x2c')]=_['keys'](db[_0xc22e('0x49')][_0xc22e('0x28')]);_0x112ae1[_0xc22e('0x2d')]=_[_0xc22e('0x2e')](_0x1497e8[_0xc22e('0x2d')]);_0x112ae1[_0xc22e('0x2f')]=_[_0xc22e('0x30')](_0x112ae1[_0xc22e('0x2c')],_0x112ae1[_0xc22e('0x2d')]);_0x5d4d1b['attributes']=_[_0xc22e('0x30')](_0x112ae1[_0xc22e('0x2c')],qs['fields'](_0x1497e8[_0xc22e('0x2d')][_0xc22e('0x42')]));_0x5d4d1b[_0xc22e('0x31')]=_0x5d4d1b['attributes'][_0xc22e('0x32')]?_0x5d4d1b[_0xc22e('0x31')]:_0x112ae1['model'];_0x5d4d1b[_0xc22e('0x4a')]=qs[_0xc22e('0x34')](_0x1497e8[_0xc22e('0x2d')]['sort']);_0x5d4d1b[_0xc22e('0x35')]=qs['filters'](_['pick'](_0x1497e8[_0xc22e('0x2d')],_0x112ae1[_0xc22e('0x2f')]));if(_0x1497e8['query']['filter']){_0x5d4d1b[_0xc22e('0x35')]=_[_0xc22e('0x37')](_0x5d4d1b[_0xc22e('0x35')],{'$or':_['map'](_0x5d4d1b['attributes'],function(_0x463653){var _0x1ece35={};_0x1ece35[_0x463653]={'$like':'%'+_0x1497e8[_0xc22e('0x2d')][_0xc22e('0x39')]+'%'};return _0x1ece35;})});}_0x5d4d1b=_[_0xc22e('0x37')]({},_0x5d4d1b,_0x1497e8[_0xc22e('0x3a')]);return _0x357815['getDescriptions'](_0x5d4d1b);}})[_0xc22e('0x21')](function(_0x459eef){if(_0x459eef){_0x1e197f=_0x459eef[_0xc22e('0x32')];if(!_0x1497e8['query'][_0xc22e('0x4b')](_0xc22e('0x33'))){_0x5d4d1b['limit']=qs[_0xc22e('0x1a')](_0x1497e8[_0xc22e('0x2d')]['limit']);_0x5d4d1b['offset']=qs[_0xc22e('0x18')](_0x1497e8[_0xc22e('0x2d')][_0xc22e('0x18')]);}return _0x357815['getDescriptions'](_0x5d4d1b);}})['then'](function(_0x4fc771){if(_0x4fc771){return _0x4fc771?{'count':_0x1e197f,'rows':_0x4fc771}:null;}})['then'](respondWithResult(_0x2238c1,null))[_0xc22e('0x40')](handleError(_0x2238c1,null));};