e27f36eae1d099892cc215ce1fc1dd8dd7c9a033
[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 _0x1961=['query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','includeAll','include','findAll','rows','catch','params','options','create','body','destroy','find','findOne','VtigerField','getFields','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','ejs','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','offset','count','limit','set','Content-Range','save','update','then','error','stack','name','send','index','VtigerConfiguration','rawAttributes','fieldName','type','key','model','map'];(function(_0x110d7a,_0x3cb471){var _0x13a2f2=function(_0x194d7a){while(--_0x194d7a){_0x110d7a['push'](_0x110d7a['shift']());}};_0x13a2f2(++_0x3cb471);}(_0x1961,0x10c));var _0x1196=function(_0x525812,_0x2ae9aa){_0x525812=_0x525812-0x0;var _0x534f9d=_0x1961[_0x525812];return _0x534f9d;};'use strict';var emlformat=require(_0x1196('0x0'));var rimraf=require(_0x1196('0x1'));var zipdir=require(_0x1196('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1196('0x3'));var moment=require(_0x1196('0x4'));var BPromise=require(_0x1196('0x5'));var Mustache=require(_0x1196('0x6'));var util=require('util');var path=require(_0x1196('0x7'));var sox=require(_0x1196('0x8'));var csv=require('to-csv');var ejs=require(_0x1196('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x1196('0xa'));var jsforce=require(_0x1196('0xb'));var deskjs=require(_0x1196('0xc'));var toCsv=require(_0x1196('0xd'));var querystring=require(_0x1196('0xe'));var Papa=require(_0x1196('0xf'));var Redis=require(_0x1196('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x1196('0x11'));var hardwareService=require(_0x1196('0x12'));var logger=require(_0x1196('0x13'))('api');var utils=require('../../config/utils');var config=require(_0x1196('0x14'));var licenseUtil=require(_0x1196('0x15'));var db=require(_0x1196('0x16'))['db'];function respondWithStatusCode(_0x10e6d4,_0x49c39d){_0x49c39d=_0x49c39d||0xcc;return function(_0x390e10){if(_0x390e10){return _0x10e6d4[_0x1196('0x17')](_0x49c39d);}return _0x10e6d4['status'](_0x49c39d)[_0x1196('0x18')]();};}function respondWithResult(_0x3f815b,_0x44fee9){_0x44fee9=_0x44fee9||0xc8;return function(_0x38fabd){if(_0x38fabd){return _0x3f815b[_0x1196('0x19')](_0x44fee9)[_0x1196('0x1a')](_0x38fabd);}};}function respondWithFilteredResult(_0xfab473,_0x52204e){return function(_0x23e7c7){if(_0x23e7c7){var _0x3fdef1=typeof _0x52204e['offset']==='undefined'&&typeof _0x52204e['limit']===_0x1196('0x1b');var _0x24e249=_0x23e7c7['count'];var _0x312d8d=_0x3fdef1?0x0:_0x52204e[_0x1196('0x1c')];var _0x3c542a=_0x3fdef1?_0x23e7c7[_0x1196('0x1d')]:_0x52204e[_0x1196('0x1c')]+_0x52204e[_0x1196('0x1e')];var _0x238ba7;if(_0x3c542a>=_0x24e249){_0x3c542a=_0x24e249;_0x238ba7=0xc8;}else{_0x238ba7=0xce;}_0xfab473[_0x1196('0x19')](_0x238ba7);return _0xfab473[_0x1196('0x1f')](_0x1196('0x20'),_0x312d8d+'-'+_0x3c542a+'/'+_0x24e249)['json'](_0x23e7c7);}return null;};}function patchUpdates(_0x20d10e){return function(_0x30384c){try{jsonpatch['apply'](_0x30384c,_0x20d10e,!![]);}catch(_0x379eaa){return BPromise['reject'](_0x379eaa);}return _0x30384c[_0x1196('0x21')]();};}function saveUpdates(_0x292905,_0x154161){return function(_0x40c4f7){if(_0x40c4f7){return _0x40c4f7[_0x1196('0x22')](_0x292905)[_0x1196('0x23')](function(_0x41f9e0){return _0x41f9e0;});}return null;};}function removeEntity(_0x4bbade,_0x4cb4f8){return function(_0x3c5f24){if(_0x3c5f24){return _0x3c5f24['destroy']()[_0x1196('0x23')](function(){_0x4bbade[_0x1196('0x19')](0xcc)[_0x1196('0x18')]();});}};}function handleEntityNotFound(_0x544ce7,_0x1fc236){return function(_0x6e0843){if(!_0x6e0843){_0x544ce7[_0x1196('0x17')](0x194);}return _0x6e0843;};}function handleError(_0x5a8d22,_0x4687fb){_0x4687fb=_0x4687fb||0x1f4;return function(_0x3c28c7){logger[_0x1196('0x24')](_0x3c28c7[_0x1196('0x25')]);if(_0x3c28c7[_0x1196('0x26')]){delete _0x3c28c7['name'];}_0x5a8d22[_0x1196('0x19')](_0x4687fb)[_0x1196('0x27')](_0x3c28c7);};}exports[_0x1196('0x28')]=function(_0x368e1b,_0x5f247a){var _0x134447={},_0x10b3f9={},_0xf17f00={'count':0x0,'rows':[]};var _0x3a8f71=_['map'](db[_0x1196('0x29')][_0x1196('0x2a')],function(_0x3156e2){return{'name':_0x3156e2[_0x1196('0x2b')],'type':_0x3156e2[_0x1196('0x2c')][_0x1196('0x2d')]};});_0x10b3f9[_0x1196('0x2e')]=_[_0x1196('0x2f')](_0x3a8f71,'name');_0x10b3f9[_0x1196('0x30')]=_[_0x1196('0x31')](_0x368e1b[_0x1196('0x30')]);_0x10b3f9['filters']=_[_0x1196('0x32')](_0x10b3f9[_0x1196('0x2e')],_0x10b3f9[_0x1196('0x30')]);_0x134447[_0x1196('0x33')]=_[_0x1196('0x32')](_0x10b3f9['model'],qs[_0x1196('0x34')](_0x368e1b[_0x1196('0x30')][_0x1196('0x34')]));_0x134447[_0x1196('0x33')]=_0x134447[_0x1196('0x33')][_0x1196('0x35')]?_0x134447['attributes']:_0x10b3f9[_0x1196('0x2e')];if(!_0x368e1b[_0x1196('0x30')][_0x1196('0x36')](_0x1196('0x37'))){_0x134447[_0x1196('0x1e')]=qs[_0x1196('0x1e')](_0x368e1b[_0x1196('0x30')]['limit']);_0x134447['offset']=qs[_0x1196('0x1c')](_0x368e1b[_0x1196('0x30')][_0x1196('0x1c')]);}_0x134447[_0x1196('0x38')]=qs[_0x1196('0x39')](_0x368e1b['query']['sort']);_0x134447[_0x1196('0x3a')]=qs[_0x1196('0x3b')](_[_0x1196('0x3c')](_0x368e1b['query'],_0x10b3f9[_0x1196('0x3b')]),_0x3a8f71);if(_0x368e1b[_0x1196('0x30')][_0x1196('0x3d')]){_0x134447['where']=_[_0x1196('0x3e')](_0x134447[_0x1196('0x3a')],{'$or':_[_0x1196('0x2f')](_0x3a8f71,function(_0x5f7736){if(_0x5f7736['type']!=='VIRTUAL'){var _0xbf55cf={};_0xbf55cf[_0x5f7736['name']]={'$like':'%'+_0x368e1b['query']['filter']+'%'};return _0xbf55cf;}})});}_0x134447=_[_0x1196('0x3e')]({},_0x134447,_0x368e1b['options']);var _0x59d310={'where':_0x134447[_0x1196('0x3a')]};return db[_0x1196('0x29')][_0x1196('0x1d')](_0x59d310)[_0x1196('0x23')](function(_0x4b784c){_0xf17f00[_0x1196('0x1d')]=_0x4b784c;if(_0x368e1b[_0x1196('0x30')][_0x1196('0x3f')]){_0x134447[_0x1196('0x40')]=[{'all':!![]}];}return db['VtigerConfiguration'][_0x1196('0x41')](_0x134447);})[_0x1196('0x23')](function(_0x2bde3f){_0xf17f00[_0x1196('0x42')]=_0x2bde3f;return _0xf17f00;})[_0x1196('0x23')](respondWithFilteredResult(_0x5f247a,_0x134447))[_0x1196('0x43')](handleError(_0x5f247a,null));};exports['show']=function(_0x4fcf08,_0x3be410){var _0x4a51b0={'raw':![],'where':{'id':_0x4fcf08[_0x1196('0x44')]['id']}},_0x319f75={};_0x319f75[_0x1196('0x2e')]=_['keys'](db['VtigerConfiguration']['rawAttributes']);_0x319f75[_0x1196('0x30')]=_[_0x1196('0x31')](_0x4fcf08[_0x1196('0x30')]);_0x319f75[_0x1196('0x3b')]=_['intersection'](_0x319f75['model'],_0x319f75['query']);_0x4a51b0['attributes']=_['intersection'](_0x319f75[_0x1196('0x2e')],qs['fields'](_0x4fcf08[_0x1196('0x30')]['fields']));_0x4a51b0[_0x1196('0x33')]=_0x4a51b0[_0x1196('0x33')]['length']?_0x4a51b0[_0x1196('0x33')]:_0x319f75[_0x1196('0x2e')];if(_0x4fcf08[_0x1196('0x30')][_0x1196('0x3f')]){_0x4a51b0[_0x1196('0x40')]=[{'all':!![]}];}_0x4a51b0=_['merge']({},_0x4a51b0,_0x4fcf08[_0x1196('0x45')]);return db[_0x1196('0x29')]['find'](_0x4a51b0)['then'](handleEntityNotFound(_0x3be410,null))[_0x1196('0x23')](respondWithResult(_0x3be410,null))[_0x1196('0x43')](handleError(_0x3be410,null));};exports[_0x1196('0x46')]=function(_0x940dd0,_0x324bcd){return db[_0x1196('0x29')][_0x1196('0x46')](_0x940dd0[_0x1196('0x47')],{})['then'](respondWithResult(_0x324bcd,0xc9))[_0x1196('0x43')](handleError(_0x324bcd,null));};exports[_0x1196('0x22')]=function(_0x41a816,_0x1249c7){if(_0x41a816['body']['id']){delete _0x41a816[_0x1196('0x47')]['id'];}return db[_0x1196('0x29')]['find']({'where':{'id':_0x41a816['params']['id']}})[_0x1196('0x23')](handleEntityNotFound(_0x1249c7,null))[_0x1196('0x23')](saveUpdates(_0x41a816[_0x1196('0x47')],null))['then'](respondWithResult(_0x1249c7,null))['catch'](handleError(_0x1249c7,null));};exports[_0x1196('0x48')]=function(_0x1f00c4,_0x45351f){return db[_0x1196('0x29')][_0x1196('0x49')]({'where':{'id':_0x1f00c4['params']['id']}})[_0x1196('0x23')](handleEntityNotFound(_0x45351f,null))[_0x1196('0x23')](removeEntity(_0x45351f,null))[_0x1196('0x43')](handleError(_0x45351f,null));};exports['getFields']=function(_0x206901,_0x34a9d2,_0x48e8c7){var _0xccd81c={};var _0x6ac529={};var _0x542aaf;var _0x10a01c;return db[_0x1196('0x29')][_0x1196('0x4a')]({'where':{'id':_0x206901[_0x1196('0x44')]['id']}})['then'](handleEntityNotFound(_0x34a9d2,null))[_0x1196('0x23')](function(_0x4c842d){if(_0x4c842d){_0x542aaf=_0x4c842d;_0x6ac529['model']=_[_0x1196('0x31')](db[_0x1196('0x4b')][_0x1196('0x2a')]);_0x6ac529[_0x1196('0x30')]=_[_0x1196('0x31')](_0x206901['query']);_0x6ac529['filters']=_[_0x1196('0x32')](_0x6ac529[_0x1196('0x2e')],_0x6ac529[_0x1196('0x30')]);_0xccd81c[_0x1196('0x33')]=_['intersection'](_0x6ac529[_0x1196('0x2e')],qs['fields'](_0x206901[_0x1196('0x30')][_0x1196('0x34')]));_0xccd81c[_0x1196('0x33')]=_0xccd81c[_0x1196('0x33')][_0x1196('0x35')]?_0xccd81c[_0x1196('0x33')]:_0x6ac529[_0x1196('0x2e')];_0xccd81c['order']=qs['sort'](_0x206901[_0x1196('0x30')][_0x1196('0x39')]);_0xccd81c['where']=qs[_0x1196('0x3b')](_['pick'](_0x206901[_0x1196('0x30')],_0x6ac529[_0x1196('0x3b')]));if(_0x206901['query'][_0x1196('0x3d')]){_0xccd81c[_0x1196('0x3a')]=_[_0x1196('0x3e')](_0xccd81c[_0x1196('0x3a')],{'$or':_[_0x1196('0x2f')](_0xccd81c['attributes'],function(_0x5adcba){var _0x11471d={};_0x11471d[_0x5adcba]={'$like':'%'+_0x206901['query'][_0x1196('0x3d')]+'%'};return _0x11471d;})});}_0xccd81c=_['merge']({},_0xccd81c,_0x206901[_0x1196('0x45')]);return _0x542aaf[_0x1196('0x4c')](_0xccd81c);}})['then'](function(_0xf6adee){if(_0xf6adee){_0x10a01c=_0xf6adee['length'];if(!_0x206901[_0x1196('0x30')][_0x1196('0x36')](_0x1196('0x37'))){_0xccd81c[_0x1196('0x1e')]=qs[_0x1196('0x1e')](_0x206901['query'][_0x1196('0x1e')]);_0xccd81c[_0x1196('0x1c')]=qs[_0x1196('0x1c')](_0x206901[_0x1196('0x30')]['offset']);}return _0x542aaf['getFields'](_0xccd81c);}})[_0x1196('0x23')](function(_0x48f901){if(_0x48f901){return _0x48f901?{'count':_0x10a01c,'rows':_0x48f901}:null;}})[_0x1196('0x23')](respondWithResult(_0x34a9d2,null))[_0x1196('0x43')](handleError(_0x34a9d2,null));};exports[_0x1196('0x4d')]=function(_0x7a9b4e,_0x2092e5,_0x2c4f58){var _0x33a920={};var _0x3bdc4d={};var _0x47cfa;var _0x5f592d;return db['VtigerConfiguration'][_0x1196('0x4a')]({'where':{'id':_0x7a9b4e[_0x1196('0x44')]['id']}})[_0x1196('0x23')](handleEntityNotFound(_0x2092e5,null))['then'](function(_0x203cd9){if(_0x203cd9){_0x47cfa=_0x203cd9;_0x3bdc4d[_0x1196('0x2e')]=_[_0x1196('0x31')](db[_0x1196('0x4b')][_0x1196('0x2a')]);_0x3bdc4d[_0x1196('0x30')]=_[_0x1196('0x31')](_0x7a9b4e['query']);_0x3bdc4d[_0x1196('0x3b')]=_['intersection'](_0x3bdc4d[_0x1196('0x2e')],_0x3bdc4d[_0x1196('0x30')]);_0x33a920[_0x1196('0x33')]=_[_0x1196('0x32')](_0x3bdc4d[_0x1196('0x2e')],qs[_0x1196('0x34')](_0x7a9b4e['query'][_0x1196('0x34')]));_0x33a920['attributes']=_0x33a920['attributes'][_0x1196('0x35')]?_0x33a920[_0x1196('0x33')]:_0x3bdc4d[_0x1196('0x2e')];_0x33a920[_0x1196('0x38')]=qs[_0x1196('0x39')](_0x7a9b4e[_0x1196('0x30')]['sort']);_0x33a920[_0x1196('0x3a')]=qs[_0x1196('0x3b')](_['pick'](_0x7a9b4e[_0x1196('0x30')],_0x3bdc4d[_0x1196('0x3b')]));if(_0x7a9b4e[_0x1196('0x30')]['filter']){_0x33a920[_0x1196('0x3a')]=_[_0x1196('0x3e')](_0x33a920[_0x1196('0x3a')],{'$or':_[_0x1196('0x2f')](_0x33a920[_0x1196('0x33')],function(_0x36377d){var _0x16780f={};_0x16780f[_0x36377d]={'$like':'%'+_0x7a9b4e[_0x1196('0x30')]['filter']+'%'};return _0x16780f;})});}_0x33a920=_[_0x1196('0x3e')]({},_0x33a920,_0x7a9b4e[_0x1196('0x45')]);return _0x47cfa[_0x1196('0x4d')](_0x33a920);}})[_0x1196('0x23')](function(_0x1dbcae){if(_0x1dbcae){_0x5f592d=_0x1dbcae[_0x1196('0x35')];if(!_0x7a9b4e[_0x1196('0x30')]['hasOwnProperty']('nolimit')){_0x33a920[_0x1196('0x1e')]=qs[_0x1196('0x1e')](_0x7a9b4e['query'][_0x1196('0x1e')]);_0x33a920[_0x1196('0x1c')]=qs[_0x1196('0x1c')](_0x7a9b4e[_0x1196('0x30')]['offset']);}return _0x47cfa[_0x1196('0x4d')](_0x33a920);}})['then'](function(_0x98795){if(_0x98795){return _0x98795?{'count':_0x5f592d,'rows':_0x98795}:null;}})['then'](respondWithResult(_0x2092e5,null))[_0x1196('0x43')](handleError(_0x2092e5,null));};exports[_0x1196('0x4e')]=function(_0x3dbe0e,_0x405ba7,_0x157195){var _0x3b084c={};var _0x211185={};var _0x19a949;var _0x3b6b21;return db[_0x1196('0x29')]['findOne']({'where':{'id':_0x3dbe0e[_0x1196('0x44')]['id']}})['then'](handleEntityNotFound(_0x405ba7,null))['then'](function(_0x290a3d){if(_0x290a3d){_0x19a949=_0x290a3d;_0x211185[_0x1196('0x2e')]=_[_0x1196('0x31')](db[_0x1196('0x4b')][_0x1196('0x2a')]);_0x211185['query']=_[_0x1196('0x31')](_0x3dbe0e[_0x1196('0x30')]);_0x211185['filters']=_['intersection'](_0x211185[_0x1196('0x2e')],_0x211185[_0x1196('0x30')]);_0x3b084c['attributes']=_[_0x1196('0x32')](_0x211185[_0x1196('0x2e')],qs[_0x1196('0x34')](_0x3dbe0e[_0x1196('0x30')]['fields']));_0x3b084c[_0x1196('0x33')]=_0x3b084c['attributes'][_0x1196('0x35')]?_0x3b084c['attributes']:_0x211185['model'];_0x3b084c['order']=qs[_0x1196('0x39')](_0x3dbe0e['query'][_0x1196('0x39')]);_0x3b084c[_0x1196('0x3a')]=qs[_0x1196('0x3b')](_[_0x1196('0x3c')](_0x3dbe0e[_0x1196('0x30')],_0x211185[_0x1196('0x3b')]));if(_0x3dbe0e['query'][_0x1196('0x3d')]){_0x3b084c[_0x1196('0x3a')]=_[_0x1196('0x3e')](_0x3b084c[_0x1196('0x3a')],{'$or':_[_0x1196('0x2f')](_0x3b084c[_0x1196('0x33')],function(_0x59a987){var _0x2e07b6={};_0x2e07b6[_0x59a987]={'$like':'%'+_0x3dbe0e['query'][_0x1196('0x3d')]+'%'};return _0x2e07b6;})});}_0x3b084c=_[_0x1196('0x3e')]({},_0x3b084c,_0x3dbe0e[_0x1196('0x45')]);return _0x19a949[_0x1196('0x4e')](_0x3b084c);}})['then'](function(_0x17fd51){if(_0x17fd51){_0x3b6b21=_0x17fd51[_0x1196('0x35')];if(!_0x3dbe0e['query'][_0x1196('0x36')](_0x1196('0x37'))){_0x3b084c[_0x1196('0x1e')]=qs[_0x1196('0x1e')](_0x3dbe0e['query'][_0x1196('0x1e')]);_0x3b084c[_0x1196('0x1c')]=qs['offset'](_0x3dbe0e[_0x1196('0x30')][_0x1196('0x1c')]);}return _0x19a949[_0x1196('0x4e')](_0x3b084c);}})[_0x1196('0x23')](function(_0x217a0f){if(_0x217a0f){return _0x217a0f?{'count':_0x3b6b21,'rows':_0x217a0f}:null;}})[_0x1196('0x23')](respondWithResult(_0x405ba7,null))['catch'](handleError(_0x405ba7,null));};