2843d1355afcdbffd6c91ea676b0cb9f2b560aa0
[motion2.git] / server / api / intVtigerConfiguration / intVtigerConfiguration.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 _0x05b0=['options','includeAll','include','rows','catch','show','params','model','length','body','find','destroy','getFields','findOne','VtigerField','getSubjects','getDescriptions','zip-dir','fast-json-patch','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','../../components/auth/service','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','limit','undefined','count','Content-Range','json','apply','save','update','then','end','error','stack','name','send','index','map','VtigerConfiguration','rawAttributes','type','key','keys','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL'];(function(_0x505768,_0x52a713){var _0x2af6bd=function(_0x1c2e5d){while(--_0x1c2e5d){_0x505768['push'](_0x505768['shift']());}};_0x2af6bd(++_0x52a713);}(_0x05b0,0x188));var _0x005b=function(_0x1f15d3,_0x5a008e){_0x1f15d3=_0x1f15d3-0x0;var _0x2733cc=_0x05b0[_0x1f15d3];return _0x2733cc;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x005b('0x0'));var jsonpatch=require(_0x005b('0x1'));var rp=require('request-promise');var moment=require(_0x005b('0x2'));var BPromise=require(_0x005b('0x3'));var Mustache=require('mustache');var util=require(_0x005b('0x4'));var path=require(_0x005b('0x5'));var sox=require('sox');var csv=require(_0x005b('0x6'));var ejs=require(_0x005b('0x7'));var fs=require('fs');var fs_extra=require(_0x005b('0x8'));var _=require(_0x005b('0x9'));var squel=require(_0x005b('0xa'));var crypto=require(_0x005b('0xb'));var jsforce=require(_0x005b('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x005b('0x6'));var querystring=require(_0x005b('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x005b('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x005b('0xf'))(_0x005b('0x10'));var utils=require('../../config/utils');var config=require(_0x005b('0x11'));var licenseUtil=require(_0x005b('0x12'));var db=require(_0x005b('0x13'))['db'];function respondWithStatusCode(_0x10f9bb,_0xce7212){_0xce7212=_0xce7212||0xcc;return function(_0xe2674e){if(_0xe2674e){return _0x10f9bb[_0x005b('0x14')](_0xce7212);}return _0x10f9bb['status'](_0xce7212)['end']();};}function respondWithResult(_0x52ad9c,_0x309c8f){_0x309c8f=_0x309c8f||0xc8;return function(_0x50b7ce){if(_0x50b7ce){return _0x52ad9c[_0x005b('0x15')](_0x309c8f)['json'](_0x50b7ce);}};}function respondWithFilteredResult(_0x1c8eed,_0x1f7743){return function(_0x2ce01e){if(_0x2ce01e){var _0x1991e8=typeof _0x1f7743[_0x005b('0x16')]==='undefined'&&typeof _0x1f7743[_0x005b('0x17')]===_0x005b('0x18');var _0xf3cf84=_0x2ce01e['count'];var _0x206c0a=_0x1991e8?0x0:_0x1f7743[_0x005b('0x16')];var _0x50a6eb=_0x1991e8?_0x2ce01e[_0x005b('0x19')]:_0x1f7743[_0x005b('0x16')]+_0x1f7743[_0x005b('0x17')];var _0x434874;if(_0x50a6eb>=_0xf3cf84){_0x50a6eb=_0xf3cf84;_0x434874=0xc8;}else{_0x434874=0xce;}_0x1c8eed[_0x005b('0x15')](_0x434874);return _0x1c8eed['set'](_0x005b('0x1a'),_0x206c0a+'-'+_0x50a6eb+'/'+_0xf3cf84)[_0x005b('0x1b')](_0x2ce01e);}return null;};}function patchUpdates(_0x4ae164){return function(_0x24637d){try{jsonpatch[_0x005b('0x1c')](_0x24637d,_0x4ae164,!![]);}catch(_0xd97375){return BPromise['reject'](_0xd97375);}return _0x24637d[_0x005b('0x1d')]();};}function saveUpdates(_0x145c36,_0x319981){return function(_0x3521c9){if(_0x3521c9){return _0x3521c9[_0x005b('0x1e')](_0x145c36)[_0x005b('0x1f')](function(_0x4f632f){return _0x4f632f;});}return null;};}function removeEntity(_0x322229,_0x169428){return function(_0x1fef26){if(_0x1fef26){return _0x1fef26['destroy']()[_0x005b('0x1f')](function(){_0x322229['status'](0xcc)[_0x005b('0x20')]();});}};}function handleEntityNotFound(_0x527294,_0x542fa2){return function(_0x2dc341){if(!_0x2dc341){_0x527294[_0x005b('0x14')](0x194);}return _0x2dc341;};}function handleError(_0x3effd5,_0x267f10){_0x267f10=_0x267f10||0x1f4;return function(_0x6730d4){logger[_0x005b('0x21')](_0x6730d4[_0x005b('0x22')]);if(_0x6730d4[_0x005b('0x23')]){delete _0x6730d4['name'];}_0x3effd5[_0x005b('0x15')](_0x267f10)[_0x005b('0x24')](_0x6730d4);};}exports[_0x005b('0x25')]=function(_0x13e834,_0x2e92d1){var _0x1d8f93={},_0x4775a2={},_0x49561a={'count':0x0,'rows':[]};var _0xaf7c71=_[_0x005b('0x26')](db[_0x005b('0x27')][_0x005b('0x28')],function(_0x545a2b){return{'name':_0x545a2b['fieldName'],'type':_0x545a2b[_0x005b('0x29')][_0x005b('0x2a')]};});_0x4775a2['model']=_['map'](_0xaf7c71,_0x005b('0x23'));_0x4775a2['query']=_[_0x005b('0x2b')](_0x13e834[_0x005b('0x2c')]);_0x4775a2[_0x005b('0x2d')]=_['intersection'](_0x4775a2['model'],_0x4775a2[_0x005b('0x2c')]);_0x1d8f93[_0x005b('0x2e')]=_[_0x005b('0x2f')](_0x4775a2['model'],qs['fields'](_0x13e834[_0x005b('0x2c')][_0x005b('0x30')]));_0x1d8f93['attributes']=_0x1d8f93[_0x005b('0x2e')]['length']?_0x1d8f93[_0x005b('0x2e')]:_0x4775a2['model'];if(!_0x13e834['query'][_0x005b('0x31')](_0x005b('0x32'))){_0x1d8f93[_0x005b('0x17')]=qs[_0x005b('0x17')](_0x13e834[_0x005b('0x2c')]['limit']);_0x1d8f93['offset']=qs[_0x005b('0x16')](_0x13e834[_0x005b('0x2c')][_0x005b('0x16')]);}_0x1d8f93[_0x005b('0x33')]=qs[_0x005b('0x34')](_0x13e834[_0x005b('0x2c')]['sort']);_0x1d8f93[_0x005b('0x35')]=qs[_0x005b('0x2d')](_[_0x005b('0x36')](_0x13e834['query'],_0x4775a2[_0x005b('0x2d')]),_0xaf7c71);if(_0x13e834[_0x005b('0x2c')][_0x005b('0x37')]){_0x1d8f93[_0x005b('0x35')]=_[_0x005b('0x38')](_0x1d8f93[_0x005b('0x35')],{'$or':_[_0x005b('0x26')](_0xaf7c71,function(_0x9f4d6){if(_0x9f4d6[_0x005b('0x29')]!==_0x005b('0x39')){var _0x4d6064={};_0x4d6064[_0x9f4d6[_0x005b('0x23')]]={'$like':'%'+_0x13e834[_0x005b('0x2c')]['filter']+'%'};return _0x4d6064;}})});}_0x1d8f93=_[_0x005b('0x38')]({},_0x1d8f93,_0x13e834[_0x005b('0x3a')]);var _0x1f29de={'where':_0x1d8f93[_0x005b('0x35')]};return db['VtigerConfiguration'][_0x005b('0x19')](_0x1f29de)[_0x005b('0x1f')](function(_0x4b0a10){_0x49561a[_0x005b('0x19')]=_0x4b0a10;if(_0x13e834[_0x005b('0x2c')][_0x005b('0x3b')]){_0x1d8f93[_0x005b('0x3c')]=[{'all':!![]}];}return db[_0x005b('0x27')]['findAll'](_0x1d8f93);})['then'](function(_0x1dfe28){_0x49561a[_0x005b('0x3d')]=_0x1dfe28;return _0x49561a;})[_0x005b('0x1f')](respondWithFilteredResult(_0x2e92d1,_0x1d8f93))[_0x005b('0x3e')](handleError(_0x2e92d1,null));};exports[_0x005b('0x3f')]=function(_0x59fefd,_0x182e3a){var _0x14bd15={'raw':![],'where':{'id':_0x59fefd[_0x005b('0x40')]['id']}},_0x2bbb8a={};_0x2bbb8a[_0x005b('0x41')]=_[_0x005b('0x2b')](db['VtigerConfiguration'][_0x005b('0x28')]);_0x2bbb8a['query']=_[_0x005b('0x2b')](_0x59fefd[_0x005b('0x2c')]);_0x2bbb8a['filters']=_[_0x005b('0x2f')](_0x2bbb8a[_0x005b('0x41')],_0x2bbb8a[_0x005b('0x2c')]);_0x14bd15[_0x005b('0x2e')]=_['intersection'](_0x2bbb8a[_0x005b('0x41')],qs[_0x005b('0x30')](_0x59fefd[_0x005b('0x2c')][_0x005b('0x30')]));_0x14bd15[_0x005b('0x2e')]=_0x14bd15[_0x005b('0x2e')][_0x005b('0x42')]?_0x14bd15[_0x005b('0x2e')]:_0x2bbb8a[_0x005b('0x41')];if(_0x59fefd['query'][_0x005b('0x3b')]){_0x14bd15[_0x005b('0x3c')]=[{'all':!![]}];}_0x14bd15=_[_0x005b('0x38')]({},_0x14bd15,_0x59fefd[_0x005b('0x3a')]);return db[_0x005b('0x27')]['find'](_0x14bd15)[_0x005b('0x1f')](handleEntityNotFound(_0x182e3a,null))[_0x005b('0x1f')](respondWithResult(_0x182e3a,null))[_0x005b('0x3e')](handleError(_0x182e3a,null));};exports['create']=function(_0x10a141,_0x50d178){return db['VtigerConfiguration']['create'](_0x10a141['body'],{})[_0x005b('0x1f')](respondWithResult(_0x50d178,0xc9))[_0x005b('0x3e')](handleError(_0x50d178,null));};exports[_0x005b('0x1e')]=function(_0xb1898,_0x4e19cd){if(_0xb1898[_0x005b('0x43')]['id']){delete _0xb1898[_0x005b('0x43')]['id'];}return db['VtigerConfiguration'][_0x005b('0x44')]({'where':{'id':_0xb1898[_0x005b('0x40')]['id']}})[_0x005b('0x1f')](handleEntityNotFound(_0x4e19cd,null))[_0x005b('0x1f')](saveUpdates(_0xb1898[_0x005b('0x43')],null))['then'](respondWithResult(_0x4e19cd,null))[_0x005b('0x3e')](handleError(_0x4e19cd,null));};exports[_0x005b('0x45')]=function(_0x2aebe9,_0x11dc21){return db[_0x005b('0x27')][_0x005b('0x44')]({'where':{'id':_0x2aebe9['params']['id']}})[_0x005b('0x1f')](handleEntityNotFound(_0x11dc21,null))[_0x005b('0x1f')](removeEntity(_0x11dc21,null))[_0x005b('0x3e')](handleError(_0x11dc21,null));};exports[_0x005b('0x46')]=function(_0x288935,_0x1be7c2,_0x4c6eb0){var _0x2f5096={};var _0x13a680={};var _0x5cea23;var _0x5bbc78;return db[_0x005b('0x27')][_0x005b('0x47')]({'where':{'id':_0x288935[_0x005b('0x40')]['id']}})[_0x005b('0x1f')](handleEntityNotFound(_0x1be7c2,null))[_0x005b('0x1f')](function(_0x224143){if(_0x224143){_0x5cea23=_0x224143;_0x13a680[_0x005b('0x41')]=_['keys'](db[_0x005b('0x48')]['rawAttributes']);_0x13a680['query']=_[_0x005b('0x2b')](_0x288935[_0x005b('0x2c')]);_0x13a680[_0x005b('0x2d')]=_['intersection'](_0x13a680[_0x005b('0x41')],_0x13a680[_0x005b('0x2c')]);_0x2f5096[_0x005b('0x2e')]=_['intersection'](_0x13a680[_0x005b('0x41')],qs['fields'](_0x288935[_0x005b('0x2c')][_0x005b('0x30')]));_0x2f5096['attributes']=_0x2f5096[_0x005b('0x2e')][_0x005b('0x42')]?_0x2f5096[_0x005b('0x2e')]:_0x13a680[_0x005b('0x41')];_0x2f5096[_0x005b('0x33')]=qs[_0x005b('0x34')](_0x288935['query'][_0x005b('0x34')]);_0x2f5096[_0x005b('0x35')]=qs[_0x005b('0x2d')](_[_0x005b('0x36')](_0x288935[_0x005b('0x2c')],_0x13a680[_0x005b('0x2d')]));if(_0x288935['query'][_0x005b('0x37')]){_0x2f5096['where']=_[_0x005b('0x38')](_0x2f5096[_0x005b('0x35')],{'$or':_[_0x005b('0x26')](_0x2f5096[_0x005b('0x2e')],function(_0x31e6f5){var _0x2ee675={};_0x2ee675[_0x31e6f5]={'$like':'%'+_0x288935[_0x005b('0x2c')][_0x005b('0x37')]+'%'};return _0x2ee675;})});}_0x2f5096=_[_0x005b('0x38')]({},_0x2f5096,_0x288935[_0x005b('0x3a')]);return _0x5cea23[_0x005b('0x46')](_0x2f5096);}})[_0x005b('0x1f')](function(_0x303621){if(_0x303621){_0x5bbc78=_0x303621[_0x005b('0x42')];if(!_0x288935[_0x005b('0x2c')]['hasOwnProperty'](_0x005b('0x32'))){_0x2f5096[_0x005b('0x17')]=qs[_0x005b('0x17')](_0x288935[_0x005b('0x2c')][_0x005b('0x17')]);_0x2f5096[_0x005b('0x16')]=qs[_0x005b('0x16')](_0x288935['query'][_0x005b('0x16')]);}return _0x5cea23['getFields'](_0x2f5096);}})[_0x005b('0x1f')](function(_0x4bd368){if(_0x4bd368){return _0x4bd368?{'count':_0x5bbc78,'rows':_0x4bd368}:null;}})[_0x005b('0x1f')](respondWithResult(_0x1be7c2,null))[_0x005b('0x3e')](handleError(_0x1be7c2,null));};exports['getSubjects']=function(_0x30a886,_0x275094,_0x10d9d2){var _0x2b7f3e={};var _0x2d3aeb={};var _0x6fc481;var _0x4729aa;return db[_0x005b('0x27')][_0x005b('0x47')]({'where':{'id':_0x30a886[_0x005b('0x40')]['id']}})['then'](handleEntityNotFound(_0x275094,null))['then'](function(_0xb96c87){if(_0xb96c87){_0x6fc481=_0xb96c87;_0x2d3aeb[_0x005b('0x41')]=_[_0x005b('0x2b')](db[_0x005b('0x48')][_0x005b('0x28')]);_0x2d3aeb[_0x005b('0x2c')]=_[_0x005b('0x2b')](_0x30a886[_0x005b('0x2c')]);_0x2d3aeb[_0x005b('0x2d')]=_[_0x005b('0x2f')](_0x2d3aeb[_0x005b('0x41')],_0x2d3aeb[_0x005b('0x2c')]);_0x2b7f3e[_0x005b('0x2e')]=_['intersection'](_0x2d3aeb[_0x005b('0x41')],qs[_0x005b('0x30')](_0x30a886['query'][_0x005b('0x30')]));_0x2b7f3e[_0x005b('0x2e')]=_0x2b7f3e[_0x005b('0x2e')][_0x005b('0x42')]?_0x2b7f3e[_0x005b('0x2e')]:_0x2d3aeb[_0x005b('0x41')];_0x2b7f3e[_0x005b('0x33')]=qs[_0x005b('0x34')](_0x30a886[_0x005b('0x2c')]['sort']);_0x2b7f3e[_0x005b('0x35')]=qs[_0x005b('0x2d')](_[_0x005b('0x36')](_0x30a886[_0x005b('0x2c')],_0x2d3aeb[_0x005b('0x2d')]));if(_0x30a886[_0x005b('0x2c')][_0x005b('0x37')]){_0x2b7f3e[_0x005b('0x35')]=_[_0x005b('0x38')](_0x2b7f3e[_0x005b('0x35')],{'$or':_[_0x005b('0x26')](_0x2b7f3e[_0x005b('0x2e')],function(_0x287924){var _0x5f2ef1={};_0x5f2ef1[_0x287924]={'$like':'%'+_0x30a886[_0x005b('0x2c')]['filter']+'%'};return _0x5f2ef1;})});}_0x2b7f3e=_[_0x005b('0x38')]({},_0x2b7f3e,_0x30a886['options']);return _0x6fc481[_0x005b('0x49')](_0x2b7f3e);}})[_0x005b('0x1f')](function(_0x38ff2b){if(_0x38ff2b){_0x4729aa=_0x38ff2b[_0x005b('0x42')];if(!_0x30a886[_0x005b('0x2c')][_0x005b('0x31')](_0x005b('0x32'))){_0x2b7f3e['limit']=qs['limit'](_0x30a886[_0x005b('0x2c')][_0x005b('0x17')]);_0x2b7f3e['offset']=qs[_0x005b('0x16')](_0x30a886[_0x005b('0x2c')]['offset']);}return _0x6fc481[_0x005b('0x49')](_0x2b7f3e);}})['then'](function(_0x46e257){if(_0x46e257){return _0x46e257?{'count':_0x4729aa,'rows':_0x46e257}:null;}})['then'](respondWithResult(_0x275094,null))[_0x005b('0x3e')](handleError(_0x275094,null));};exports[_0x005b('0x4a')]=function(_0x4a68b6,_0x21f97a,_0x1db928){var _0x1cd0b6={};var _0x3eacfe={};var _0x1b3d90;var _0x2ac534;return db[_0x005b('0x27')]['findOne']({'where':{'id':_0x4a68b6[_0x005b('0x40')]['id']}})[_0x005b('0x1f')](handleEntityNotFound(_0x21f97a,null))[_0x005b('0x1f')](function(_0xd9eb57){if(_0xd9eb57){_0x1b3d90=_0xd9eb57;_0x3eacfe[_0x005b('0x41')]=_[_0x005b('0x2b')](db[_0x005b('0x48')][_0x005b('0x28')]);_0x3eacfe[_0x005b('0x2c')]=_[_0x005b('0x2b')](_0x4a68b6[_0x005b('0x2c')]);_0x3eacfe[_0x005b('0x2d')]=_[_0x005b('0x2f')](_0x3eacfe[_0x005b('0x41')],_0x3eacfe['query']);_0x1cd0b6['attributes']=_[_0x005b('0x2f')](_0x3eacfe[_0x005b('0x41')],qs['fields'](_0x4a68b6['query'][_0x005b('0x30')]));_0x1cd0b6[_0x005b('0x2e')]=_0x1cd0b6[_0x005b('0x2e')][_0x005b('0x42')]?_0x1cd0b6[_0x005b('0x2e')]:_0x3eacfe[_0x005b('0x41')];_0x1cd0b6[_0x005b('0x33')]=qs[_0x005b('0x34')](_0x4a68b6[_0x005b('0x2c')][_0x005b('0x34')]);_0x1cd0b6['where']=qs[_0x005b('0x2d')](_['pick'](_0x4a68b6[_0x005b('0x2c')],_0x3eacfe[_0x005b('0x2d')]));if(_0x4a68b6[_0x005b('0x2c')]['filter']){_0x1cd0b6[_0x005b('0x35')]=_[_0x005b('0x38')](_0x1cd0b6[_0x005b('0x35')],{'$or':_[_0x005b('0x26')](_0x1cd0b6[_0x005b('0x2e')],function(_0x3433f9){var _0x44dd54={};_0x44dd54[_0x3433f9]={'$like':'%'+_0x4a68b6['query'][_0x005b('0x37')]+'%'};return _0x44dd54;})});}_0x1cd0b6=_['merge']({},_0x1cd0b6,_0x4a68b6[_0x005b('0x3a')]);return _0x1b3d90[_0x005b('0x4a')](_0x1cd0b6);}})['then'](function(_0x2de5b6){if(_0x2de5b6){_0x2ac534=_0x2de5b6[_0x005b('0x42')];if(!_0x4a68b6[_0x005b('0x2c')][_0x005b('0x31')](_0x005b('0x32'))){_0x1cd0b6[_0x005b('0x17')]=qs[_0x005b('0x17')](_0x4a68b6[_0x005b('0x2c')][_0x005b('0x17')]);_0x1cd0b6[_0x005b('0x16')]=qs[_0x005b('0x16')](_0x4a68b6[_0x005b('0x2c')]['offset']);}return _0x1b3d90[_0x005b('0x4a')](_0x1cd0b6);}})[_0x005b('0x1f')](function(_0x34c2ff){if(_0x34c2ff){return _0x34c2ff?{'count':_0x2ac534,'rows':_0x34c2ff}:null;}})[_0x005b('0x1f')](respondWithResult(_0x21f97a,null))[_0x005b('0x3e')](handleError(_0x21f97a,null));};