d29cb1197840f323c1a1f1c8d365aa8d2ec0f6d3
[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 _0x5e88=['squel','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','end','json','undefined','limit','count','offset','status','Content-Range','apply','save','then','error','stack','name','send','index','map','ZohoConfiguration','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','catch','show','params','intersection','fields','include','options','create','body','update','find','getFields','ZohoField','getSubjects','getDescriptions','findOne','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs'];(function(_0x3989fd,_0xe5fc6c){var _0x316fd2=function(_0x2d8684){while(--_0x2d8684){_0x3989fd['push'](_0x3989fd['shift']());}};_0x316fd2(++_0xe5fc6c);}(_0x5e88,0xd7));var _0x85e8=function(_0x404f07,_0x594ed1){_0x404f07=_0x404f07-0x0;var _0x524b34=_0x5e88[_0x404f07];return _0x524b34;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x85e8('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x85e8('0x1'));var rp=require(_0x85e8('0x2'));var moment=require(_0x85e8('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x85e8('0x4'));var util=require(_0x85e8('0x5'));var path=require(_0x85e8('0x6'));var sox=require(_0x85e8('0x7'));var csv=require(_0x85e8('0x8'));var ejs=require(_0x85e8('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x85e8('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x85e8('0xb'));var toCsv=require(_0x85e8('0x8'));var querystring=require(_0x85e8('0xc'));var Papa=require(_0x85e8('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x85e8('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x85e8('0xf'));var logger=require(_0x85e8('0x10'))(_0x85e8('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x85e8('0x12'));var db=require(_0x85e8('0x13'))['db'];function respondWithStatusCode(_0x4e4b69,_0x456def){_0x456def=_0x456def||0xcc;return function(_0x10e5e3){if(_0x10e5e3){return _0x4e4b69[_0x85e8('0x14')](_0x456def);}return _0x4e4b69['status'](_0x456def)[_0x85e8('0x15')]();};}function respondWithResult(_0xafb43,_0x3c7f1c){_0x3c7f1c=_0x3c7f1c||0xc8;return function(_0x4b6726){if(_0x4b6726){return _0xafb43['status'](_0x3c7f1c)[_0x85e8('0x16')](_0x4b6726);}};}function respondWithFilteredResult(_0x292545,_0x3427dd){return function(_0x504f78){if(_0x504f78){var _0x1bad6a=typeof _0x3427dd['offset']===_0x85e8('0x17')&&typeof _0x3427dd[_0x85e8('0x18')]===_0x85e8('0x17');var _0x32dade=_0x504f78[_0x85e8('0x19')];var _0x42f843=_0x1bad6a?0x0:_0x3427dd[_0x85e8('0x1a')];var _0x1342eb=_0x1bad6a?_0x504f78[_0x85e8('0x19')]:_0x3427dd['offset']+_0x3427dd['limit'];var _0x31c793;if(_0x1342eb>=_0x32dade){_0x1342eb=_0x32dade;_0x31c793=0xc8;}else{_0x31c793=0xce;}_0x292545[_0x85e8('0x1b')](_0x31c793);return _0x292545['set'](_0x85e8('0x1c'),_0x42f843+'-'+_0x1342eb+'/'+_0x32dade)[_0x85e8('0x16')](_0x504f78);}return null;};}function patchUpdates(_0x241165){return function(_0x3e9f48){try{jsonpatch[_0x85e8('0x1d')](_0x3e9f48,_0x241165,!![]);}catch(_0x3303e2){return BPromise['reject'](_0x3303e2);}return _0x3e9f48[_0x85e8('0x1e')]();};}function saveUpdates(_0x2f98ba,_0x1688a4){return function(_0x21abd9){if(_0x21abd9){return _0x21abd9['update'](_0x2f98ba)[_0x85e8('0x1f')](function(_0x4ce2ea){return _0x4ce2ea;});}return null;};}function removeEntity(_0x2bbef8,_0x1d6119){return function(_0x992bd5){if(_0x992bd5){return _0x992bd5['destroy']()['then'](function(){_0x2bbef8[_0x85e8('0x1b')](0xcc)[_0x85e8('0x15')]();});}};}function handleEntityNotFound(_0x2e1487,_0x31d47b){return function(_0x523eb3){if(!_0x523eb3){_0x2e1487[_0x85e8('0x14')](0x194);}return _0x523eb3;};}function handleError(_0x4df6c1,_0x1907f){_0x1907f=_0x1907f||0x1f4;return function(_0x24075b){logger[_0x85e8('0x20')](_0x24075b[_0x85e8('0x21')]);if(_0x24075b[_0x85e8('0x22')]){delete _0x24075b['name'];}_0x4df6c1[_0x85e8('0x1b')](_0x1907f)[_0x85e8('0x23')](_0x24075b);};}exports[_0x85e8('0x24')]=function(_0xa71dfe,_0x76ea39){var _0x23b4c6={},_0x520270={},_0x90960c={'count':0x0,'rows':[]};var _0x514be8=_[_0x85e8('0x25')](db[_0x85e8('0x26')][_0x85e8('0x27')],function(_0x2b296f){return{'name':_0x2b296f[_0x85e8('0x28')],'type':_0x2b296f[_0x85e8('0x29')][_0x85e8('0x2a')]};});_0x520270[_0x85e8('0x2b')]=_[_0x85e8('0x25')](_0x514be8,'name');_0x520270['query']=_[_0x85e8('0x2c')](_0xa71dfe[_0x85e8('0x2d')]);_0x520270[_0x85e8('0x2e')]=_['intersection'](_0x520270[_0x85e8('0x2b')],_0x520270[_0x85e8('0x2d')]);_0x23b4c6[_0x85e8('0x2f')]=_['intersection'](_0x520270[_0x85e8('0x2b')],qs['fields'](_0xa71dfe[_0x85e8('0x2d')]['fields']));_0x23b4c6['attributes']=_0x23b4c6[_0x85e8('0x2f')][_0x85e8('0x30')]?_0x23b4c6[_0x85e8('0x2f')]:_0x520270[_0x85e8('0x2b')];if(!_0xa71dfe['query'][_0x85e8('0x31')](_0x85e8('0x32'))){_0x23b4c6[_0x85e8('0x18')]=qs[_0x85e8('0x18')](_0xa71dfe[_0x85e8('0x2d')][_0x85e8('0x18')]);_0x23b4c6[_0x85e8('0x1a')]=qs[_0x85e8('0x1a')](_0xa71dfe[_0x85e8('0x2d')][_0x85e8('0x1a')]);}_0x23b4c6[_0x85e8('0x33')]=qs[_0x85e8('0x34')](_0xa71dfe[_0x85e8('0x2d')]['sort']);_0x23b4c6[_0x85e8('0x35')]=qs[_0x85e8('0x2e')](_[_0x85e8('0x36')](_0xa71dfe[_0x85e8('0x2d')],_0x520270[_0x85e8('0x2e')]),_0x514be8);if(_0xa71dfe[_0x85e8('0x2d')][_0x85e8('0x37')]){_0x23b4c6[_0x85e8('0x35')]=_[_0x85e8('0x38')](_0x23b4c6[_0x85e8('0x35')],{'$or':_[_0x85e8('0x25')](_0x514be8,function(_0x37d233){if(_0x37d233['type']!==_0x85e8('0x39')){var _0x160a3d={};_0x160a3d[_0x37d233[_0x85e8('0x22')]]={'$like':'%'+_0xa71dfe[_0x85e8('0x2d')][_0x85e8('0x37')]+'%'};return _0x160a3d;}})});}_0x23b4c6=_[_0x85e8('0x38')]({},_0x23b4c6,_0xa71dfe['options']);var _0x4f3be9={'where':_0x23b4c6[_0x85e8('0x35')]};return db[_0x85e8('0x26')][_0x85e8('0x19')](_0x4f3be9)['then'](function(_0x38e9e0){_0x90960c['count']=_0x38e9e0;if(_0xa71dfe[_0x85e8('0x2d')][_0x85e8('0x3a')]){_0x23b4c6['include']=[{'all':!![]}];}return db[_0x85e8('0x26')]['findAll'](_0x23b4c6);})['then'](function(_0x5a09eb){_0x90960c['rows']=_0x5a09eb;return _0x90960c;})['then'](respondWithFilteredResult(_0x76ea39,_0x23b4c6))[_0x85e8('0x3b')](handleError(_0x76ea39,null));};exports[_0x85e8('0x3c')]=function(_0x4ca9ea,_0xdacd0f){var _0x22c797={'raw':![],'where':{'id':_0x4ca9ea[_0x85e8('0x3d')]['id']}},_0x2dee06={};_0x2dee06[_0x85e8('0x2b')]=_[_0x85e8('0x2c')](db[_0x85e8('0x26')][_0x85e8('0x27')]);_0x2dee06[_0x85e8('0x2d')]=_[_0x85e8('0x2c')](_0x4ca9ea[_0x85e8('0x2d')]);_0x2dee06['filters']=_[_0x85e8('0x3e')](_0x2dee06[_0x85e8('0x2b')],_0x2dee06[_0x85e8('0x2d')]);_0x22c797['attributes']=_['intersection'](_0x2dee06[_0x85e8('0x2b')],qs[_0x85e8('0x3f')](_0x4ca9ea[_0x85e8('0x2d')]['fields']));_0x22c797[_0x85e8('0x2f')]=_0x22c797[_0x85e8('0x2f')][_0x85e8('0x30')]?_0x22c797[_0x85e8('0x2f')]:_0x2dee06[_0x85e8('0x2b')];if(_0x4ca9ea[_0x85e8('0x2d')][_0x85e8('0x3a')]){_0x22c797[_0x85e8('0x40')]=[{'all':!![]}];}_0x22c797=_[_0x85e8('0x38')]({},_0x22c797,_0x4ca9ea[_0x85e8('0x41')]);return db['ZohoConfiguration']['find'](_0x22c797)[_0x85e8('0x1f')](handleEntityNotFound(_0xdacd0f,null))[_0x85e8('0x1f')](respondWithResult(_0xdacd0f,null))[_0x85e8('0x3b')](handleError(_0xdacd0f,null));};exports['create']=function(_0x492f88,_0x4bad74){return db['ZohoConfiguration'][_0x85e8('0x42')](_0x492f88[_0x85e8('0x43')],{})[_0x85e8('0x1f')](respondWithResult(_0x4bad74,0xc9))[_0x85e8('0x3b')](handleError(_0x4bad74,null));};exports[_0x85e8('0x44')]=function(_0x101dd1,_0x49fb16){if(_0x101dd1[_0x85e8('0x43')]['id']){delete _0x101dd1[_0x85e8('0x43')]['id'];}return db['ZohoConfiguration'][_0x85e8('0x45')]({'where':{'id':_0x101dd1[_0x85e8('0x3d')]['id']}})[_0x85e8('0x1f')](handleEntityNotFound(_0x49fb16,null))['then'](saveUpdates(_0x101dd1[_0x85e8('0x43')],null))[_0x85e8('0x1f')](respondWithResult(_0x49fb16,null))[_0x85e8('0x3b')](handleError(_0x49fb16,null));};exports['destroy']=function(_0x2326a8,_0x51df90){return db[_0x85e8('0x26')][_0x85e8('0x45')]({'where':{'id':_0x2326a8[_0x85e8('0x3d')]['id']}})[_0x85e8('0x1f')](handleEntityNotFound(_0x51df90,null))[_0x85e8('0x1f')](removeEntity(_0x51df90,null))['catch'](handleError(_0x51df90,null));};exports[_0x85e8('0x46')]=function(_0x2bb3a8,_0x195f8a,_0x5d647b){var _0x295fa2={};var _0x3f12f9={};var _0x5546ca;var _0xf4ce9;return db[_0x85e8('0x26')]['findOne']({'where':{'id':_0x2bb3a8[_0x85e8('0x3d')]['id']}})['then'](handleEntityNotFound(_0x195f8a,null))[_0x85e8('0x1f')](function(_0x1fd55f){if(_0x1fd55f){_0x5546ca=_0x1fd55f;_0x3f12f9[_0x85e8('0x2b')]=_[_0x85e8('0x2c')](db[_0x85e8('0x47')][_0x85e8('0x27')]);_0x3f12f9[_0x85e8('0x2d')]=_[_0x85e8('0x2c')](_0x2bb3a8[_0x85e8('0x2d')]);_0x3f12f9[_0x85e8('0x2e')]=_[_0x85e8('0x3e')](_0x3f12f9[_0x85e8('0x2b')],_0x3f12f9['query']);_0x295fa2[_0x85e8('0x2f')]=_[_0x85e8('0x3e')](_0x3f12f9[_0x85e8('0x2b')],qs['fields'](_0x2bb3a8[_0x85e8('0x2d')]['fields']));_0x295fa2[_0x85e8('0x2f')]=_0x295fa2[_0x85e8('0x2f')][_0x85e8('0x30')]?_0x295fa2[_0x85e8('0x2f')]:_0x3f12f9['model'];_0x295fa2[_0x85e8('0x33')]=qs[_0x85e8('0x34')](_0x2bb3a8[_0x85e8('0x2d')][_0x85e8('0x34')]);_0x295fa2['where']=qs[_0x85e8('0x2e')](_[_0x85e8('0x36')](_0x2bb3a8[_0x85e8('0x2d')],_0x3f12f9['filters']));if(_0x2bb3a8['query']['filter']){_0x295fa2[_0x85e8('0x35')]=_[_0x85e8('0x38')](_0x295fa2[_0x85e8('0x35')],{'$or':_['map'](_0x295fa2[_0x85e8('0x2f')],function(_0xd76d23){var _0x10f847={};_0x10f847[_0xd76d23]={'$like':'%'+_0x2bb3a8[_0x85e8('0x2d')][_0x85e8('0x37')]+'%'};return _0x10f847;})});}_0x295fa2=_[_0x85e8('0x38')]({},_0x295fa2,_0x2bb3a8[_0x85e8('0x41')]);return _0x5546ca['getFields'](_0x295fa2);}})['then'](function(_0x225ed0){if(_0x225ed0){_0xf4ce9=_0x225ed0[_0x85e8('0x30')];if(!_0x2bb3a8[_0x85e8('0x2d')][_0x85e8('0x31')](_0x85e8('0x32'))){_0x295fa2[_0x85e8('0x18')]=qs['limit'](_0x2bb3a8[_0x85e8('0x2d')]['limit']);_0x295fa2[_0x85e8('0x1a')]=qs[_0x85e8('0x1a')](_0x2bb3a8[_0x85e8('0x2d')][_0x85e8('0x1a')]);}return _0x5546ca['getFields'](_0x295fa2);}})[_0x85e8('0x1f')](function(_0x3bed90){if(_0x3bed90){return _0x3bed90?{'count':_0xf4ce9,'rows':_0x3bed90}:null;}})['then'](respondWithResult(_0x195f8a,null))[_0x85e8('0x3b')](handleError(_0x195f8a,null));};exports[_0x85e8('0x48')]=function(_0x5b69d2,_0x14cd39,_0x424273){var _0xf1654b={};var _0x528b13={};var _0x2c8c7e;var _0x3ca0f8;return db[_0x85e8('0x26')]['findOne']({'where':{'id':_0x5b69d2[_0x85e8('0x3d')]['id']}})[_0x85e8('0x1f')](handleEntityNotFound(_0x14cd39,null))[_0x85e8('0x1f')](function(_0x44e25d){if(_0x44e25d){_0x2c8c7e=_0x44e25d;_0x528b13[_0x85e8('0x2b')]=_[_0x85e8('0x2c')](db[_0x85e8('0x47')]['rawAttributes']);_0x528b13[_0x85e8('0x2d')]=_[_0x85e8('0x2c')](_0x5b69d2[_0x85e8('0x2d')]);_0x528b13[_0x85e8('0x2e')]=_[_0x85e8('0x3e')](_0x528b13[_0x85e8('0x2b')],_0x528b13[_0x85e8('0x2d')]);_0xf1654b[_0x85e8('0x2f')]=_['intersection'](_0x528b13[_0x85e8('0x2b')],qs[_0x85e8('0x3f')](_0x5b69d2[_0x85e8('0x2d')]['fields']));_0xf1654b[_0x85e8('0x2f')]=_0xf1654b['attributes'][_0x85e8('0x30')]?_0xf1654b['attributes']:_0x528b13[_0x85e8('0x2b')];_0xf1654b[_0x85e8('0x33')]=qs[_0x85e8('0x34')](_0x5b69d2[_0x85e8('0x2d')][_0x85e8('0x34')]);_0xf1654b[_0x85e8('0x35')]=qs[_0x85e8('0x2e')](_[_0x85e8('0x36')](_0x5b69d2[_0x85e8('0x2d')],_0x528b13[_0x85e8('0x2e')]));if(_0x5b69d2['query'][_0x85e8('0x37')]){_0xf1654b[_0x85e8('0x35')]=_['merge'](_0xf1654b['where'],{'$or':_[_0x85e8('0x25')](_0xf1654b[_0x85e8('0x2f')],function(_0x1f8c24){var _0x120c56={};_0x120c56[_0x1f8c24]={'$like':'%'+_0x5b69d2[_0x85e8('0x2d')][_0x85e8('0x37')]+'%'};return _0x120c56;})});}_0xf1654b=_[_0x85e8('0x38')]({},_0xf1654b,_0x5b69d2[_0x85e8('0x41')]);return _0x2c8c7e[_0x85e8('0x48')](_0xf1654b);}})[_0x85e8('0x1f')](function(_0x37215b){if(_0x37215b){_0x3ca0f8=_0x37215b[_0x85e8('0x30')];if(!_0x5b69d2['query'][_0x85e8('0x31')](_0x85e8('0x32'))){_0xf1654b[_0x85e8('0x18')]=qs[_0x85e8('0x18')](_0x5b69d2[_0x85e8('0x2d')][_0x85e8('0x18')]);_0xf1654b[_0x85e8('0x1a')]=qs[_0x85e8('0x1a')](_0x5b69d2[_0x85e8('0x2d')]['offset']);}return _0x2c8c7e[_0x85e8('0x48')](_0xf1654b);}})[_0x85e8('0x1f')](function(_0x10b7bf){if(_0x10b7bf){return _0x10b7bf?{'count':_0x3ca0f8,'rows':_0x10b7bf}:null;}})[_0x85e8('0x1f')](respondWithResult(_0x14cd39,null))[_0x85e8('0x3b')](handleError(_0x14cd39,null));};exports[_0x85e8('0x49')]=function(_0x5d4c78,_0x3e621f,_0x1a23a1){var _0x21cf08={};var _0x5415c6={};var _0x3a9aad;var _0x193011;return db['ZohoConfiguration'][_0x85e8('0x4a')]({'where':{'id':_0x5d4c78[_0x85e8('0x3d')]['id']}})[_0x85e8('0x1f')](handleEntityNotFound(_0x3e621f,null))['then'](function(_0x40dcc1){if(_0x40dcc1){_0x3a9aad=_0x40dcc1;_0x5415c6[_0x85e8('0x2b')]=_[_0x85e8('0x2c')](db[_0x85e8('0x47')]['rawAttributes']);_0x5415c6[_0x85e8('0x2d')]=_[_0x85e8('0x2c')](_0x5d4c78[_0x85e8('0x2d')]);_0x5415c6[_0x85e8('0x2e')]=_[_0x85e8('0x3e')](_0x5415c6['model'],_0x5415c6[_0x85e8('0x2d')]);_0x21cf08[_0x85e8('0x2f')]=_['intersection'](_0x5415c6['model'],qs[_0x85e8('0x3f')](_0x5d4c78[_0x85e8('0x2d')][_0x85e8('0x3f')]));_0x21cf08[_0x85e8('0x2f')]=_0x21cf08[_0x85e8('0x2f')][_0x85e8('0x30')]?_0x21cf08[_0x85e8('0x2f')]:_0x5415c6['model'];_0x21cf08[_0x85e8('0x33')]=qs[_0x85e8('0x34')](_0x5d4c78[_0x85e8('0x2d')]['sort']);_0x21cf08['where']=qs[_0x85e8('0x2e')](_[_0x85e8('0x36')](_0x5d4c78[_0x85e8('0x2d')],_0x5415c6[_0x85e8('0x2e')]));if(_0x5d4c78[_0x85e8('0x2d')][_0x85e8('0x37')]){_0x21cf08[_0x85e8('0x35')]=_[_0x85e8('0x38')](_0x21cf08[_0x85e8('0x35')],{'$or':_[_0x85e8('0x25')](_0x21cf08[_0x85e8('0x2f')],function(_0x5e0170){var _0x514cad={};_0x514cad[_0x5e0170]={'$like':'%'+_0x5d4c78[_0x85e8('0x2d')][_0x85e8('0x37')]+'%'};return _0x514cad;})});}_0x21cf08=_['merge']({},_0x21cf08,_0x5d4c78[_0x85e8('0x41')]);return _0x3a9aad[_0x85e8('0x49')](_0x21cf08);}})[_0x85e8('0x1f')](function(_0x199166){if(_0x199166){_0x193011=_0x199166['length'];if(!_0x5d4c78[_0x85e8('0x2d')][_0x85e8('0x31')](_0x85e8('0x32'))){_0x21cf08[_0x85e8('0x18')]=qs[_0x85e8('0x18')](_0x5d4c78[_0x85e8('0x2d')]['limit']);_0x21cf08[_0x85e8('0x1a')]=qs[_0x85e8('0x1a')](_0x5d4c78['query']['offset']);}return _0x3a9aad[_0x85e8('0x49')](_0x21cf08);}})[_0x85e8('0x1f')](function(_0x2dffdf){if(_0x2dffdf){return _0x2dffdf?{'count':_0x193011,'rows':_0x2dffdf}:null;}})['then'](respondWithResult(_0x3e621f,null))['catch'](handleError(_0x3e621f,null));};