Built motion from commit 497d3d92.|2.5.43
[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 _0xd9f5=['../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','undefined','limit','count','offset','set','Content-Range','update','destroy','then','end','error','stack','name','send','map','VtigerConfiguration','rawAttributes','fieldName','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','type','includeAll','include','findAll','rows','catch','show','params','keys','options','find','create','body','getFields','VtigerField','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','request-promise','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api'];(function(_0x46698a,_0x8de1e4){var _0x356db0=function(_0x19e83c){while(--_0x19e83c){_0x46698a['push'](_0x46698a['shift']());}};_0x356db0(++_0x8de1e4);}(_0xd9f5,0x83));var _0x5d9f=function(_0x3db0ba,_0x2be65c){_0x3db0ba=_0x3db0ba-0x0;var _0x2d8e9a=_0xd9f5[_0x3db0ba];return _0x2d8e9a;};'use strict';var emlformat=require(_0x5d9f('0x0'));var rimraf=require(_0x5d9f('0x1'));var zipdir=require(_0x5d9f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x5d9f('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x5d9f('0x4'));var util=require('util');var path=require(_0x5d9f('0x5'));var sox=require('sox');var csv=require(_0x5d9f('0x6'));var ejs=require(_0x5d9f('0x7'));var fs=require('fs');var fs_extra=require(_0x5d9f('0x8'));var _=require(_0x5d9f('0x9'));var squel=require(_0x5d9f('0xa'));var crypto=require(_0x5d9f('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x5d9f('0x6'));var querystring=require(_0x5d9f('0xc'));var Papa=require(_0x5d9f('0xd'));var Redis=require(_0x5d9f('0xe'));var authService=require(_0x5d9f('0xf'));var qs=require(_0x5d9f('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5d9f('0x11'));var logger=require('../../config/logger')(_0x5d9f('0x12'));var utils=require(_0x5d9f('0x13'));var config=require(_0x5d9f('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x5d9f('0x15'))['db'];function respondWithStatusCode(_0xb559c5,_0x138488){_0x138488=_0x138488||0xcc;return function(_0x5cf608){if(_0x5cf608){return _0xb559c5[_0x5d9f('0x16')](_0x138488);}return _0xb559c5[_0x5d9f('0x17')](_0x138488)['end']();};}function respondWithResult(_0x4e69df,_0x1e28ea){_0x1e28ea=_0x1e28ea||0xc8;return function(_0xd25601){if(_0xd25601){return _0x4e69df[_0x5d9f('0x17')](_0x1e28ea)['json'](_0xd25601);}};}function respondWithFilteredResult(_0x23899f,_0x2742f8){return function(_0x45148){if(_0x45148){var _0x418f73=typeof _0x2742f8['offset']===_0x5d9f('0x18')&&typeof _0x2742f8[_0x5d9f('0x19')]===_0x5d9f('0x18');var _0x51b67b=_0x45148[_0x5d9f('0x1a')];var _0x510022=_0x418f73?0x0:_0x2742f8[_0x5d9f('0x1b')];var _0xb0dbf6=_0x418f73?_0x45148[_0x5d9f('0x1a')]:_0x2742f8['offset']+_0x2742f8[_0x5d9f('0x19')];var _0x27c95b;if(_0xb0dbf6>=_0x51b67b){_0xb0dbf6=_0x51b67b;_0x27c95b=0xc8;}else{_0x27c95b=0xce;}_0x23899f[_0x5d9f('0x17')](_0x27c95b);return _0x23899f[_0x5d9f('0x1c')](_0x5d9f('0x1d'),_0x510022+'-'+_0xb0dbf6+'/'+_0x51b67b)['json'](_0x45148);}return null;};}function patchUpdates(_0x2b955d){return function(_0x1c9c81){try{jsonpatch['apply'](_0x1c9c81,_0x2b955d,!![]);}catch(_0x3ee33f){return BPromise['reject'](_0x3ee33f);}return _0x1c9c81['save']();};}function saveUpdates(_0x261bae,_0x1ab0ad){return function(_0x20ec9c){if(_0x20ec9c){return _0x20ec9c[_0x5d9f('0x1e')](_0x261bae)['then'](function(_0x2183df){return _0x2183df;});}return null;};}function removeEntity(_0xd1d7b7,_0x188d70){return function(_0x102ceb){if(_0x102ceb){return _0x102ceb[_0x5d9f('0x1f')]()[_0x5d9f('0x20')](function(){_0xd1d7b7[_0x5d9f('0x17')](0xcc)[_0x5d9f('0x21')]();});}};}function handleEntityNotFound(_0x4604be,_0x4b5a40){return function(_0x18b9d5){if(!_0x18b9d5){_0x4604be[_0x5d9f('0x16')](0x194);}return _0x18b9d5;};}function handleError(_0x3ff087,_0x56ef3c){_0x56ef3c=_0x56ef3c||0x1f4;return function(_0x4909bd){logger[_0x5d9f('0x22')](_0x4909bd[_0x5d9f('0x23')]);if(_0x4909bd[_0x5d9f('0x24')]){delete _0x4909bd[_0x5d9f('0x24')];}_0x3ff087[_0x5d9f('0x17')](_0x56ef3c)[_0x5d9f('0x25')](_0x4909bd);};}exports['index']=function(_0x4d1e3d,_0xf6ce0b){var _0x3831d9={},_0x92f045={},_0x90157d={'count':0x0,'rows':[]};var _0x5df6ab=_[_0x5d9f('0x26')](db[_0x5d9f('0x27')][_0x5d9f('0x28')],function(_0xba6340){return{'name':_0xba6340[_0x5d9f('0x29')],'type':_0xba6340['type'][_0x5d9f('0x2a')]};});_0x92f045[_0x5d9f('0x2b')]=_[_0x5d9f('0x26')](_0x5df6ab,_0x5d9f('0x24'));_0x92f045[_0x5d9f('0x2c')]=_['keys'](_0x4d1e3d[_0x5d9f('0x2c')]);_0x92f045[_0x5d9f('0x2d')]=_['intersection'](_0x92f045['model'],_0x92f045[_0x5d9f('0x2c')]);_0x3831d9['attributes']=_[_0x5d9f('0x2e')](_0x92f045[_0x5d9f('0x2b')],qs['fields'](_0x4d1e3d[_0x5d9f('0x2c')][_0x5d9f('0x2f')]));_0x3831d9[_0x5d9f('0x30')]=_0x3831d9['attributes'][_0x5d9f('0x31')]?_0x3831d9['attributes']:_0x92f045[_0x5d9f('0x2b')];if(!_0x4d1e3d[_0x5d9f('0x2c')][_0x5d9f('0x32')](_0x5d9f('0x33'))){_0x3831d9[_0x5d9f('0x19')]=qs[_0x5d9f('0x19')](_0x4d1e3d['query']['limit']);_0x3831d9[_0x5d9f('0x1b')]=qs[_0x5d9f('0x1b')](_0x4d1e3d['query'][_0x5d9f('0x1b')]);}_0x3831d9[_0x5d9f('0x34')]=qs['sort'](_0x4d1e3d['query'][_0x5d9f('0x35')]);_0x3831d9['where']=qs['filters'](_[_0x5d9f('0x36')](_0x4d1e3d[_0x5d9f('0x2c')],_0x92f045['filters']),_0x5df6ab);if(_0x4d1e3d[_0x5d9f('0x2c')][_0x5d9f('0x37')]){_0x3831d9['where']=_[_0x5d9f('0x38')](_0x3831d9[_0x5d9f('0x39')],{'$or':_[_0x5d9f('0x26')](_0x5df6ab,function(_0x1eff18){if(_0x1eff18[_0x5d9f('0x3a')]!=='VIRTUAL'){var _0x23a1d7={};_0x23a1d7[_0x1eff18['name']]={'$like':'%'+_0x4d1e3d[_0x5d9f('0x2c')][_0x5d9f('0x37')]+'%'};return _0x23a1d7;}})});}_0x3831d9=_[_0x5d9f('0x38')]({},_0x3831d9,_0x4d1e3d['options']);var _0x2902d7={'where':_0x3831d9[_0x5d9f('0x39')]};return db[_0x5d9f('0x27')]['count'](_0x2902d7)[_0x5d9f('0x20')](function(_0x4f051e){_0x90157d[_0x5d9f('0x1a')]=_0x4f051e;if(_0x4d1e3d['query'][_0x5d9f('0x3b')]){_0x3831d9[_0x5d9f('0x3c')]=[{'all':!![]}];}return db[_0x5d9f('0x27')][_0x5d9f('0x3d')](_0x3831d9);})['then'](function(_0xb2e69d){_0x90157d[_0x5d9f('0x3e')]=_0xb2e69d;return _0x90157d;})[_0x5d9f('0x20')](respondWithFilteredResult(_0xf6ce0b,_0x3831d9))[_0x5d9f('0x3f')](handleError(_0xf6ce0b,null));};exports[_0x5d9f('0x40')]=function(_0x2c899a,_0x530387){var _0x1b118d={'raw':![],'where':{'id':_0x2c899a[_0x5d9f('0x41')]['id']}},_0x2b0674={};_0x2b0674[_0x5d9f('0x2b')]=_[_0x5d9f('0x42')](db['VtigerConfiguration']['rawAttributes']);_0x2b0674[_0x5d9f('0x2c')]=_[_0x5d9f('0x42')](_0x2c899a['query']);_0x2b0674['filters']=_[_0x5d9f('0x2e')](_0x2b0674[_0x5d9f('0x2b')],_0x2b0674[_0x5d9f('0x2c')]);_0x1b118d[_0x5d9f('0x30')]=_['intersection'](_0x2b0674['model'],qs['fields'](_0x2c899a[_0x5d9f('0x2c')][_0x5d9f('0x2f')]));_0x1b118d[_0x5d9f('0x30')]=_0x1b118d[_0x5d9f('0x30')][_0x5d9f('0x31')]?_0x1b118d['attributes']:_0x2b0674[_0x5d9f('0x2b')];if(_0x2c899a[_0x5d9f('0x2c')]['includeAll']){_0x1b118d[_0x5d9f('0x3c')]=[{'all':!![]}];}_0x1b118d=_['merge']({},_0x1b118d,_0x2c899a[_0x5d9f('0x43')]);return db[_0x5d9f('0x27')][_0x5d9f('0x44')](_0x1b118d)['then'](handleEntityNotFound(_0x530387,null))['then'](respondWithResult(_0x530387,null))[_0x5d9f('0x3f')](handleError(_0x530387,null));};exports[_0x5d9f('0x45')]=function(_0x1c7c44,_0x16889e){return db[_0x5d9f('0x27')]['create'](_0x1c7c44[_0x5d9f('0x46')],{})[_0x5d9f('0x20')](respondWithResult(_0x16889e,0xc9))[_0x5d9f('0x3f')](handleError(_0x16889e,null));};exports[_0x5d9f('0x1e')]=function(_0x5e8cd0,_0x1a1a64){if(_0x5e8cd0[_0x5d9f('0x46')]['id']){delete _0x5e8cd0[_0x5d9f('0x46')]['id'];}return db[_0x5d9f('0x27')]['find']({'where':{'id':_0x5e8cd0[_0x5d9f('0x41')]['id']}})[_0x5d9f('0x20')](handleEntityNotFound(_0x1a1a64,null))[_0x5d9f('0x20')](saveUpdates(_0x5e8cd0[_0x5d9f('0x46')],null))[_0x5d9f('0x20')](respondWithResult(_0x1a1a64,null))[_0x5d9f('0x3f')](handleError(_0x1a1a64,null));};exports[_0x5d9f('0x1f')]=function(_0x1446c8,_0x39bc2e){return db['VtigerConfiguration'][_0x5d9f('0x44')]({'where':{'id':_0x1446c8['params']['id']}})[_0x5d9f('0x20')](handleEntityNotFound(_0x39bc2e,null))[_0x5d9f('0x20')](removeEntity(_0x39bc2e,null))[_0x5d9f('0x3f')](handleError(_0x39bc2e,null));};exports[_0x5d9f('0x47')]=function(_0x1e0bfd,_0xd47e29,_0xf7986e){var _0x523ed9={};var _0x17b159={};var _0x7ead32;var _0x1dc579;return db[_0x5d9f('0x27')]['findOne']({'where':{'id':_0x1e0bfd[_0x5d9f('0x41')]['id']}})[_0x5d9f('0x20')](handleEntityNotFound(_0xd47e29,null))[_0x5d9f('0x20')](function(_0x169ebf){if(_0x169ebf){_0x7ead32=_0x169ebf;_0x17b159['model']=_[_0x5d9f('0x42')](db[_0x5d9f('0x48')]['rawAttributes']);_0x17b159['query']=_[_0x5d9f('0x42')](_0x1e0bfd[_0x5d9f('0x2c')]);_0x17b159['filters']=_[_0x5d9f('0x2e')](_0x17b159[_0x5d9f('0x2b')],_0x17b159[_0x5d9f('0x2c')]);_0x523ed9[_0x5d9f('0x30')]=_[_0x5d9f('0x2e')](_0x17b159[_0x5d9f('0x2b')],qs[_0x5d9f('0x2f')](_0x1e0bfd[_0x5d9f('0x2c')]['fields']));_0x523ed9['attributes']=_0x523ed9[_0x5d9f('0x30')][_0x5d9f('0x31')]?_0x523ed9[_0x5d9f('0x30')]:_0x17b159['model'];_0x523ed9[_0x5d9f('0x34')]=qs[_0x5d9f('0x35')](_0x1e0bfd[_0x5d9f('0x2c')][_0x5d9f('0x35')]);_0x523ed9['where']=qs[_0x5d9f('0x2d')](_[_0x5d9f('0x36')](_0x1e0bfd[_0x5d9f('0x2c')],_0x17b159[_0x5d9f('0x2d')]));if(_0x1e0bfd[_0x5d9f('0x2c')][_0x5d9f('0x37')]){_0x523ed9['where']=_[_0x5d9f('0x38')](_0x523ed9[_0x5d9f('0x39')],{'$or':_[_0x5d9f('0x26')](_0x523ed9[_0x5d9f('0x30')],function(_0x4409fc){var _0x535f97={};_0x535f97[_0x4409fc]={'$like':'%'+_0x1e0bfd[_0x5d9f('0x2c')]['filter']+'%'};return _0x535f97;})});}_0x523ed9=_[_0x5d9f('0x38')]({},_0x523ed9,_0x1e0bfd['options']);return _0x7ead32['getFields'](_0x523ed9);}})[_0x5d9f('0x20')](function(_0x57e41f){if(_0x57e41f){_0x1dc579=_0x57e41f[_0x5d9f('0x31')];if(!_0x1e0bfd[_0x5d9f('0x2c')][_0x5d9f('0x32')]('nolimit')){_0x523ed9['limit']=qs[_0x5d9f('0x19')](_0x1e0bfd[_0x5d9f('0x2c')][_0x5d9f('0x19')]);_0x523ed9[_0x5d9f('0x1b')]=qs['offset'](_0x1e0bfd[_0x5d9f('0x2c')][_0x5d9f('0x1b')]);}return _0x7ead32[_0x5d9f('0x47')](_0x523ed9);}})[_0x5d9f('0x20')](function(_0x5158e9){if(_0x5158e9){return _0x5158e9?{'count':_0x1dc579,'rows':_0x5158e9}:null;}})[_0x5d9f('0x20')](respondWithResult(_0xd47e29,null))[_0x5d9f('0x3f')](handleError(_0xd47e29,null));};exports[_0x5d9f('0x49')]=function(_0x5d1720,_0x272d1d,_0x1e6ed7){var _0xdfddf5={};var _0x2d76e1={};var _0xe5b37c;var _0x39b0b3;return db[_0x5d9f('0x27')]['findOne']({'where':{'id':_0x5d1720['params']['id']}})['then'](handleEntityNotFound(_0x272d1d,null))[_0x5d9f('0x20')](function(_0x3d6dac){if(_0x3d6dac){_0xe5b37c=_0x3d6dac;_0x2d76e1['model']=_['keys'](db['VtigerField']['rawAttributes']);_0x2d76e1[_0x5d9f('0x2c')]=_['keys'](_0x5d1720[_0x5d9f('0x2c')]);_0x2d76e1[_0x5d9f('0x2d')]=_[_0x5d9f('0x2e')](_0x2d76e1[_0x5d9f('0x2b')],_0x2d76e1[_0x5d9f('0x2c')]);_0xdfddf5[_0x5d9f('0x30')]=_[_0x5d9f('0x2e')](_0x2d76e1[_0x5d9f('0x2b')],qs[_0x5d9f('0x2f')](_0x5d1720[_0x5d9f('0x2c')][_0x5d9f('0x2f')]));_0xdfddf5[_0x5d9f('0x30')]=_0xdfddf5[_0x5d9f('0x30')][_0x5d9f('0x31')]?_0xdfddf5[_0x5d9f('0x30')]:_0x2d76e1['model'];_0xdfddf5[_0x5d9f('0x34')]=qs[_0x5d9f('0x35')](_0x5d1720[_0x5d9f('0x2c')][_0x5d9f('0x35')]);_0xdfddf5['where']=qs[_0x5d9f('0x2d')](_[_0x5d9f('0x36')](_0x5d1720[_0x5d9f('0x2c')],_0x2d76e1[_0x5d9f('0x2d')]));if(_0x5d1720[_0x5d9f('0x2c')][_0x5d9f('0x37')]){_0xdfddf5[_0x5d9f('0x39')]=_['merge'](_0xdfddf5[_0x5d9f('0x39')],{'$or':_['map'](_0xdfddf5[_0x5d9f('0x30')],function(_0x531d29){var _0x4856f5={};_0x4856f5[_0x531d29]={'$like':'%'+_0x5d1720[_0x5d9f('0x2c')][_0x5d9f('0x37')]+'%'};return _0x4856f5;})});}_0xdfddf5=_['merge']({},_0xdfddf5,_0x5d1720[_0x5d9f('0x43')]);return _0xe5b37c[_0x5d9f('0x49')](_0xdfddf5);}})[_0x5d9f('0x20')](function(_0x3039c2){if(_0x3039c2){_0x39b0b3=_0x3039c2[_0x5d9f('0x31')];if(!_0x5d1720['query'][_0x5d9f('0x32')](_0x5d9f('0x33'))){_0xdfddf5[_0x5d9f('0x19')]=qs[_0x5d9f('0x19')](_0x5d1720['query'][_0x5d9f('0x19')]);_0xdfddf5['offset']=qs[_0x5d9f('0x1b')](_0x5d1720['query']['offset']);}return _0xe5b37c[_0x5d9f('0x49')](_0xdfddf5);}})['then'](function(_0x187f28){if(_0x187f28){return _0x187f28?{'count':_0x39b0b3,'rows':_0x187f28}:null;}})[_0x5d9f('0x20')](respondWithResult(_0x272d1d,null))[_0x5d9f('0x3f')](handleError(_0x272d1d,null));};exports['getDescriptions']=function(_0x3e3a38,_0x49c487,_0x34e0b9){var _0x533bea={};var _0x297c9b={};var _0x425cb0;var _0x1913db;return db[_0x5d9f('0x27')]['findOne']({'where':{'id':_0x3e3a38[_0x5d9f('0x41')]['id']}})[_0x5d9f('0x20')](handleEntityNotFound(_0x49c487,null))['then'](function(_0x411c3e){if(_0x411c3e){_0x425cb0=_0x411c3e;_0x297c9b['model']=_[_0x5d9f('0x42')](db[_0x5d9f('0x48')][_0x5d9f('0x28')]);_0x297c9b['query']=_[_0x5d9f('0x42')](_0x3e3a38[_0x5d9f('0x2c')]);_0x297c9b['filters']=_[_0x5d9f('0x2e')](_0x297c9b[_0x5d9f('0x2b')],_0x297c9b[_0x5d9f('0x2c')]);_0x533bea[_0x5d9f('0x30')]=_[_0x5d9f('0x2e')](_0x297c9b[_0x5d9f('0x2b')],qs['fields'](_0x3e3a38['query'][_0x5d9f('0x2f')]));_0x533bea[_0x5d9f('0x30')]=_0x533bea['attributes'][_0x5d9f('0x31')]?_0x533bea[_0x5d9f('0x30')]:_0x297c9b[_0x5d9f('0x2b')];_0x533bea[_0x5d9f('0x34')]=qs[_0x5d9f('0x35')](_0x3e3a38[_0x5d9f('0x2c')][_0x5d9f('0x35')]);_0x533bea[_0x5d9f('0x39')]=qs[_0x5d9f('0x2d')](_[_0x5d9f('0x36')](_0x3e3a38['query'],_0x297c9b[_0x5d9f('0x2d')]));if(_0x3e3a38[_0x5d9f('0x2c')]['filter']){_0x533bea[_0x5d9f('0x39')]=_[_0x5d9f('0x38')](_0x533bea[_0x5d9f('0x39')],{'$or':_[_0x5d9f('0x26')](_0x533bea[_0x5d9f('0x30')],function(_0x396ab5){var _0x1ee40e={};_0x1ee40e[_0x396ab5]={'$like':'%'+_0x3e3a38['query']['filter']+'%'};return _0x1ee40e;})});}_0x533bea=_[_0x5d9f('0x38')]({},_0x533bea,_0x3e3a38[_0x5d9f('0x43')]);return _0x425cb0[_0x5d9f('0x4a')](_0x533bea);}})[_0x5d9f('0x20')](function(_0x426c01){if(_0x426c01){_0x1913db=_0x426c01['length'];if(!_0x3e3a38['query'][_0x5d9f('0x32')](_0x5d9f('0x33'))){_0x533bea[_0x5d9f('0x19')]=qs['limit'](_0x3e3a38[_0x5d9f('0x2c')][_0x5d9f('0x19')]);_0x533bea[_0x5d9f('0x1b')]=qs['offset'](_0x3e3a38[_0x5d9f('0x2c')][_0x5d9f('0x1b')]);}return _0x425cb0['getDescriptions'](_0x533bea);}})[_0x5d9f('0x20')](function(_0x30cec3){if(_0x30cec3){return _0x30cec3?{'count':_0x1913db,'rows':_0x30cec3}:null;}})['then'](respondWithResult(_0x49c487,null))[_0x5d9f('0x3f')](handleError(_0x49c487,null));};