5e407c7212a81cd0a439d9aec593d2834c0b1ff1
[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 _0x450a=['save','update','then','destroy','error','stack','name','send','index','VtigerConfiguration','rawAttributes','fieldName','type','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','count','includeAll','rows','catch','show','include','find','create','body','params','getFields','findOne','VtigerField','map','getSubjects','getDescriptions','eml-format','rimraf','request-promise','moment','mustache','util','sox','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','limit','undefined','set','Content-Range','json','apply','reject'];(function(_0xe68d38,_0x4c0207){var _0x4549e1=function(_0x120f31){while(--_0x120f31){_0xe68d38['push'](_0xe68d38['shift']());}};_0x4549e1(++_0x4c0207);}(_0x450a,0x11c));var _0xa450=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x450a[_0x19950b];return _0x3c6b41;};'use strict';var emlformat=require(_0xa450('0x0'));var rimraf=require(_0xa450('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xa450('0x2'));var moment=require(_0xa450('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xa450('0x4'));var util=require(_0xa450('0x5'));var path=require('path');var sox=require(_0xa450('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa450('0x7'));var _=require(_0xa450('0x8'));var squel=require(_0xa450('0x9'));var crypto=require(_0xa450('0xa'));var jsforce=require(_0xa450('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xa450('0xc'));var Redis=require(_0xa450('0xd'));var authService=require(_0xa450('0xe'));var qs=require(_0xa450('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa450('0x10'));var logger=require('../../config/logger')(_0xa450('0x11'));var utils=require(_0xa450('0x12'));var config=require(_0xa450('0x13'));var licenseUtil=require(_0xa450('0x14'));var db=require(_0xa450('0x15'))['db'];function respondWithStatusCode(_0x5ac199,_0x51387){_0x51387=_0x51387||0xcc;return function(_0x47b246){if(_0x47b246){return _0x5ac199['sendStatus'](_0x51387);}return _0x5ac199[_0xa450('0x16')](_0x51387)[_0xa450('0x17')]();};}function respondWithResult(_0x20060e,_0x396760){_0x396760=_0x396760||0xc8;return function(_0x54cfc3){if(_0x54cfc3){return _0x20060e[_0xa450('0x16')](_0x396760)['json'](_0x54cfc3);}};}function respondWithFilteredResult(_0x5897ae,_0x24b94f){return function(_0x4b43a5){if(_0x4b43a5){var _0x571288=typeof _0x24b94f[_0xa450('0x18')]==='undefined'&&typeof _0x24b94f[_0xa450('0x19')]===_0xa450('0x1a');var _0x590e21=_0x4b43a5['count'];var _0x3d4006=_0x571288?0x0:_0x24b94f[_0xa450('0x18')];var _0x2c5407=_0x571288?_0x4b43a5['count']:_0x24b94f[_0xa450('0x18')]+_0x24b94f[_0xa450('0x19')];var _0x1e0d5c;if(_0x2c5407>=_0x590e21){_0x2c5407=_0x590e21;_0x1e0d5c=0xc8;}else{_0x1e0d5c=0xce;}_0x5897ae[_0xa450('0x16')](_0x1e0d5c);return _0x5897ae[_0xa450('0x1b')](_0xa450('0x1c'),_0x3d4006+'-'+_0x2c5407+'/'+_0x590e21)[_0xa450('0x1d')](_0x4b43a5);}return null;};}function patchUpdates(_0x980102){return function(_0x1dc60d){try{jsonpatch[_0xa450('0x1e')](_0x1dc60d,_0x980102,!![]);}catch(_0x27538a){return BPromise[_0xa450('0x1f')](_0x27538a);}return _0x1dc60d[_0xa450('0x20')]();};}function saveUpdates(_0x47ae94,_0x12985e){return function(_0x2d870e){if(_0x2d870e){return _0x2d870e[_0xa450('0x21')](_0x47ae94)[_0xa450('0x22')](function(_0xd52995){return _0xd52995;});}return null;};}function removeEntity(_0x3f2c72,_0x383f23){return function(_0x1501d2){if(_0x1501d2){return _0x1501d2[_0xa450('0x23')]()[_0xa450('0x22')](function(){_0x3f2c72['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x364ac4,_0x1c831f){return function(_0x6ffff8){if(!_0x6ffff8){_0x364ac4['sendStatus'](0x194);}return _0x6ffff8;};}function handleError(_0x283090,_0x5c9143){_0x5c9143=_0x5c9143||0x1f4;return function(_0x4cd612){logger[_0xa450('0x24')](_0x4cd612[_0xa450('0x25')]);if(_0x4cd612[_0xa450('0x26')]){delete _0x4cd612['name'];}_0x283090[_0xa450('0x16')](_0x5c9143)[_0xa450('0x27')](_0x4cd612);};}exports[_0xa450('0x28')]=function(_0x5223ad,_0xd767c9){var _0x529984={},_0x4911ab={},_0x269b74={'count':0x0,'rows':[]};var _0x217ffd=_['map'](db[_0xa450('0x29')][_0xa450('0x2a')],function(_0x52a5a2){return{'name':_0x52a5a2[_0xa450('0x2b')],'type':_0x52a5a2[_0xa450('0x2c')]['key']};});_0x4911ab[_0xa450('0x2d')]=_['map'](_0x217ffd,_0xa450('0x26'));_0x4911ab['query']=_[_0xa450('0x2e')](_0x5223ad[_0xa450('0x2f')]);_0x4911ab[_0xa450('0x30')]=_[_0xa450('0x31')](_0x4911ab['model'],_0x4911ab['query']);_0x529984[_0xa450('0x32')]=_['intersection'](_0x4911ab[_0xa450('0x2d')],qs[_0xa450('0x33')](_0x5223ad[_0xa450('0x2f')]['fields']));_0x529984[_0xa450('0x32')]=_0x529984['attributes'][_0xa450('0x34')]?_0x529984['attributes']:_0x4911ab[_0xa450('0x2d')];if(!_0x5223ad['query'][_0xa450('0x35')](_0xa450('0x36'))){_0x529984[_0xa450('0x19')]=qs[_0xa450('0x19')](_0x5223ad[_0xa450('0x2f')][_0xa450('0x19')]);_0x529984[_0xa450('0x18')]=qs[_0xa450('0x18')](_0x5223ad[_0xa450('0x2f')][_0xa450('0x18')]);}_0x529984[_0xa450('0x37')]=qs[_0xa450('0x38')](_0x5223ad[_0xa450('0x2f')][_0xa450('0x38')]);_0x529984['where']=qs[_0xa450('0x30')](_[_0xa450('0x39')](_0x5223ad[_0xa450('0x2f')],_0x4911ab[_0xa450('0x30')]),_0x217ffd);if(_0x5223ad['query'][_0xa450('0x3a')]){_0x529984[_0xa450('0x3b')]=_[_0xa450('0x3c')](_0x529984[_0xa450('0x3b')],{'$or':_['map'](_0x217ffd,function(_0xacbced){if(_0xacbced[_0xa450('0x2c')]!==_0xa450('0x3d')){var _0x1b21d3={};_0x1b21d3[_0xacbced[_0xa450('0x26')]]={'$like':'%'+_0x5223ad[_0xa450('0x2f')][_0xa450('0x3a')]+'%'};return _0x1b21d3;}})});}_0x529984=_[_0xa450('0x3c')]({},_0x529984,_0x5223ad[_0xa450('0x3e')]);var _0x3d8d06={'where':_0x529984[_0xa450('0x3b')]};return db[_0xa450('0x29')][_0xa450('0x3f')](_0x3d8d06)[_0xa450('0x22')](function(_0x28a1eb){_0x269b74[_0xa450('0x3f')]=_0x28a1eb;if(_0x5223ad['query'][_0xa450('0x40')]){_0x529984['include']=[{'all':!![]}];}return db[_0xa450('0x29')]['findAll'](_0x529984);})[_0xa450('0x22')](function(_0x195e0a){_0x269b74[_0xa450('0x41')]=_0x195e0a;return _0x269b74;})['then'](respondWithFilteredResult(_0xd767c9,_0x529984))[_0xa450('0x42')](handleError(_0xd767c9,null));};exports[_0xa450('0x43')]=function(_0x1e750d,_0x29ddea){var _0x345ed8={'raw':![],'where':{'id':_0x1e750d['params']['id']}},_0x574189={};_0x574189[_0xa450('0x2d')]=_[_0xa450('0x2e')](db[_0xa450('0x29')][_0xa450('0x2a')]);_0x574189['query']=_['keys'](_0x1e750d[_0xa450('0x2f')]);_0x574189[_0xa450('0x30')]=_[_0xa450('0x31')](_0x574189[_0xa450('0x2d')],_0x574189[_0xa450('0x2f')]);_0x345ed8['attributes']=_[_0xa450('0x31')](_0x574189['model'],qs[_0xa450('0x33')](_0x1e750d[_0xa450('0x2f')][_0xa450('0x33')]));_0x345ed8[_0xa450('0x32')]=_0x345ed8[_0xa450('0x32')][_0xa450('0x34')]?_0x345ed8[_0xa450('0x32')]:_0x574189[_0xa450('0x2d')];if(_0x1e750d[_0xa450('0x2f')][_0xa450('0x40')]){_0x345ed8[_0xa450('0x44')]=[{'all':!![]}];}_0x345ed8=_[_0xa450('0x3c')]({},_0x345ed8,_0x1e750d[_0xa450('0x3e')]);return db[_0xa450('0x29')][_0xa450('0x45')](_0x345ed8)[_0xa450('0x22')](handleEntityNotFound(_0x29ddea,null))[_0xa450('0x22')](respondWithResult(_0x29ddea,null))[_0xa450('0x42')](handleError(_0x29ddea,null));};exports[_0xa450('0x46')]=function(_0x49358a,_0x386a8){return db[_0xa450('0x29')][_0xa450('0x46')](_0x49358a[_0xa450('0x47')],{})[_0xa450('0x22')](respondWithResult(_0x386a8,0xc9))[_0xa450('0x42')](handleError(_0x386a8,null));};exports[_0xa450('0x21')]=function(_0x327827,_0x42b076){if(_0x327827['body']['id']){delete _0x327827['body']['id'];}return db[_0xa450('0x29')][_0xa450('0x45')]({'where':{'id':_0x327827[_0xa450('0x48')]['id']}})[_0xa450('0x22')](handleEntityNotFound(_0x42b076,null))[_0xa450('0x22')](saveUpdates(_0x327827['body'],null))['then'](respondWithResult(_0x42b076,null))[_0xa450('0x42')](handleError(_0x42b076,null));};exports[_0xa450('0x23')]=function(_0x6c0eb3,_0x56086b){return db['VtigerConfiguration'][_0xa450('0x45')]({'where':{'id':_0x6c0eb3[_0xa450('0x48')]['id']}})[_0xa450('0x22')](handleEntityNotFound(_0x56086b,null))['then'](removeEntity(_0x56086b,null))[_0xa450('0x42')](handleError(_0x56086b,null));};exports[_0xa450('0x49')]=function(_0x177203,_0x4d536f,_0x9c608b){var _0x3310fa={};var _0x9e00f8={};var _0x180a3f;var _0x469253;return db['VtigerConfiguration'][_0xa450('0x4a')]({'where':{'id':_0x177203[_0xa450('0x48')]['id']}})[_0xa450('0x22')](handleEntityNotFound(_0x4d536f,null))['then'](function(_0x3591d7){if(_0x3591d7){_0x180a3f=_0x3591d7;_0x9e00f8['model']=_['keys'](db[_0xa450('0x4b')][_0xa450('0x2a')]);_0x9e00f8[_0xa450('0x2f')]=_['keys'](_0x177203[_0xa450('0x2f')]);_0x9e00f8[_0xa450('0x30')]=_['intersection'](_0x9e00f8['model'],_0x9e00f8['query']);_0x3310fa[_0xa450('0x32')]=_[_0xa450('0x31')](_0x9e00f8['model'],qs['fields'](_0x177203['query'][_0xa450('0x33')]));_0x3310fa[_0xa450('0x32')]=_0x3310fa['attributes'][_0xa450('0x34')]?_0x3310fa[_0xa450('0x32')]:_0x9e00f8[_0xa450('0x2d')];_0x3310fa[_0xa450('0x37')]=qs[_0xa450('0x38')](_0x177203[_0xa450('0x2f')][_0xa450('0x38')]);_0x3310fa[_0xa450('0x3b')]=qs['filters'](_[_0xa450('0x39')](_0x177203[_0xa450('0x2f')],_0x9e00f8['filters']));if(_0x177203[_0xa450('0x2f')][_0xa450('0x3a')]){_0x3310fa[_0xa450('0x3b')]=_['merge'](_0x3310fa[_0xa450('0x3b')],{'$or':_[_0xa450('0x4c')](_0x3310fa['attributes'],function(_0x28a6bf){var _0x17a029={};_0x17a029[_0x28a6bf]={'$like':'%'+_0x177203['query'][_0xa450('0x3a')]+'%'};return _0x17a029;})});}_0x3310fa=_[_0xa450('0x3c')]({},_0x3310fa,_0x177203[_0xa450('0x3e')]);return _0x180a3f[_0xa450('0x49')](_0x3310fa);}})['then'](function(_0x4523bd){if(_0x4523bd){_0x469253=_0x4523bd[_0xa450('0x34')];if(!_0x177203[_0xa450('0x2f')][_0xa450('0x35')](_0xa450('0x36'))){_0x3310fa[_0xa450('0x19')]=qs[_0xa450('0x19')](_0x177203['query'][_0xa450('0x19')]);_0x3310fa[_0xa450('0x18')]=qs[_0xa450('0x18')](_0x177203[_0xa450('0x2f')][_0xa450('0x18')]);}return _0x180a3f[_0xa450('0x49')](_0x3310fa);}})[_0xa450('0x22')](function(_0x1a53dc){if(_0x1a53dc){return _0x1a53dc?{'count':_0x469253,'rows':_0x1a53dc}:null;}})[_0xa450('0x22')](respondWithResult(_0x4d536f,null))['catch'](handleError(_0x4d536f,null));};exports['getSubjects']=function(_0x49f547,_0x1f84e9,_0x2631c9){var _0x4c985a={};var _0x4fdb0a={};var _0x413b35;var _0x174378;return db['VtigerConfiguration']['findOne']({'where':{'id':_0x49f547['params']['id']}})[_0xa450('0x22')](handleEntityNotFound(_0x1f84e9,null))[_0xa450('0x22')](function(_0x423626){if(_0x423626){_0x413b35=_0x423626;_0x4fdb0a[_0xa450('0x2d')]=_['keys'](db[_0xa450('0x4b')]['rawAttributes']);_0x4fdb0a['query']=_[_0xa450('0x2e')](_0x49f547[_0xa450('0x2f')]);_0x4fdb0a['filters']=_['intersection'](_0x4fdb0a[_0xa450('0x2d')],_0x4fdb0a['query']);_0x4c985a[_0xa450('0x32')]=_['intersection'](_0x4fdb0a['model'],qs[_0xa450('0x33')](_0x49f547[_0xa450('0x2f')][_0xa450('0x33')]));_0x4c985a[_0xa450('0x32')]=_0x4c985a[_0xa450('0x32')][_0xa450('0x34')]?_0x4c985a[_0xa450('0x32')]:_0x4fdb0a[_0xa450('0x2d')];_0x4c985a[_0xa450('0x37')]=qs['sort'](_0x49f547['query'][_0xa450('0x38')]);_0x4c985a[_0xa450('0x3b')]=qs[_0xa450('0x30')](_[_0xa450('0x39')](_0x49f547['query'],_0x4fdb0a['filters']));if(_0x49f547[_0xa450('0x2f')][_0xa450('0x3a')]){_0x4c985a[_0xa450('0x3b')]=_[_0xa450('0x3c')](_0x4c985a[_0xa450('0x3b')],{'$or':_[_0xa450('0x4c')](_0x4c985a[_0xa450('0x32')],function(_0x27be2d){var _0x6dd5c0={};_0x6dd5c0[_0x27be2d]={'$like':'%'+_0x49f547[_0xa450('0x2f')][_0xa450('0x3a')]+'%'};return _0x6dd5c0;})});}_0x4c985a=_[_0xa450('0x3c')]({},_0x4c985a,_0x49f547[_0xa450('0x3e')]);return _0x413b35[_0xa450('0x4d')](_0x4c985a);}})[_0xa450('0x22')](function(_0x4c5c73){if(_0x4c5c73){_0x174378=_0x4c5c73[_0xa450('0x34')];if(!_0x49f547[_0xa450('0x2f')][_0xa450('0x35')](_0xa450('0x36'))){_0x4c985a[_0xa450('0x19')]=qs[_0xa450('0x19')](_0x49f547[_0xa450('0x2f')]['limit']);_0x4c985a[_0xa450('0x18')]=qs[_0xa450('0x18')](_0x49f547['query'][_0xa450('0x18')]);}return _0x413b35[_0xa450('0x4d')](_0x4c985a);}})['then'](function(_0x466dbd){if(_0x466dbd){return _0x466dbd?{'count':_0x174378,'rows':_0x466dbd}:null;}})[_0xa450('0x22')](respondWithResult(_0x1f84e9,null))[_0xa450('0x42')](handleError(_0x1f84e9,null));};exports[_0xa450('0x4e')]=function(_0x23e538,_0x3d1be6,_0x57fadc){var _0x2b91c4={};var _0xa3bd4b={};var _0x5d16b3;var _0x47e4f8;return db[_0xa450('0x29')]['findOne']({'where':{'id':_0x23e538[_0xa450('0x48')]['id']}})[_0xa450('0x22')](handleEntityNotFound(_0x3d1be6,null))[_0xa450('0x22')](function(_0x36f72a){if(_0x36f72a){_0x5d16b3=_0x36f72a;_0xa3bd4b[_0xa450('0x2d')]=_[_0xa450('0x2e')](db[_0xa450('0x4b')][_0xa450('0x2a')]);_0xa3bd4b[_0xa450('0x2f')]=_[_0xa450('0x2e')](_0x23e538[_0xa450('0x2f')]);_0xa3bd4b[_0xa450('0x30')]=_[_0xa450('0x31')](_0xa3bd4b[_0xa450('0x2d')],_0xa3bd4b[_0xa450('0x2f')]);_0x2b91c4[_0xa450('0x32')]=_[_0xa450('0x31')](_0xa3bd4b[_0xa450('0x2d')],qs[_0xa450('0x33')](_0x23e538['query'][_0xa450('0x33')]));_0x2b91c4['attributes']=_0x2b91c4[_0xa450('0x32')][_0xa450('0x34')]?_0x2b91c4[_0xa450('0x32')]:_0xa3bd4b[_0xa450('0x2d')];_0x2b91c4[_0xa450('0x37')]=qs[_0xa450('0x38')](_0x23e538[_0xa450('0x2f')][_0xa450('0x38')]);_0x2b91c4['where']=qs[_0xa450('0x30')](_[_0xa450('0x39')](_0x23e538[_0xa450('0x2f')],_0xa3bd4b[_0xa450('0x30')]));if(_0x23e538[_0xa450('0x2f')][_0xa450('0x3a')]){_0x2b91c4[_0xa450('0x3b')]=_[_0xa450('0x3c')](_0x2b91c4[_0xa450('0x3b')],{'$or':_['map'](_0x2b91c4[_0xa450('0x32')],function(_0xefaec3){var _0x178a4b={};_0x178a4b[_0xefaec3]={'$like':'%'+_0x23e538[_0xa450('0x2f')][_0xa450('0x3a')]+'%'};return _0x178a4b;})});}_0x2b91c4=_[_0xa450('0x3c')]({},_0x2b91c4,_0x23e538[_0xa450('0x3e')]);return _0x5d16b3['getDescriptions'](_0x2b91c4);}})[_0xa450('0x22')](function(_0xc1f6fc){if(_0xc1f6fc){_0x47e4f8=_0xc1f6fc[_0xa450('0x34')];if(!_0x23e538['query']['hasOwnProperty'](_0xa450('0x36'))){_0x2b91c4[_0xa450('0x19')]=qs[_0xa450('0x19')](_0x23e538[_0xa450('0x2f')][_0xa450('0x19')]);_0x2b91c4[_0xa450('0x18')]=qs[_0xa450('0x18')](_0x23e538[_0xa450('0x2f')]['offset']);}return _0x5d16b3[_0xa450('0x4e')](_0x2b91c4);}})[_0xa450('0x22')](function(_0x4d3f12){if(_0x4d3f12){return _0x4d3f12?{'count':_0x47e4f8,'rows':_0x4d3f12}:null;}})[_0xa450('0x22')](respondWithResult(_0x3d1be6,null))[_0xa450('0x42')](handleError(_0x3d1be6,null));};