Built motion from commit 753c950e.|2.5.42
[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 _0x87cb=['crypto','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','then','destroy','stack','name','send','index','VtigerConfiguration','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','fields','length','find','create','body','getFields','findOne','pick','getSubjects','hasOwnProperty','getDescriptions','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','to-csv','ejs','lodash','squel'];(function(_0x6c33fd,_0x3a68da){var _0x3add18=function(_0x4f52aa){while(--_0x4f52aa){_0x6c33fd['push'](_0x6c33fd['shift']());}};_0x3add18(++_0x3a68da);}(_0x87cb,0xdc));var _0xb87c=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x87cb[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0xb87c('0x0'));var rimraf=require(_0xb87c('0x1'));var zipdir=require(_0xb87c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb87c('0x3'));var moment=require(_0xb87c('0x4'));var BPromise=require(_0xb87c('0x5'));var Mustache=require('mustache');var util=require(_0xb87c('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xb87c('0x7'));var ejs=require(_0xb87c('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb87c('0x9'));var squel=require(_0xb87c('0xa'));var crypto=require(_0xb87c('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xb87c('0x7'));var querystring=require(_0xb87c('0xc'));var Papa=require('papaparse');var Redis=require(_0xb87c('0xd'));var authService=require(_0xb87c('0xe'));var qs=require(_0xb87c('0xf'));var as=require(_0xb87c('0x10'));var hardwareService=require(_0xb87c('0x11'));var logger=require(_0xb87c('0x12'))('api');var utils=require(_0xb87c('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xb87c('0x14'))['db'];function respondWithStatusCode(_0x2606a4,_0x427ddf){_0x427ddf=_0x427ddf||0xcc;return function(_0x4b2407){if(_0x4b2407){return _0x2606a4[_0xb87c('0x15')](_0x427ddf);}return _0x2606a4[_0xb87c('0x16')](_0x427ddf)[_0xb87c('0x17')]();};}function respondWithResult(_0x2c56da,_0xa1a65d){_0xa1a65d=_0xa1a65d||0xc8;return function(_0xd69e3e){if(_0xd69e3e){return _0x2c56da['status'](_0xa1a65d)[_0xb87c('0x18')](_0xd69e3e);}};}function respondWithFilteredResult(_0x2d38bf,_0x215d83){return function(_0xaea86e){if(_0xaea86e){var _0x2621b7=typeof _0x215d83['offset']===_0xb87c('0x19')&&typeof _0x215d83[_0xb87c('0x1a')]===_0xb87c('0x19');var _0x38cc45=_0xaea86e[_0xb87c('0x1b')];var _0x3797c5=_0x2621b7?0x0:_0x215d83[_0xb87c('0x1c')];var _0x20dcbf=_0x2621b7?_0xaea86e['count']:_0x215d83[_0xb87c('0x1c')]+_0x215d83['limit'];var _0x13723c;if(_0x20dcbf>=_0x38cc45){_0x20dcbf=_0x38cc45;_0x13723c=0xc8;}else{_0x13723c=0xce;}_0x2d38bf[_0xb87c('0x16')](_0x13723c);return _0x2d38bf[_0xb87c('0x1d')](_0xb87c('0x1e'),_0x3797c5+'-'+_0x20dcbf+'/'+_0x38cc45)[_0xb87c('0x18')](_0xaea86e);}return null;};}function patchUpdates(_0x46f15b){return function(_0x5db5d0){try{jsonpatch[_0xb87c('0x1f')](_0x5db5d0,_0x46f15b,!![]);}catch(_0x22e853){return BPromise['reject'](_0x22e853);}return _0x5db5d0[_0xb87c('0x20')]();};}function saveUpdates(_0x3a5d83,_0x121970){return function(_0x27c135){if(_0x27c135){return _0x27c135[_0xb87c('0x21')](_0x3a5d83)[_0xb87c('0x22')](function(_0x270e88){return _0x270e88;});}return null;};}function removeEntity(_0x1e17e1,_0x51592a){return function(_0x113c8c){if(_0x113c8c){return _0x113c8c[_0xb87c('0x23')]()[_0xb87c('0x22')](function(){_0x1e17e1['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x56bccb,_0x3a4e5c){return function(_0x1fa1e0){if(!_0x1fa1e0){_0x56bccb[_0xb87c('0x15')](0x194);}return _0x1fa1e0;};}function handleError(_0x34ce42,_0x183848){_0x183848=_0x183848||0x1f4;return function(_0xaf0208){logger['error'](_0xaf0208[_0xb87c('0x24')]);if(_0xaf0208[_0xb87c('0x25')]){delete _0xaf0208[_0xb87c('0x25')];}_0x34ce42[_0xb87c('0x16')](_0x183848)[_0xb87c('0x26')](_0xaf0208);};}exports[_0xb87c('0x27')]=function(_0x3cea63,_0x5ac6e0){var _0x5ce03e={},_0x4a3c27={},_0xc114bc={'count':0x0,'rows':[]};var _0xd6c581=_['map'](db[_0xb87c('0x28')][_0xb87c('0x29')],function(_0x30b694){return{'name':_0x30b694[_0xb87c('0x2a')],'type':_0x30b694[_0xb87c('0x2b')][_0xb87c('0x2c')]};});_0x4a3c27[_0xb87c('0x2d')]=_[_0xb87c('0x2e')](_0xd6c581,'name');_0x4a3c27[_0xb87c('0x2f')]=_[_0xb87c('0x30')](_0x3cea63[_0xb87c('0x2f')]);_0x4a3c27[_0xb87c('0x31')]=_[_0xb87c('0x32')](_0x4a3c27[_0xb87c('0x2d')],_0x4a3c27[_0xb87c('0x2f')]);_0x5ce03e['attributes']=_['intersection'](_0x4a3c27[_0xb87c('0x2d')],qs['fields'](_0x3cea63['query']['fields']));_0x5ce03e[_0xb87c('0x33')]=_0x5ce03e[_0xb87c('0x33')]['length']?_0x5ce03e['attributes']:_0x4a3c27[_0xb87c('0x2d')];if(!_0x3cea63[_0xb87c('0x2f')]['hasOwnProperty'](_0xb87c('0x34'))){_0x5ce03e[_0xb87c('0x1a')]=qs[_0xb87c('0x1a')](_0x3cea63[_0xb87c('0x2f')][_0xb87c('0x1a')]);_0x5ce03e['offset']=qs[_0xb87c('0x1c')](_0x3cea63[_0xb87c('0x2f')]['offset']);}_0x5ce03e[_0xb87c('0x35')]=qs[_0xb87c('0x36')](_0x3cea63[_0xb87c('0x2f')]['sort']);_0x5ce03e[_0xb87c('0x37')]=qs[_0xb87c('0x31')](_['pick'](_0x3cea63[_0xb87c('0x2f')],_0x4a3c27[_0xb87c('0x31')]),_0xd6c581);if(_0x3cea63[_0xb87c('0x2f')][_0xb87c('0x38')]){_0x5ce03e[_0xb87c('0x37')]=_[_0xb87c('0x39')](_0x5ce03e[_0xb87c('0x37')],{'$or':_[_0xb87c('0x2e')](_0xd6c581,function(_0x2c2269){if(_0x2c2269['type']!==_0xb87c('0x3a')){var _0x1e734d={};_0x1e734d[_0x2c2269[_0xb87c('0x25')]]={'$like':'%'+_0x3cea63[_0xb87c('0x2f')][_0xb87c('0x38')]+'%'};return _0x1e734d;}})});}_0x5ce03e=_['merge']({},_0x5ce03e,_0x3cea63[_0xb87c('0x3b')]);var _0x41e1b8={'where':_0x5ce03e[_0xb87c('0x37')]};return db[_0xb87c('0x28')][_0xb87c('0x1b')](_0x41e1b8)[_0xb87c('0x22')](function(_0x5dd7b8){_0xc114bc['count']=_0x5dd7b8;if(_0x3cea63[_0xb87c('0x2f')][_0xb87c('0x3c')]){_0x5ce03e[_0xb87c('0x3d')]=[{'all':!![]}];}return db[_0xb87c('0x28')][_0xb87c('0x3e')](_0x5ce03e);})[_0xb87c('0x22')](function(_0x45580c){_0xc114bc['rows']=_0x45580c;return _0xc114bc;})[_0xb87c('0x22')](respondWithFilteredResult(_0x5ac6e0,_0x5ce03e))[_0xb87c('0x3f')](handleError(_0x5ac6e0,null));};exports[_0xb87c('0x40')]=function(_0x270139,_0x3e1690){var _0x37f1ea={'raw':![],'where':{'id':_0x270139[_0xb87c('0x41')]['id']}},_0x40b61c={};_0x40b61c[_0xb87c('0x2d')]=_[_0xb87c('0x30')](db[_0xb87c('0x28')][_0xb87c('0x29')]);_0x40b61c[_0xb87c('0x2f')]=_[_0xb87c('0x30')](_0x270139['query']);_0x40b61c[_0xb87c('0x31')]=_['intersection'](_0x40b61c[_0xb87c('0x2d')],_0x40b61c[_0xb87c('0x2f')]);_0x37f1ea[_0xb87c('0x33')]=_[_0xb87c('0x32')](_0x40b61c[_0xb87c('0x2d')],qs[_0xb87c('0x42')](_0x270139['query'][_0xb87c('0x42')]));_0x37f1ea['attributes']=_0x37f1ea[_0xb87c('0x33')][_0xb87c('0x43')]?_0x37f1ea[_0xb87c('0x33')]:_0x40b61c[_0xb87c('0x2d')];if(_0x270139['query']['includeAll']){_0x37f1ea[_0xb87c('0x3d')]=[{'all':!![]}];}_0x37f1ea=_[_0xb87c('0x39')]({},_0x37f1ea,_0x270139[_0xb87c('0x3b')]);return db[_0xb87c('0x28')][_0xb87c('0x44')](_0x37f1ea)[_0xb87c('0x22')](handleEntityNotFound(_0x3e1690,null))[_0xb87c('0x22')](respondWithResult(_0x3e1690,null))[_0xb87c('0x3f')](handleError(_0x3e1690,null));};exports[_0xb87c('0x45')]=function(_0x1a49e0,_0x41b1e2){return db['VtigerConfiguration'][_0xb87c('0x45')](_0x1a49e0[_0xb87c('0x46')],{})[_0xb87c('0x22')](respondWithResult(_0x41b1e2,0xc9))['catch'](handleError(_0x41b1e2,null));};exports[_0xb87c('0x21')]=function(_0x368154,_0x9a193e){if(_0x368154[_0xb87c('0x46')]['id']){delete _0x368154['body']['id'];}return db[_0xb87c('0x28')][_0xb87c('0x44')]({'where':{'id':_0x368154[_0xb87c('0x41')]['id']}})[_0xb87c('0x22')](handleEntityNotFound(_0x9a193e,null))[_0xb87c('0x22')](saveUpdates(_0x368154[_0xb87c('0x46')],null))['then'](respondWithResult(_0x9a193e,null))[_0xb87c('0x3f')](handleError(_0x9a193e,null));};exports[_0xb87c('0x23')]=function(_0x14e770,_0xa1db78){return db['VtigerConfiguration'][_0xb87c('0x44')]({'where':{'id':_0x14e770[_0xb87c('0x41')]['id']}})[_0xb87c('0x22')](handleEntityNotFound(_0xa1db78,null))[_0xb87c('0x22')](removeEntity(_0xa1db78,null))[_0xb87c('0x3f')](handleError(_0xa1db78,null));};exports[_0xb87c('0x47')]=function(_0x58b991,_0x41356c,_0x72022d){var _0x17c527={};var _0x57e71c={};var _0x4d0515;var _0x353b8d;return db['VtigerConfiguration'][_0xb87c('0x48')]({'where':{'id':_0x58b991[_0xb87c('0x41')]['id']}})['then'](handleEntityNotFound(_0x41356c,null))['then'](function(_0x5aa56e){if(_0x5aa56e){_0x4d0515=_0x5aa56e;_0x57e71c[_0xb87c('0x2d')]=_[_0xb87c('0x30')](db['VtigerField'][_0xb87c('0x29')]);_0x57e71c['query']=_[_0xb87c('0x30')](_0x58b991[_0xb87c('0x2f')]);_0x57e71c[_0xb87c('0x31')]=_[_0xb87c('0x32')](_0x57e71c[_0xb87c('0x2d')],_0x57e71c['query']);_0x17c527[_0xb87c('0x33')]=_['intersection'](_0x57e71c['model'],qs[_0xb87c('0x42')](_0x58b991['query'][_0xb87c('0x42')]));_0x17c527['attributes']=_0x17c527['attributes'][_0xb87c('0x43')]?_0x17c527[_0xb87c('0x33')]:_0x57e71c[_0xb87c('0x2d')];_0x17c527[_0xb87c('0x35')]=qs['sort'](_0x58b991['query']['sort']);_0x17c527[_0xb87c('0x37')]=qs[_0xb87c('0x31')](_[_0xb87c('0x49')](_0x58b991[_0xb87c('0x2f')],_0x57e71c['filters']));if(_0x58b991[_0xb87c('0x2f')][_0xb87c('0x38')]){_0x17c527['where']=_[_0xb87c('0x39')](_0x17c527[_0xb87c('0x37')],{'$or':_[_0xb87c('0x2e')](_0x17c527[_0xb87c('0x33')],function(_0x4ff767){var _0x1cf224={};_0x1cf224[_0x4ff767]={'$like':'%'+_0x58b991[_0xb87c('0x2f')][_0xb87c('0x38')]+'%'};return _0x1cf224;})});}_0x17c527=_[_0xb87c('0x39')]({},_0x17c527,_0x58b991[_0xb87c('0x3b')]);return _0x4d0515[_0xb87c('0x47')](_0x17c527);}})[_0xb87c('0x22')](function(_0x11abe1){if(_0x11abe1){_0x353b8d=_0x11abe1[_0xb87c('0x43')];if(!_0x58b991['query']['hasOwnProperty'](_0xb87c('0x34'))){_0x17c527[_0xb87c('0x1a')]=qs[_0xb87c('0x1a')](_0x58b991[_0xb87c('0x2f')][_0xb87c('0x1a')]);_0x17c527[_0xb87c('0x1c')]=qs[_0xb87c('0x1c')](_0x58b991[_0xb87c('0x2f')][_0xb87c('0x1c')]);}return _0x4d0515[_0xb87c('0x47')](_0x17c527);}})[_0xb87c('0x22')](function(_0x17d8e8){if(_0x17d8e8){return _0x17d8e8?{'count':_0x353b8d,'rows':_0x17d8e8}:null;}})[_0xb87c('0x22')](respondWithResult(_0x41356c,null))[_0xb87c('0x3f')](handleError(_0x41356c,null));};exports[_0xb87c('0x4a')]=function(_0x212d89,_0x52592e,_0x1864ce){var _0x11b71b={};var _0x2ca1e4={};var _0x344595;var _0x319982;return db[_0xb87c('0x28')][_0xb87c('0x48')]({'where':{'id':_0x212d89['params']['id']}})['then'](handleEntityNotFound(_0x52592e,null))[_0xb87c('0x22')](function(_0x324f5c){if(_0x324f5c){_0x344595=_0x324f5c;_0x2ca1e4['model']=_['keys'](db['VtigerField']['rawAttributes']);_0x2ca1e4[_0xb87c('0x2f')]=_[_0xb87c('0x30')](_0x212d89[_0xb87c('0x2f')]);_0x2ca1e4[_0xb87c('0x31')]=_[_0xb87c('0x32')](_0x2ca1e4[_0xb87c('0x2d')],_0x2ca1e4[_0xb87c('0x2f')]);_0x11b71b[_0xb87c('0x33')]=_[_0xb87c('0x32')](_0x2ca1e4[_0xb87c('0x2d')],qs[_0xb87c('0x42')](_0x212d89[_0xb87c('0x2f')][_0xb87c('0x42')]));_0x11b71b['attributes']=_0x11b71b[_0xb87c('0x33')]['length']?_0x11b71b[_0xb87c('0x33')]:_0x2ca1e4[_0xb87c('0x2d')];_0x11b71b['order']=qs[_0xb87c('0x36')](_0x212d89[_0xb87c('0x2f')][_0xb87c('0x36')]);_0x11b71b[_0xb87c('0x37')]=qs['filters'](_[_0xb87c('0x49')](_0x212d89[_0xb87c('0x2f')],_0x2ca1e4[_0xb87c('0x31')]));if(_0x212d89[_0xb87c('0x2f')][_0xb87c('0x38')]){_0x11b71b[_0xb87c('0x37')]=_['merge'](_0x11b71b[_0xb87c('0x37')],{'$or':_[_0xb87c('0x2e')](_0x11b71b[_0xb87c('0x33')],function(_0x24c55b){var _0x4d7eca={};_0x4d7eca[_0x24c55b]={'$like':'%'+_0x212d89['query'][_0xb87c('0x38')]+'%'};return _0x4d7eca;})});}_0x11b71b=_[_0xb87c('0x39')]({},_0x11b71b,_0x212d89[_0xb87c('0x3b')]);return _0x344595['getSubjects'](_0x11b71b);}})[_0xb87c('0x22')](function(_0x2c88cc){if(_0x2c88cc){_0x319982=_0x2c88cc[_0xb87c('0x43')];if(!_0x212d89['query'][_0xb87c('0x4b')](_0xb87c('0x34'))){_0x11b71b[_0xb87c('0x1a')]=qs[_0xb87c('0x1a')](_0x212d89[_0xb87c('0x2f')][_0xb87c('0x1a')]);_0x11b71b[_0xb87c('0x1c')]=qs[_0xb87c('0x1c')](_0x212d89[_0xb87c('0x2f')][_0xb87c('0x1c')]);}return _0x344595[_0xb87c('0x4a')](_0x11b71b);}})[_0xb87c('0x22')](function(_0x2e2648){if(_0x2e2648){return _0x2e2648?{'count':_0x319982,'rows':_0x2e2648}:null;}})[_0xb87c('0x22')](respondWithResult(_0x52592e,null))[_0xb87c('0x3f')](handleError(_0x52592e,null));};exports['getDescriptions']=function(_0x4a5e3b,_0x16ee07,_0x359d20){var _0x5e936c={};var _0x109ca4={};var _0x11e70b;var _0x3d4e0c;return db[_0xb87c('0x28')][_0xb87c('0x48')]({'where':{'id':_0x4a5e3b[_0xb87c('0x41')]['id']}})['then'](handleEntityNotFound(_0x16ee07,null))['then'](function(_0x21a3e0){if(_0x21a3e0){_0x11e70b=_0x21a3e0;_0x109ca4[_0xb87c('0x2d')]=_[_0xb87c('0x30')](db['VtigerField'][_0xb87c('0x29')]);_0x109ca4['query']=_['keys'](_0x4a5e3b['query']);_0x109ca4[_0xb87c('0x31')]=_['intersection'](_0x109ca4[_0xb87c('0x2d')],_0x109ca4['query']);_0x5e936c[_0xb87c('0x33')]=_[_0xb87c('0x32')](_0x109ca4[_0xb87c('0x2d')],qs['fields'](_0x4a5e3b[_0xb87c('0x2f')][_0xb87c('0x42')]));_0x5e936c[_0xb87c('0x33')]=_0x5e936c[_0xb87c('0x33')][_0xb87c('0x43')]?_0x5e936c[_0xb87c('0x33')]:_0x109ca4[_0xb87c('0x2d')];_0x5e936c[_0xb87c('0x35')]=qs['sort'](_0x4a5e3b['query']['sort']);_0x5e936c[_0xb87c('0x37')]=qs[_0xb87c('0x31')](_[_0xb87c('0x49')](_0x4a5e3b[_0xb87c('0x2f')],_0x109ca4['filters']));if(_0x4a5e3b[_0xb87c('0x2f')]['filter']){_0x5e936c[_0xb87c('0x37')]=_[_0xb87c('0x39')](_0x5e936c[_0xb87c('0x37')],{'$or':_['map'](_0x5e936c['attributes'],function(_0x341a60){var _0x18312a={};_0x18312a[_0x341a60]={'$like':'%'+_0x4a5e3b[_0xb87c('0x2f')][_0xb87c('0x38')]+'%'};return _0x18312a;})});}_0x5e936c=_[_0xb87c('0x39')]({},_0x5e936c,_0x4a5e3b[_0xb87c('0x3b')]);return _0x11e70b[_0xb87c('0x4c')](_0x5e936c);}})[_0xb87c('0x22')](function(_0x4723b8){if(_0x4723b8){_0x3d4e0c=_0x4723b8[_0xb87c('0x43')];if(!_0x4a5e3b['query'][_0xb87c('0x4b')](_0xb87c('0x34'))){_0x5e936c[_0xb87c('0x1a')]=qs[_0xb87c('0x1a')](_0x4a5e3b[_0xb87c('0x2f')][_0xb87c('0x1a')]);_0x5e936c[_0xb87c('0x1c')]=qs['offset'](_0x4a5e3b[_0xb87c('0x2f')][_0xb87c('0x1c')]);}return _0x11e70b[_0xb87c('0x4c')](_0x5e936c);}})[_0xb87c('0x22')](function(_0x104515){if(_0x104515){return _0x104515?{'count':_0x3d4e0c,'rows':_0x104515}:null;}})[_0xb87c('0x22')](respondWithResult(_0x16ee07,null))['catch'](handleError(_0x16ee07,null));};