b4e7cba16f16e53ea976cd7a9b3ef58b5dded76b
[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 _0x91f3=['params','find','create','body','destroy','getFields','order','map','nolimit','getSubjects','VtigerField','getDescriptions','findOne','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','set','Content-Range','apply','reject','save','update','then','end','error','name','send','index','VtigerConfiguration','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','sort','where','filters','pick','VIRTUAL','filter','merge','options','count','includeAll','include','findAll','rows','catch'];(function(_0xba7f9a,_0x3b4c45){var _0x3541f4=function(_0x14e0f6){while(--_0x14e0f6){_0xba7f9a['push'](_0xba7f9a['shift']());}};_0x3541f4(++_0x3b4c45);}(_0x91f3,0x19d));var _0x391f=function(_0x1bf5f6,_0x3c3180){_0x1bf5f6=_0x1bf5f6-0x0;var _0x36a39e=_0x91f3[_0x1bf5f6];return _0x36a39e;};'use strict';var emlformat=require(_0x391f('0x0'));var rimraf=require(_0x391f('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x391f('0x2'));var moment=require(_0x391f('0x3'));var BPromise=require(_0x391f('0x4'));var Mustache=require(_0x391f('0x5'));var util=require(_0x391f('0x6'));var path=require(_0x391f('0x7'));var sox=require(_0x391f('0x8'));var csv=require(_0x391f('0x9'));var ejs=require(_0x391f('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x391f('0xb'));var squel=require('squel');var crypto=require(_0x391f('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x391f('0x9'));var querystring=require(_0x391f('0xd'));var Papa=require(_0x391f('0xe'));var Redis=require(_0x391f('0xf'));var authService=require(_0x391f('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x391f('0x11'))(_0x391f('0x12'));var utils=require('../../config/utils');var config=require(_0x391f('0x13'));var licenseUtil=require(_0x391f('0x14'));var db=require(_0x391f('0x15'))['db'];function respondWithStatusCode(_0x2882a0,_0x5475d8){_0x5475d8=_0x5475d8||0xcc;return function(_0x518b4b){if(_0x518b4b){return _0x2882a0[_0x391f('0x16')](_0x5475d8);}return _0x2882a0[_0x391f('0x17')](_0x5475d8)['end']();};}function respondWithResult(_0x372500,_0x46a23f){_0x46a23f=_0x46a23f||0xc8;return function(_0x2d3fea){if(_0x2d3fea){return _0x372500[_0x391f('0x17')](_0x46a23f)[_0x391f('0x18')](_0x2d3fea);}};}function respondWithFilteredResult(_0xb88bf2,_0x17bba6){return function(_0x4d5483){if(_0x4d5483){var _0x4d45d3=typeof _0x17bba6[_0x391f('0x19')]==='undefined'&&typeof _0x17bba6['limit']===_0x391f('0x1a');var _0x11cfda=_0x4d5483['count'];var _0x436ed6=_0x4d45d3?0x0:_0x17bba6[_0x391f('0x19')];var _0x261d25=_0x4d45d3?_0x4d5483['count']:_0x17bba6['offset']+_0x17bba6[_0x391f('0x1b')];var _0x59c174;if(_0x261d25>=_0x11cfda){_0x261d25=_0x11cfda;_0x59c174=0xc8;}else{_0x59c174=0xce;}_0xb88bf2[_0x391f('0x17')](_0x59c174);return _0xb88bf2[_0x391f('0x1c')](_0x391f('0x1d'),_0x436ed6+'-'+_0x261d25+'/'+_0x11cfda)['json'](_0x4d5483);}return null;};}function patchUpdates(_0x1bd262){return function(_0x30f11f){try{jsonpatch[_0x391f('0x1e')](_0x30f11f,_0x1bd262,!![]);}catch(_0x7f460d){return BPromise[_0x391f('0x1f')](_0x7f460d);}return _0x30f11f[_0x391f('0x20')]();};}function saveUpdates(_0x54ef46,_0x9eb7c9){return function(_0x18c176){if(_0x18c176){return _0x18c176[_0x391f('0x21')](_0x54ef46)[_0x391f('0x22')](function(_0x43c038){return _0x43c038;});}return null;};}function removeEntity(_0x389f2b,_0x2616ff){return function(_0x4cc35a){if(_0x4cc35a){return _0x4cc35a['destroy']()[_0x391f('0x22')](function(){_0x389f2b[_0x391f('0x17')](0xcc)[_0x391f('0x23')]();});}};}function handleEntityNotFound(_0x46c32e,_0x47f9f1){return function(_0x51cb50){if(!_0x51cb50){_0x46c32e[_0x391f('0x16')](0x194);}return _0x51cb50;};}function handleError(_0x1b94a8,_0x317f77){_0x317f77=_0x317f77||0x1f4;return function(_0x196c8b){logger[_0x391f('0x24')](_0x196c8b['stack']);if(_0x196c8b[_0x391f('0x25')]){delete _0x196c8b['name'];}_0x1b94a8[_0x391f('0x17')](_0x317f77)[_0x391f('0x26')](_0x196c8b);};}exports[_0x391f('0x27')]=function(_0x50cb77,_0x4e1b56){var _0x228cfc={},_0x44362b={},_0x1f40e6={'count':0x0,'rows':[]};var _0x294bed=_['map'](db[_0x391f('0x28')][_0x391f('0x29')],function(_0x220c0f){return{'name':_0x220c0f[_0x391f('0x2a')],'type':_0x220c0f[_0x391f('0x2b')][_0x391f('0x2c')]};});_0x44362b[_0x391f('0x2d')]=_['map'](_0x294bed,'name');_0x44362b['query']=_[_0x391f('0x2e')](_0x50cb77[_0x391f('0x2f')]);_0x44362b['filters']=_[_0x391f('0x30')](_0x44362b[_0x391f('0x2d')],_0x44362b[_0x391f('0x2f')]);_0x228cfc[_0x391f('0x31')]=_[_0x391f('0x30')](_0x44362b[_0x391f('0x2d')],qs[_0x391f('0x32')](_0x50cb77[_0x391f('0x2f')][_0x391f('0x32')]));_0x228cfc[_0x391f('0x31')]=_0x228cfc['attributes'][_0x391f('0x33')]?_0x228cfc[_0x391f('0x31')]:_0x44362b[_0x391f('0x2d')];if(!_0x50cb77['query'][_0x391f('0x34')]('nolimit')){_0x228cfc['limit']=qs['limit'](_0x50cb77[_0x391f('0x2f')][_0x391f('0x1b')]);_0x228cfc[_0x391f('0x19')]=qs[_0x391f('0x19')](_0x50cb77[_0x391f('0x2f')][_0x391f('0x19')]);}_0x228cfc['order']=qs[_0x391f('0x35')](_0x50cb77[_0x391f('0x2f')]['sort']);_0x228cfc[_0x391f('0x36')]=qs[_0x391f('0x37')](_[_0x391f('0x38')](_0x50cb77[_0x391f('0x2f')],_0x44362b['filters']),_0x294bed);if(_0x50cb77[_0x391f('0x2f')]['filter']){_0x228cfc[_0x391f('0x36')]=_['merge'](_0x228cfc['where'],{'$or':_['map'](_0x294bed,function(_0x572beb){if(_0x572beb[_0x391f('0x2b')]!==_0x391f('0x39')){var _0x14c9a1={};_0x14c9a1[_0x572beb[_0x391f('0x25')]]={'$like':'%'+_0x50cb77[_0x391f('0x2f')][_0x391f('0x3a')]+'%'};return _0x14c9a1;}})});}_0x228cfc=_[_0x391f('0x3b')]({},_0x228cfc,_0x50cb77[_0x391f('0x3c')]);var _0x4d7ede={'where':_0x228cfc[_0x391f('0x36')]};return db[_0x391f('0x28')][_0x391f('0x3d')](_0x4d7ede)[_0x391f('0x22')](function(_0x26429d){_0x1f40e6[_0x391f('0x3d')]=_0x26429d;if(_0x50cb77['query'][_0x391f('0x3e')]){_0x228cfc[_0x391f('0x3f')]=[{'all':!![]}];}return db[_0x391f('0x28')][_0x391f('0x40')](_0x228cfc);})[_0x391f('0x22')](function(_0x545f69){_0x1f40e6[_0x391f('0x41')]=_0x545f69;return _0x1f40e6;})[_0x391f('0x22')](respondWithFilteredResult(_0x4e1b56,_0x228cfc))[_0x391f('0x42')](handleError(_0x4e1b56,null));};exports['show']=function(_0x30f894,_0x59f576){var _0x10b7f9={'raw':![],'where':{'id':_0x30f894[_0x391f('0x43')]['id']}},_0x5b59a9={};_0x5b59a9['model']=_[_0x391f('0x2e')](db['VtigerConfiguration'][_0x391f('0x29')]);_0x5b59a9['query']=_['keys'](_0x30f894[_0x391f('0x2f')]);_0x5b59a9[_0x391f('0x37')]=_[_0x391f('0x30')](_0x5b59a9['model'],_0x5b59a9[_0x391f('0x2f')]);_0x10b7f9['attributes']=_['intersection'](_0x5b59a9[_0x391f('0x2d')],qs[_0x391f('0x32')](_0x30f894[_0x391f('0x2f')][_0x391f('0x32')]));_0x10b7f9[_0x391f('0x31')]=_0x10b7f9[_0x391f('0x31')][_0x391f('0x33')]?_0x10b7f9[_0x391f('0x31')]:_0x5b59a9[_0x391f('0x2d')];if(_0x30f894[_0x391f('0x2f')]['includeAll']){_0x10b7f9['include']=[{'all':!![]}];}_0x10b7f9=_['merge']({},_0x10b7f9,_0x30f894['options']);return db[_0x391f('0x28')][_0x391f('0x44')](_0x10b7f9)[_0x391f('0x22')](handleEntityNotFound(_0x59f576,null))[_0x391f('0x22')](respondWithResult(_0x59f576,null))[_0x391f('0x42')](handleError(_0x59f576,null));};exports[_0x391f('0x45')]=function(_0x4764ec,_0x39a1cc){return db[_0x391f('0x28')][_0x391f('0x45')](_0x4764ec[_0x391f('0x46')],{})['then'](respondWithResult(_0x39a1cc,0xc9))[_0x391f('0x42')](handleError(_0x39a1cc,null));};exports[_0x391f('0x21')]=function(_0x48cd4c,_0x5d985e){if(_0x48cd4c[_0x391f('0x46')]['id']){delete _0x48cd4c[_0x391f('0x46')]['id'];}return db[_0x391f('0x28')]['find']({'where':{'id':_0x48cd4c[_0x391f('0x43')]['id']}})[_0x391f('0x22')](handleEntityNotFound(_0x5d985e,null))[_0x391f('0x22')](saveUpdates(_0x48cd4c['body'],null))[_0x391f('0x22')](respondWithResult(_0x5d985e,null))[_0x391f('0x42')](handleError(_0x5d985e,null));};exports[_0x391f('0x47')]=function(_0x4611dc,_0x19b23f){return db['VtigerConfiguration'][_0x391f('0x44')]({'where':{'id':_0x4611dc[_0x391f('0x43')]['id']}})['then'](handleEntityNotFound(_0x19b23f,null))[_0x391f('0x22')](removeEntity(_0x19b23f,null))['catch'](handleError(_0x19b23f,null));};exports[_0x391f('0x48')]=function(_0xf2ea81,_0x2e615e,_0x2e1cf2){var _0x5e2835={};var _0x51eb71={};var _0x1650f4;var _0x317376;return db[_0x391f('0x28')]['findOne']({'where':{'id':_0xf2ea81['params']['id']}})[_0x391f('0x22')](handleEntityNotFound(_0x2e615e,null))[_0x391f('0x22')](function(_0x46b081){if(_0x46b081){_0x1650f4=_0x46b081;_0x51eb71[_0x391f('0x2d')]=_['keys'](db['VtigerField']['rawAttributes']);_0x51eb71[_0x391f('0x2f')]=_[_0x391f('0x2e')](_0xf2ea81['query']);_0x51eb71[_0x391f('0x37')]=_[_0x391f('0x30')](_0x51eb71[_0x391f('0x2d')],_0x51eb71[_0x391f('0x2f')]);_0x5e2835[_0x391f('0x31')]=_['intersection'](_0x51eb71['model'],qs['fields'](_0xf2ea81[_0x391f('0x2f')][_0x391f('0x32')]));_0x5e2835[_0x391f('0x31')]=_0x5e2835[_0x391f('0x31')]['length']?_0x5e2835[_0x391f('0x31')]:_0x51eb71[_0x391f('0x2d')];_0x5e2835[_0x391f('0x49')]=qs[_0x391f('0x35')](_0xf2ea81[_0x391f('0x2f')][_0x391f('0x35')]);_0x5e2835['where']=qs[_0x391f('0x37')](_[_0x391f('0x38')](_0xf2ea81[_0x391f('0x2f')],_0x51eb71[_0x391f('0x37')]));if(_0xf2ea81[_0x391f('0x2f')]['filter']){_0x5e2835[_0x391f('0x36')]=_['merge'](_0x5e2835[_0x391f('0x36')],{'$or':_[_0x391f('0x4a')](_0x5e2835[_0x391f('0x31')],function(_0x47832f){var _0x2e4127={};_0x2e4127[_0x47832f]={'$like':'%'+_0xf2ea81[_0x391f('0x2f')]['filter']+'%'};return _0x2e4127;})});}_0x5e2835=_[_0x391f('0x3b')]({},_0x5e2835,_0xf2ea81[_0x391f('0x3c')]);return _0x1650f4[_0x391f('0x48')](_0x5e2835);}})[_0x391f('0x22')](function(_0x16a7ec){if(_0x16a7ec){_0x317376=_0x16a7ec[_0x391f('0x33')];if(!_0xf2ea81[_0x391f('0x2f')][_0x391f('0x34')](_0x391f('0x4b'))){_0x5e2835['limit']=qs[_0x391f('0x1b')](_0xf2ea81[_0x391f('0x2f')][_0x391f('0x1b')]);_0x5e2835[_0x391f('0x19')]=qs[_0x391f('0x19')](_0xf2ea81[_0x391f('0x2f')][_0x391f('0x19')]);}return _0x1650f4[_0x391f('0x48')](_0x5e2835);}})[_0x391f('0x22')](function(_0x556d78){if(_0x556d78){return _0x556d78?{'count':_0x317376,'rows':_0x556d78}:null;}})['then'](respondWithResult(_0x2e615e,null))[_0x391f('0x42')](handleError(_0x2e615e,null));};exports[_0x391f('0x4c')]=function(_0x44937b,_0x209ebc,_0x21c318){var _0x102ca0={};var _0x3f31c6={};var _0x2bc64a;var _0x5cefd5;return db[_0x391f('0x28')]['findOne']({'where':{'id':_0x44937b['params']['id']}})['then'](handleEntityNotFound(_0x209ebc,null))['then'](function(_0xc2da1f){if(_0xc2da1f){_0x2bc64a=_0xc2da1f;_0x3f31c6[_0x391f('0x2d')]=_['keys'](db[_0x391f('0x4d')][_0x391f('0x29')]);_0x3f31c6[_0x391f('0x2f')]=_['keys'](_0x44937b[_0x391f('0x2f')]);_0x3f31c6[_0x391f('0x37')]=_['intersection'](_0x3f31c6[_0x391f('0x2d')],_0x3f31c6[_0x391f('0x2f')]);_0x102ca0[_0x391f('0x31')]=_[_0x391f('0x30')](_0x3f31c6[_0x391f('0x2d')],qs['fields'](_0x44937b[_0x391f('0x2f')][_0x391f('0x32')]));_0x102ca0[_0x391f('0x31')]=_0x102ca0[_0x391f('0x31')][_0x391f('0x33')]?_0x102ca0[_0x391f('0x31')]:_0x3f31c6[_0x391f('0x2d')];_0x102ca0[_0x391f('0x49')]=qs['sort'](_0x44937b[_0x391f('0x2f')]['sort']);_0x102ca0['where']=qs[_0x391f('0x37')](_[_0x391f('0x38')](_0x44937b['query'],_0x3f31c6[_0x391f('0x37')]));if(_0x44937b[_0x391f('0x2f')][_0x391f('0x3a')]){_0x102ca0[_0x391f('0x36')]=_[_0x391f('0x3b')](_0x102ca0[_0x391f('0x36')],{'$or':_[_0x391f('0x4a')](_0x102ca0['attributes'],function(_0x2b9821){var _0x3933ef={};_0x3933ef[_0x2b9821]={'$like':'%'+_0x44937b['query'][_0x391f('0x3a')]+'%'};return _0x3933ef;})});}_0x102ca0=_[_0x391f('0x3b')]({},_0x102ca0,_0x44937b[_0x391f('0x3c')]);return _0x2bc64a[_0x391f('0x4c')](_0x102ca0);}})['then'](function(_0x223753){if(_0x223753){_0x5cefd5=_0x223753[_0x391f('0x33')];if(!_0x44937b[_0x391f('0x2f')][_0x391f('0x34')]('nolimit')){_0x102ca0[_0x391f('0x1b')]=qs['limit'](_0x44937b[_0x391f('0x2f')][_0x391f('0x1b')]);_0x102ca0[_0x391f('0x19')]=qs[_0x391f('0x19')](_0x44937b[_0x391f('0x2f')][_0x391f('0x19')]);}return _0x2bc64a[_0x391f('0x4c')](_0x102ca0);}})[_0x391f('0x22')](function(_0x138cbd){if(_0x138cbd){return _0x138cbd?{'count':_0x5cefd5,'rows':_0x138cbd}:null;}})[_0x391f('0x22')](respondWithResult(_0x209ebc,null))[_0x391f('0x42')](handleError(_0x209ebc,null));};exports[_0x391f('0x4e')]=function(_0x49732c,_0x39c6cb,_0x164ff1){var _0x440a09={};var _0x243e10={};var _0x123a56;var _0x3b2508;return db['VtigerConfiguration'][_0x391f('0x4f')]({'where':{'id':_0x49732c['params']['id']}})[_0x391f('0x22')](handleEntityNotFound(_0x39c6cb,null))[_0x391f('0x22')](function(_0x413deb){if(_0x413deb){_0x123a56=_0x413deb;_0x243e10[_0x391f('0x2d')]=_[_0x391f('0x2e')](db[_0x391f('0x4d')][_0x391f('0x29')]);_0x243e10['query']=_[_0x391f('0x2e')](_0x49732c[_0x391f('0x2f')]);_0x243e10[_0x391f('0x37')]=_['intersection'](_0x243e10['model'],_0x243e10[_0x391f('0x2f')]);_0x440a09[_0x391f('0x31')]=_[_0x391f('0x30')](_0x243e10[_0x391f('0x2d')],qs[_0x391f('0x32')](_0x49732c[_0x391f('0x2f')]['fields']));_0x440a09[_0x391f('0x31')]=_0x440a09[_0x391f('0x31')][_0x391f('0x33')]?_0x440a09[_0x391f('0x31')]:_0x243e10[_0x391f('0x2d')];_0x440a09[_0x391f('0x49')]=qs['sort'](_0x49732c[_0x391f('0x2f')][_0x391f('0x35')]);_0x440a09[_0x391f('0x36')]=qs['filters'](_['pick'](_0x49732c[_0x391f('0x2f')],_0x243e10[_0x391f('0x37')]));if(_0x49732c['query'][_0x391f('0x3a')]){_0x440a09[_0x391f('0x36')]=_[_0x391f('0x3b')](_0x440a09[_0x391f('0x36')],{'$or':_[_0x391f('0x4a')](_0x440a09[_0x391f('0x31')],function(_0x539191){var _0x28e8de={};_0x28e8de[_0x539191]={'$like':'%'+_0x49732c[_0x391f('0x2f')][_0x391f('0x3a')]+'%'};return _0x28e8de;})});}_0x440a09=_[_0x391f('0x3b')]({},_0x440a09,_0x49732c[_0x391f('0x3c')]);return _0x123a56[_0x391f('0x4e')](_0x440a09);}})[_0x391f('0x22')](function(_0x570126){if(_0x570126){_0x3b2508=_0x570126[_0x391f('0x33')];if(!_0x49732c[_0x391f('0x2f')][_0x391f('0x34')](_0x391f('0x4b'))){_0x440a09['limit']=qs['limit'](_0x49732c['query'][_0x391f('0x1b')]);_0x440a09[_0x391f('0x19')]=qs[_0x391f('0x19')](_0x49732c['query'][_0x391f('0x19')]);}return _0x123a56['getDescriptions'](_0x440a09);}})['then'](function(_0x310c32){if(_0x310c32){return _0x310c32?{'count':_0x3b2508,'rows':_0x310c32}:null;}})[_0x391f('0x22')](respondWithResult(_0x39c6cb,null))['catch'](handleError(_0x39c6cb,null));};