48afc7a5ecf52e25fe41564d5dd2297ebc319f4c
[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 _0x0cd2=['nolimit','getSubjects','getDescriptions','eml-format','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','reject','save','destroy','end','error','stack','name','index','map','rawAttributes','fieldName','type','key','query','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','VtigerConfiguration','includeAll','include','findAll','then','rows','catch','params','keys','filters','intersection','find','create','body','getFields','findOne','VtigerField'];(function(_0x42c1e0,_0x8173f2){var _0x1f8d9e=function(_0x4d9f76){while(--_0x4d9f76){_0x42c1e0['push'](_0x42c1e0['shift']());}};_0x1f8d9e(++_0x8173f2);}(_0x0cd2,0x1cb));var _0x20cd=function(_0x55d255,_0x196601){_0x55d255=_0x55d255-0x0;var _0x3a9008=_0x0cd2[_0x55d255];return _0x3a9008;};'use strict';var emlformat=require(_0x20cd('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x20cd('0x1'));var rp=require(_0x20cd('0x2'));var moment=require(_0x20cd('0x3'));var BPromise=require(_0x20cd('0x4'));var Mustache=require('mustache');var util=require(_0x20cd('0x5'));var path=require(_0x20cd('0x6'));var sox=require('sox');var csv=require(_0x20cd('0x7'));var ejs=require(_0x20cd('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x20cd('0x9'));var squel=require(_0x20cd('0xa'));var crypto=require(_0x20cd('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x20cd('0xc'));var toCsv=require(_0x20cd('0x7'));var querystring=require('querystring');var Papa=require(_0x20cd('0xd'));var Redis=require(_0x20cd('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x20cd('0xf'));var as=require(_0x20cd('0x10'));var hardwareService=require(_0x20cd('0x11'));var logger=require('../../config/logger')(_0x20cd('0x12'));var utils=require(_0x20cd('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x20cd('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x8ac164,_0x2e5a03){_0x2e5a03=_0x2e5a03||0xcc;return function(_0x1bf7f7){if(_0x1bf7f7){return _0x8ac164[_0x20cd('0x15')](_0x2e5a03);}return _0x8ac164['status'](_0x2e5a03)['end']();};}function respondWithResult(_0x4eb374,_0x17c21a){_0x17c21a=_0x17c21a||0xc8;return function(_0x5ad831){if(_0x5ad831){return _0x4eb374[_0x20cd('0x16')](_0x17c21a)[_0x20cd('0x17')](_0x5ad831);}};}function respondWithFilteredResult(_0x938bf,_0xedd0e7){return function(_0x5f4557){if(_0x5f4557){var _0x41e4b3=typeof _0xedd0e7[_0x20cd('0x18')]===_0x20cd('0x19')&&typeof _0xedd0e7[_0x20cd('0x1a')]===_0x20cd('0x19');var _0x1a6d46=_0x5f4557['count'];var _0x26135b=_0x41e4b3?0x0:_0xedd0e7['offset'];var _0x3027c5=_0x41e4b3?_0x5f4557[_0x20cd('0x1b')]:_0xedd0e7['offset']+_0xedd0e7[_0x20cd('0x1a')];var _0x7916af;if(_0x3027c5>=_0x1a6d46){_0x3027c5=_0x1a6d46;_0x7916af=0xc8;}else{_0x7916af=0xce;}_0x938bf[_0x20cd('0x16')](_0x7916af);return _0x938bf[_0x20cd('0x1c')]('Content-Range',_0x26135b+'-'+_0x3027c5+'/'+_0x1a6d46)[_0x20cd('0x17')](_0x5f4557);}return null;};}function patchUpdates(_0x2de096){return function(_0x20bb62){try{jsonpatch['apply'](_0x20bb62,_0x2de096,!![]);}catch(_0x50e536){return BPromise[_0x20cd('0x1d')](_0x50e536);}return _0x20bb62[_0x20cd('0x1e')]();};}function saveUpdates(_0x202410,_0x3091e8){return function(_0x4c1c49){if(_0x4c1c49){return _0x4c1c49['update'](_0x202410)['then'](function(_0x5a0617){return _0x5a0617;});}return null;};}function removeEntity(_0x26d876,_0x5206ac){return function(_0x2231f1){if(_0x2231f1){return _0x2231f1[_0x20cd('0x1f')]()['then'](function(){_0x26d876[_0x20cd('0x16')](0xcc)[_0x20cd('0x20')]();});}};}function handleEntityNotFound(_0x103931,_0x21a563){return function(_0x2264c0){if(!_0x2264c0){_0x103931[_0x20cd('0x15')](0x194);}return _0x2264c0;};}function handleError(_0xb951a8,_0x4cb085){_0x4cb085=_0x4cb085||0x1f4;return function(_0x31c773){logger[_0x20cd('0x21')](_0x31c773[_0x20cd('0x22')]);if(_0x31c773[_0x20cd('0x23')]){delete _0x31c773['name'];}_0xb951a8[_0x20cd('0x16')](_0x4cb085)['send'](_0x31c773);};}exports[_0x20cd('0x24')]=function(_0x4b4994,_0x4cc6b7){var _0x506d7={},_0x2364b4={},_0x2ac336={'count':0x0,'rows':[]};var _0x20d550=_[_0x20cd('0x25')](db['VtigerConfiguration'][_0x20cd('0x26')],function(_0x2a3ff1){return{'name':_0x2a3ff1[_0x20cd('0x27')],'type':_0x2a3ff1[_0x20cd('0x28')][_0x20cd('0x29')]};});_0x2364b4['model']=_['map'](_0x20d550,_0x20cd('0x23'));_0x2364b4[_0x20cd('0x2a')]=_['keys'](_0x4b4994[_0x20cd('0x2a')]);_0x2364b4['filters']=_['intersection'](_0x2364b4[_0x20cd('0x2b')],_0x2364b4[_0x20cd('0x2a')]);_0x506d7[_0x20cd('0x2c')]=_['intersection'](_0x2364b4[_0x20cd('0x2b')],qs[_0x20cd('0x2d')](_0x4b4994[_0x20cd('0x2a')]['fields']));_0x506d7['attributes']=_0x506d7[_0x20cd('0x2c')][_0x20cd('0x2e')]?_0x506d7['attributes']:_0x2364b4[_0x20cd('0x2b')];if(!_0x4b4994[_0x20cd('0x2a')][_0x20cd('0x2f')]('nolimit')){_0x506d7[_0x20cd('0x1a')]=qs[_0x20cd('0x1a')](_0x4b4994[_0x20cd('0x2a')][_0x20cd('0x1a')]);_0x506d7[_0x20cd('0x18')]=qs[_0x20cd('0x18')](_0x4b4994[_0x20cd('0x2a')][_0x20cd('0x18')]);}_0x506d7[_0x20cd('0x30')]=qs['sort'](_0x4b4994[_0x20cd('0x2a')][_0x20cd('0x31')]);_0x506d7[_0x20cd('0x32')]=qs['filters'](_[_0x20cd('0x33')](_0x4b4994[_0x20cd('0x2a')],_0x2364b4['filters']),_0x20d550);if(_0x4b4994[_0x20cd('0x2a')][_0x20cd('0x34')]){_0x506d7[_0x20cd('0x32')]=_[_0x20cd('0x35')](_0x506d7['where'],{'$or':_['map'](_0x20d550,function(_0x5aca44){if(_0x5aca44['type']!==_0x20cd('0x36')){var _0x203608={};_0x203608[_0x5aca44['name']]={'$like':'%'+_0x4b4994[_0x20cd('0x2a')][_0x20cd('0x34')]+'%'};return _0x203608;}})});}_0x506d7=_[_0x20cd('0x35')]({},_0x506d7,_0x4b4994[_0x20cd('0x37')]);var _0x5316ac={'where':_0x506d7[_0x20cd('0x32')]};return db[_0x20cd('0x38')][_0x20cd('0x1b')](_0x5316ac)['then'](function(_0x1a597f){_0x2ac336['count']=_0x1a597f;if(_0x4b4994[_0x20cd('0x2a')][_0x20cd('0x39')]){_0x506d7[_0x20cd('0x3a')]=[{'all':!![]}];}return db[_0x20cd('0x38')][_0x20cd('0x3b')](_0x506d7);})[_0x20cd('0x3c')](function(_0xc658f3){_0x2ac336[_0x20cd('0x3d')]=_0xc658f3;return _0x2ac336;})[_0x20cd('0x3c')](respondWithFilteredResult(_0x4cc6b7,_0x506d7))[_0x20cd('0x3e')](handleError(_0x4cc6b7,null));};exports['show']=function(_0x2fd695,_0x4efda7){var _0x126c9f={'raw':![],'where':{'id':_0x2fd695[_0x20cd('0x3f')]['id']}},_0x29ea29={};_0x29ea29[_0x20cd('0x2b')]=_['keys'](db['VtigerConfiguration'][_0x20cd('0x26')]);_0x29ea29[_0x20cd('0x2a')]=_[_0x20cd('0x40')](_0x2fd695[_0x20cd('0x2a')]);_0x29ea29[_0x20cd('0x41')]=_[_0x20cd('0x42')](_0x29ea29[_0x20cd('0x2b')],_0x29ea29['query']);_0x126c9f['attributes']=_[_0x20cd('0x42')](_0x29ea29[_0x20cd('0x2b')],qs[_0x20cd('0x2d')](_0x2fd695[_0x20cd('0x2a')][_0x20cd('0x2d')]));_0x126c9f['attributes']=_0x126c9f[_0x20cd('0x2c')][_0x20cd('0x2e')]?_0x126c9f['attributes']:_0x29ea29[_0x20cd('0x2b')];if(_0x2fd695['query'][_0x20cd('0x39')]){_0x126c9f[_0x20cd('0x3a')]=[{'all':!![]}];}_0x126c9f=_[_0x20cd('0x35')]({},_0x126c9f,_0x2fd695[_0x20cd('0x37')]);return db[_0x20cd('0x38')][_0x20cd('0x43')](_0x126c9f)[_0x20cd('0x3c')](handleEntityNotFound(_0x4efda7,null))[_0x20cd('0x3c')](respondWithResult(_0x4efda7,null))[_0x20cd('0x3e')](handleError(_0x4efda7,null));};exports[_0x20cd('0x44')]=function(_0x333783,_0x4fabb4){return db[_0x20cd('0x38')][_0x20cd('0x44')](_0x333783[_0x20cd('0x45')],{})[_0x20cd('0x3c')](respondWithResult(_0x4fabb4,0xc9))[_0x20cd('0x3e')](handleError(_0x4fabb4,null));};exports['update']=function(_0x26ba09,_0x528ff1){if(_0x26ba09[_0x20cd('0x45')]['id']){delete _0x26ba09[_0x20cd('0x45')]['id'];}return db[_0x20cd('0x38')][_0x20cd('0x43')]({'where':{'id':_0x26ba09[_0x20cd('0x3f')]['id']}})[_0x20cd('0x3c')](handleEntityNotFound(_0x528ff1,null))['then'](saveUpdates(_0x26ba09['body'],null))[_0x20cd('0x3c')](respondWithResult(_0x528ff1,null))[_0x20cd('0x3e')](handleError(_0x528ff1,null));};exports[_0x20cd('0x1f')]=function(_0x37ef06,_0x502281){return db['VtigerConfiguration'][_0x20cd('0x43')]({'where':{'id':_0x37ef06['params']['id']}})[_0x20cd('0x3c')](handleEntityNotFound(_0x502281,null))[_0x20cd('0x3c')](removeEntity(_0x502281,null))[_0x20cd('0x3e')](handleError(_0x502281,null));};exports[_0x20cd('0x46')]=function(_0x28e51c,_0x16d962,_0x476116){var _0x42e6cb={};var _0x12ff0c={};var _0x4054ce;var _0x15be33;return db[_0x20cd('0x38')][_0x20cd('0x47')]({'where':{'id':_0x28e51c[_0x20cd('0x3f')]['id']}})[_0x20cd('0x3c')](handleEntityNotFound(_0x16d962,null))[_0x20cd('0x3c')](function(_0x201093){if(_0x201093){_0x4054ce=_0x201093;_0x12ff0c[_0x20cd('0x2b')]=_[_0x20cd('0x40')](db[_0x20cd('0x48')]['rawAttributes']);_0x12ff0c[_0x20cd('0x2a')]=_['keys'](_0x28e51c[_0x20cd('0x2a')]);_0x12ff0c[_0x20cd('0x41')]=_[_0x20cd('0x42')](_0x12ff0c[_0x20cd('0x2b')],_0x12ff0c[_0x20cd('0x2a')]);_0x42e6cb[_0x20cd('0x2c')]=_[_0x20cd('0x42')](_0x12ff0c[_0x20cd('0x2b')],qs['fields'](_0x28e51c[_0x20cd('0x2a')][_0x20cd('0x2d')]));_0x42e6cb['attributes']=_0x42e6cb['attributes'][_0x20cd('0x2e')]?_0x42e6cb['attributes']:_0x12ff0c[_0x20cd('0x2b')];_0x42e6cb[_0x20cd('0x30')]=qs[_0x20cd('0x31')](_0x28e51c[_0x20cd('0x2a')]['sort']);_0x42e6cb['where']=qs['filters'](_['pick'](_0x28e51c[_0x20cd('0x2a')],_0x12ff0c[_0x20cd('0x41')]));if(_0x28e51c['query']['filter']){_0x42e6cb[_0x20cd('0x32')]=_[_0x20cd('0x35')](_0x42e6cb[_0x20cd('0x32')],{'$or':_[_0x20cd('0x25')](_0x42e6cb[_0x20cd('0x2c')],function(_0x19d68f){var _0x3aea7c={};_0x3aea7c[_0x19d68f]={'$like':'%'+_0x28e51c[_0x20cd('0x2a')][_0x20cd('0x34')]+'%'};return _0x3aea7c;})});}_0x42e6cb=_['merge']({},_0x42e6cb,_0x28e51c[_0x20cd('0x37')]);return _0x4054ce[_0x20cd('0x46')](_0x42e6cb);}})['then'](function(_0x3099bf){if(_0x3099bf){_0x15be33=_0x3099bf[_0x20cd('0x2e')];if(!_0x28e51c[_0x20cd('0x2a')][_0x20cd('0x2f')](_0x20cd('0x49'))){_0x42e6cb[_0x20cd('0x1a')]=qs[_0x20cd('0x1a')](_0x28e51c[_0x20cd('0x2a')][_0x20cd('0x1a')]);_0x42e6cb[_0x20cd('0x18')]=qs[_0x20cd('0x18')](_0x28e51c[_0x20cd('0x2a')][_0x20cd('0x18')]);}return _0x4054ce['getFields'](_0x42e6cb);}})[_0x20cd('0x3c')](function(_0x4b1923){if(_0x4b1923){return _0x4b1923?{'count':_0x15be33,'rows':_0x4b1923}:null;}})[_0x20cd('0x3c')](respondWithResult(_0x16d962,null))[_0x20cd('0x3e')](handleError(_0x16d962,null));};exports[_0x20cd('0x4a')]=function(_0x2d7052,_0xf60676,_0x518aba){var _0x4f3cdd={};var _0x11ba4c={};var _0x7e284a;var _0xa125c9;return db['VtigerConfiguration'][_0x20cd('0x47')]({'where':{'id':_0x2d7052[_0x20cd('0x3f')]['id']}})[_0x20cd('0x3c')](handleEntityNotFound(_0xf60676,null))['then'](function(_0x4c681d){if(_0x4c681d){_0x7e284a=_0x4c681d;_0x11ba4c[_0x20cd('0x2b')]=_[_0x20cd('0x40')](db[_0x20cd('0x48')][_0x20cd('0x26')]);_0x11ba4c[_0x20cd('0x2a')]=_['keys'](_0x2d7052[_0x20cd('0x2a')]);_0x11ba4c[_0x20cd('0x41')]=_[_0x20cd('0x42')](_0x11ba4c['model'],_0x11ba4c[_0x20cd('0x2a')]);_0x4f3cdd['attributes']=_[_0x20cd('0x42')](_0x11ba4c['model'],qs[_0x20cd('0x2d')](_0x2d7052[_0x20cd('0x2a')][_0x20cd('0x2d')]));_0x4f3cdd[_0x20cd('0x2c')]=_0x4f3cdd[_0x20cd('0x2c')]['length']?_0x4f3cdd[_0x20cd('0x2c')]:_0x11ba4c[_0x20cd('0x2b')];_0x4f3cdd[_0x20cd('0x30')]=qs['sort'](_0x2d7052['query'][_0x20cd('0x31')]);_0x4f3cdd[_0x20cd('0x32')]=qs[_0x20cd('0x41')](_['pick'](_0x2d7052[_0x20cd('0x2a')],_0x11ba4c[_0x20cd('0x41')]));if(_0x2d7052['query']['filter']){_0x4f3cdd['where']=_[_0x20cd('0x35')](_0x4f3cdd[_0x20cd('0x32')],{'$or':_[_0x20cd('0x25')](_0x4f3cdd['attributes'],function(_0x46cc12){var _0x48708f={};_0x48708f[_0x46cc12]={'$like':'%'+_0x2d7052[_0x20cd('0x2a')][_0x20cd('0x34')]+'%'};return _0x48708f;})});}_0x4f3cdd=_[_0x20cd('0x35')]({},_0x4f3cdd,_0x2d7052[_0x20cd('0x37')]);return _0x7e284a[_0x20cd('0x4a')](_0x4f3cdd);}})['then'](function(_0x250685){if(_0x250685){_0xa125c9=_0x250685[_0x20cd('0x2e')];if(!_0x2d7052[_0x20cd('0x2a')][_0x20cd('0x2f')](_0x20cd('0x49'))){_0x4f3cdd[_0x20cd('0x1a')]=qs[_0x20cd('0x1a')](_0x2d7052[_0x20cd('0x2a')][_0x20cd('0x1a')]);_0x4f3cdd['offset']=qs[_0x20cd('0x18')](_0x2d7052[_0x20cd('0x2a')][_0x20cd('0x18')]);}return _0x7e284a[_0x20cd('0x4a')](_0x4f3cdd);}})[_0x20cd('0x3c')](function(_0x3d6e66){if(_0x3d6e66){return _0x3d6e66?{'count':_0xa125c9,'rows':_0x3d6e66}:null;}})[_0x20cd('0x3c')](respondWithResult(_0xf60676,null))['catch'](handleError(_0xf60676,null));};exports[_0x20cd('0x4b')]=function(_0x20dfd5,_0x52204e,_0xfab549){var _0x2c04ab={};var _0x54f583={};var _0x9bba2b;var _0x83a6c5;return db['VtigerConfiguration'][_0x20cd('0x47')]({'where':{'id':_0x20dfd5[_0x20cd('0x3f')]['id']}})['then'](handleEntityNotFound(_0x52204e,null))[_0x20cd('0x3c')](function(_0xee7ef7){if(_0xee7ef7){_0x9bba2b=_0xee7ef7;_0x54f583[_0x20cd('0x2b')]=_[_0x20cd('0x40')](db[_0x20cd('0x48')][_0x20cd('0x26')]);_0x54f583[_0x20cd('0x2a')]=_[_0x20cd('0x40')](_0x20dfd5['query']);_0x54f583[_0x20cd('0x41')]=_[_0x20cd('0x42')](_0x54f583[_0x20cd('0x2b')],_0x54f583[_0x20cd('0x2a')]);_0x2c04ab[_0x20cd('0x2c')]=_['intersection'](_0x54f583[_0x20cd('0x2b')],qs[_0x20cd('0x2d')](_0x20dfd5[_0x20cd('0x2a')][_0x20cd('0x2d')]));_0x2c04ab[_0x20cd('0x2c')]=_0x2c04ab[_0x20cd('0x2c')][_0x20cd('0x2e')]?_0x2c04ab[_0x20cd('0x2c')]:_0x54f583['model'];_0x2c04ab[_0x20cd('0x30')]=qs[_0x20cd('0x31')](_0x20dfd5[_0x20cd('0x2a')][_0x20cd('0x31')]);_0x2c04ab[_0x20cd('0x32')]=qs['filters'](_[_0x20cd('0x33')](_0x20dfd5[_0x20cd('0x2a')],_0x54f583[_0x20cd('0x41')]));if(_0x20dfd5['query'][_0x20cd('0x34')]){_0x2c04ab[_0x20cd('0x32')]=_[_0x20cd('0x35')](_0x2c04ab[_0x20cd('0x32')],{'$or':_[_0x20cd('0x25')](_0x2c04ab['attributes'],function(_0x552b49){var _0x5363c7={};_0x5363c7[_0x552b49]={'$like':'%'+_0x20dfd5[_0x20cd('0x2a')][_0x20cd('0x34')]+'%'};return _0x5363c7;})});}_0x2c04ab=_[_0x20cd('0x35')]({},_0x2c04ab,_0x20dfd5[_0x20cd('0x37')]);return _0x9bba2b[_0x20cd('0x4b')](_0x2c04ab);}})[_0x20cd('0x3c')](function(_0x58eab7){if(_0x58eab7){_0x83a6c5=_0x58eab7[_0x20cd('0x2e')];if(!_0x20dfd5['query'][_0x20cd('0x2f')]('nolimit')){_0x2c04ab[_0x20cd('0x1a')]=qs[_0x20cd('0x1a')](_0x20dfd5[_0x20cd('0x2a')][_0x20cd('0x1a')]);_0x2c04ab[_0x20cd('0x18')]=qs[_0x20cd('0x18')](_0x20dfd5['query'][_0x20cd('0x18')]);}return _0x9bba2b[_0x20cd('0x4b')](_0x2c04ab);}})['then'](function(_0x5f3789){if(_0x5f3789){return _0x5f3789?{'count':_0x83a6c5,'rows':_0x5f3789}:null;}})[_0x20cd('0x3c')](respondWithResult(_0x52204e,null))[_0x20cd('0x3e')](handleError(_0x52204e,null));};