2173eb56850e0fba10f54f6e881e6a06cc96e62f
[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 _0xb6ec=['fieldName','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','type','options','includeAll','findAll','rows','catch','show','params','include','find','create','body','destroy','VtigerField','order','pick','getFields','getSubjects','findOne','getDescriptions','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','json','undefined','limit','count','offset','status','Content-Range','apply','reject','save','update','then','end','error','stack','name','send','index','map','VtigerConfiguration','rawAttributes'];(function(_0x476036,_0x13c6a6){var _0x30b0ef=function(_0x35af25){while(--_0x35af25){_0x476036['push'](_0x476036['shift']());}};_0x30b0ef(++_0x13c6a6);}(_0xb6ec,0x74));var _0xcb6e=function(_0x2c083c,_0x53d463){_0x2c083c=_0x2c083c-0x0;var _0x48f345=_0xb6ec[_0x2c083c];return _0x48f345;};'use strict';var emlformat=require(_0xcb6e('0x0'));var rimraf=require(_0xcb6e('0x1'));var zipdir=require(_0xcb6e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xcb6e('0x3'));var moment=require(_0xcb6e('0x4'));var BPromise=require(_0xcb6e('0x5'));var Mustache=require('mustache');var util=require(_0xcb6e('0x6'));var path=require('path');var sox=require(_0xcb6e('0x7'));var csv=require(_0xcb6e('0x8'));var ejs=require(_0xcb6e('0x9'));var fs=require('fs');var fs_extra=require(_0xcb6e('0xa'));var _=require(_0xcb6e('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xcb6e('0xc'));var toCsv=require(_0xcb6e('0x8'));var querystring=require(_0xcb6e('0xd'));var Papa=require(_0xcb6e('0xe'));var Redis=require('ioredis');var authService=require(_0xcb6e('0xf'));var qs=require(_0xcb6e('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xcb6e('0x11'));var logger=require('../../config/logger')(_0xcb6e('0x12'));var utils=require('../../config/utils');var config=require(_0xcb6e('0x13'));var licenseUtil=require(_0xcb6e('0x14'));var db=require(_0xcb6e('0x15'))['db'];function respondWithStatusCode(_0x24e235,_0x311988){_0x311988=_0x311988||0xcc;return function(_0x4391f9){if(_0x4391f9){return _0x24e235[_0xcb6e('0x16')](_0x311988);}return _0x24e235['status'](_0x311988)['end']();};}function respondWithResult(_0x4f65e7,_0x5f1fd3){_0x5f1fd3=_0x5f1fd3||0xc8;return function(_0x4e8cfd){if(_0x4e8cfd){return _0x4f65e7['status'](_0x5f1fd3)[_0xcb6e('0x17')](_0x4e8cfd);}};}function respondWithFilteredResult(_0x2e0b9a,_0x6d72c2){return function(_0x539582){if(_0x539582){var _0x160a40=typeof _0x6d72c2['offset']===_0xcb6e('0x18')&&typeof _0x6d72c2[_0xcb6e('0x19')]===_0xcb6e('0x18');var _0x2f477b=_0x539582[_0xcb6e('0x1a')];var _0x29718e=_0x160a40?0x0:_0x6d72c2['offset'];var _0xdcae5f=_0x160a40?_0x539582[_0xcb6e('0x1a')]:_0x6d72c2[_0xcb6e('0x1b')]+_0x6d72c2['limit'];var _0x2c923d;if(_0xdcae5f>=_0x2f477b){_0xdcae5f=_0x2f477b;_0x2c923d=0xc8;}else{_0x2c923d=0xce;}_0x2e0b9a[_0xcb6e('0x1c')](_0x2c923d);return _0x2e0b9a['set'](_0xcb6e('0x1d'),_0x29718e+'-'+_0xdcae5f+'/'+_0x2f477b)[_0xcb6e('0x17')](_0x539582);}return null;};}function patchUpdates(_0x17d806){return function(_0x3fa7da){try{jsonpatch[_0xcb6e('0x1e')](_0x3fa7da,_0x17d806,!![]);}catch(_0x5ec970){return BPromise[_0xcb6e('0x1f')](_0x5ec970);}return _0x3fa7da[_0xcb6e('0x20')]();};}function saveUpdates(_0x25b020,_0x2d9cd0){return function(_0x3a4de2){if(_0x3a4de2){return _0x3a4de2[_0xcb6e('0x21')](_0x25b020)[_0xcb6e('0x22')](function(_0xa91355){return _0xa91355;});}return null;};}function removeEntity(_0x1ceaaf,_0x3566b3){return function(_0x5db5ba){if(_0x5db5ba){return _0x5db5ba['destroy']()[_0xcb6e('0x22')](function(){_0x1ceaaf[_0xcb6e('0x1c')](0xcc)[_0xcb6e('0x23')]();});}};}function handleEntityNotFound(_0x22421e,_0x3601b4){return function(_0x402e47){if(!_0x402e47){_0x22421e['sendStatus'](0x194);}return _0x402e47;};}function handleError(_0x125b56,_0x417dd5){_0x417dd5=_0x417dd5||0x1f4;return function(_0x557548){logger[_0xcb6e('0x24')](_0x557548[_0xcb6e('0x25')]);if(_0x557548[_0xcb6e('0x26')]){delete _0x557548['name'];}_0x125b56[_0xcb6e('0x1c')](_0x417dd5)[_0xcb6e('0x27')](_0x557548);};}exports[_0xcb6e('0x28')]=function(_0x1a15ec,_0x1ce205){var _0x513766={},_0x3dd9a5={},_0x40e773={'count':0x0,'rows':[]};var _0x3f3957=_[_0xcb6e('0x29')](db[_0xcb6e('0x2a')][_0xcb6e('0x2b')],function(_0xdfcec5){return{'name':_0xdfcec5[_0xcb6e('0x2c')],'type':_0xdfcec5['type'][_0xcb6e('0x2d')]};});_0x3dd9a5[_0xcb6e('0x2e')]=_[_0xcb6e('0x29')](_0x3f3957,_0xcb6e('0x26'));_0x3dd9a5[_0xcb6e('0x2f')]=_[_0xcb6e('0x30')](_0x1a15ec['query']);_0x3dd9a5[_0xcb6e('0x31')]=_['intersection'](_0x3dd9a5[_0xcb6e('0x2e')],_0x3dd9a5[_0xcb6e('0x2f')]);_0x513766[_0xcb6e('0x32')]=_[_0xcb6e('0x33')](_0x3dd9a5[_0xcb6e('0x2e')],qs['fields'](_0x1a15ec[_0xcb6e('0x2f')][_0xcb6e('0x34')]));_0x513766[_0xcb6e('0x32')]=_0x513766[_0xcb6e('0x32')][_0xcb6e('0x35')]?_0x513766['attributes']:_0x3dd9a5['model'];if(!_0x1a15ec[_0xcb6e('0x2f')][_0xcb6e('0x36')](_0xcb6e('0x37'))){_0x513766[_0xcb6e('0x19')]=qs[_0xcb6e('0x19')](_0x1a15ec[_0xcb6e('0x2f')]['limit']);_0x513766['offset']=qs[_0xcb6e('0x1b')](_0x1a15ec[_0xcb6e('0x2f')][_0xcb6e('0x1b')]);}_0x513766['order']=qs['sort'](_0x1a15ec[_0xcb6e('0x2f')][_0xcb6e('0x38')]);_0x513766[_0xcb6e('0x39')]=qs[_0xcb6e('0x31')](_['pick'](_0x1a15ec[_0xcb6e('0x2f')],_0x3dd9a5[_0xcb6e('0x31')]),_0x3f3957);if(_0x1a15ec[_0xcb6e('0x2f')][_0xcb6e('0x3a')]){_0x513766[_0xcb6e('0x39')]=_[_0xcb6e('0x3b')](_0x513766[_0xcb6e('0x39')],{'$or':_[_0xcb6e('0x29')](_0x3f3957,function(_0x6a09e8){if(_0x6a09e8[_0xcb6e('0x3c')]!=='VIRTUAL'){var _0x4aade3={};_0x4aade3[_0x6a09e8[_0xcb6e('0x26')]]={'$like':'%'+_0x1a15ec[_0xcb6e('0x2f')][_0xcb6e('0x3a')]+'%'};return _0x4aade3;}})});}_0x513766=_[_0xcb6e('0x3b')]({},_0x513766,_0x1a15ec[_0xcb6e('0x3d')]);var _0x308c51={'where':_0x513766[_0xcb6e('0x39')]};return db['VtigerConfiguration'][_0xcb6e('0x1a')](_0x308c51)[_0xcb6e('0x22')](function(_0x35af3d){_0x40e773[_0xcb6e('0x1a')]=_0x35af3d;if(_0x1a15ec[_0xcb6e('0x2f')][_0xcb6e('0x3e')]){_0x513766['include']=[{'all':!![]}];}return db[_0xcb6e('0x2a')][_0xcb6e('0x3f')](_0x513766);})[_0xcb6e('0x22')](function(_0x27dc48){_0x40e773[_0xcb6e('0x40')]=_0x27dc48;return _0x40e773;})['then'](respondWithFilteredResult(_0x1ce205,_0x513766))[_0xcb6e('0x41')](handleError(_0x1ce205,null));};exports[_0xcb6e('0x42')]=function(_0x306e71,_0x53fde7){var _0x20ee90={'raw':![],'where':{'id':_0x306e71[_0xcb6e('0x43')]['id']}},_0x2e35ab={};_0x2e35ab[_0xcb6e('0x2e')]=_[_0xcb6e('0x30')](db[_0xcb6e('0x2a')][_0xcb6e('0x2b')]);_0x2e35ab[_0xcb6e('0x2f')]=_[_0xcb6e('0x30')](_0x306e71[_0xcb6e('0x2f')]);_0x2e35ab[_0xcb6e('0x31')]=_['intersection'](_0x2e35ab['model'],_0x2e35ab[_0xcb6e('0x2f')]);_0x20ee90[_0xcb6e('0x32')]=_[_0xcb6e('0x33')](_0x2e35ab[_0xcb6e('0x2e')],qs['fields'](_0x306e71['query'][_0xcb6e('0x34')]));_0x20ee90[_0xcb6e('0x32')]=_0x20ee90[_0xcb6e('0x32')][_0xcb6e('0x35')]?_0x20ee90[_0xcb6e('0x32')]:_0x2e35ab[_0xcb6e('0x2e')];if(_0x306e71[_0xcb6e('0x2f')]['includeAll']){_0x20ee90[_0xcb6e('0x44')]=[{'all':!![]}];}_0x20ee90=_[_0xcb6e('0x3b')]({},_0x20ee90,_0x306e71['options']);return db[_0xcb6e('0x2a')][_0xcb6e('0x45')](_0x20ee90)[_0xcb6e('0x22')](handleEntityNotFound(_0x53fde7,null))[_0xcb6e('0x22')](respondWithResult(_0x53fde7,null))[_0xcb6e('0x41')](handleError(_0x53fde7,null));};exports[_0xcb6e('0x46')]=function(_0x4748e6,_0x241cd5){return db['VtigerConfiguration'][_0xcb6e('0x46')](_0x4748e6[_0xcb6e('0x47')],{})[_0xcb6e('0x22')](respondWithResult(_0x241cd5,0xc9))[_0xcb6e('0x41')](handleError(_0x241cd5,null));};exports['update']=function(_0x57b005,_0x1fcbf5){if(_0x57b005[_0xcb6e('0x47')]['id']){delete _0x57b005[_0xcb6e('0x47')]['id'];}return db['VtigerConfiguration'][_0xcb6e('0x45')]({'where':{'id':_0x57b005[_0xcb6e('0x43')]['id']}})[_0xcb6e('0x22')](handleEntityNotFound(_0x1fcbf5,null))['then'](saveUpdates(_0x57b005['body'],null))[_0xcb6e('0x22')](respondWithResult(_0x1fcbf5,null))[_0xcb6e('0x41')](handleError(_0x1fcbf5,null));};exports[_0xcb6e('0x48')]=function(_0x58f9b9,_0x5e9076){return db[_0xcb6e('0x2a')][_0xcb6e('0x45')]({'where':{'id':_0x58f9b9['params']['id']}})['then'](handleEntityNotFound(_0x5e9076,null))['then'](removeEntity(_0x5e9076,null))[_0xcb6e('0x41')](handleError(_0x5e9076,null));};exports['getFields']=function(_0x2aaa34,_0x212ce8,_0x2b8695){var _0x30fe5b={};var _0x274009={};var _0x36aa3a;var _0x45a53c;return db[_0xcb6e('0x2a')]['findOne']({'where':{'id':_0x2aaa34[_0xcb6e('0x43')]['id']}})[_0xcb6e('0x22')](handleEntityNotFound(_0x212ce8,null))[_0xcb6e('0x22')](function(_0x433048){if(_0x433048){_0x36aa3a=_0x433048;_0x274009[_0xcb6e('0x2e')]=_[_0xcb6e('0x30')](db[_0xcb6e('0x49')][_0xcb6e('0x2b')]);_0x274009['query']=_[_0xcb6e('0x30')](_0x2aaa34[_0xcb6e('0x2f')]);_0x274009[_0xcb6e('0x31')]=_[_0xcb6e('0x33')](_0x274009[_0xcb6e('0x2e')],_0x274009[_0xcb6e('0x2f')]);_0x30fe5b['attributes']=_[_0xcb6e('0x33')](_0x274009['model'],qs['fields'](_0x2aaa34[_0xcb6e('0x2f')][_0xcb6e('0x34')]));_0x30fe5b['attributes']=_0x30fe5b[_0xcb6e('0x32')][_0xcb6e('0x35')]?_0x30fe5b[_0xcb6e('0x32')]:_0x274009[_0xcb6e('0x2e')];_0x30fe5b[_0xcb6e('0x4a')]=qs[_0xcb6e('0x38')](_0x2aaa34['query'][_0xcb6e('0x38')]);_0x30fe5b[_0xcb6e('0x39')]=qs[_0xcb6e('0x31')](_[_0xcb6e('0x4b')](_0x2aaa34['query'],_0x274009[_0xcb6e('0x31')]));if(_0x2aaa34[_0xcb6e('0x2f')]['filter']){_0x30fe5b['where']=_[_0xcb6e('0x3b')](_0x30fe5b[_0xcb6e('0x39')],{'$or':_[_0xcb6e('0x29')](_0x30fe5b[_0xcb6e('0x32')],function(_0x3f9580){var _0x47ff75={};_0x47ff75[_0x3f9580]={'$like':'%'+_0x2aaa34[_0xcb6e('0x2f')][_0xcb6e('0x3a')]+'%'};return _0x47ff75;})});}_0x30fe5b=_[_0xcb6e('0x3b')]({},_0x30fe5b,_0x2aaa34[_0xcb6e('0x3d')]);return _0x36aa3a['getFields'](_0x30fe5b);}})[_0xcb6e('0x22')](function(_0x812ff8){if(_0x812ff8){_0x45a53c=_0x812ff8[_0xcb6e('0x35')];if(!_0x2aaa34[_0xcb6e('0x2f')]['hasOwnProperty'](_0xcb6e('0x37'))){_0x30fe5b[_0xcb6e('0x19')]=qs[_0xcb6e('0x19')](_0x2aaa34[_0xcb6e('0x2f')][_0xcb6e('0x19')]);_0x30fe5b[_0xcb6e('0x1b')]=qs[_0xcb6e('0x1b')](_0x2aaa34[_0xcb6e('0x2f')][_0xcb6e('0x1b')]);}return _0x36aa3a[_0xcb6e('0x4c')](_0x30fe5b);}})[_0xcb6e('0x22')](function(_0x51cc77){if(_0x51cc77){return _0x51cc77?{'count':_0x45a53c,'rows':_0x51cc77}:null;}})[_0xcb6e('0x22')](respondWithResult(_0x212ce8,null))[_0xcb6e('0x41')](handleError(_0x212ce8,null));};exports[_0xcb6e('0x4d')]=function(_0x301f5e,_0xdd742e,_0x163714){var _0x4a0a92={};var _0x42738c={};var _0x93034;var _0x1e6791;return db[_0xcb6e('0x2a')][_0xcb6e('0x4e')]({'where':{'id':_0x301f5e[_0xcb6e('0x43')]['id']}})[_0xcb6e('0x22')](handleEntityNotFound(_0xdd742e,null))[_0xcb6e('0x22')](function(_0x372180){if(_0x372180){_0x93034=_0x372180;_0x42738c['model']=_[_0xcb6e('0x30')](db[_0xcb6e('0x49')][_0xcb6e('0x2b')]);_0x42738c[_0xcb6e('0x2f')]=_['keys'](_0x301f5e[_0xcb6e('0x2f')]);_0x42738c['filters']=_[_0xcb6e('0x33')](_0x42738c[_0xcb6e('0x2e')],_0x42738c[_0xcb6e('0x2f')]);_0x4a0a92[_0xcb6e('0x32')]=_['intersection'](_0x42738c['model'],qs[_0xcb6e('0x34')](_0x301f5e[_0xcb6e('0x2f')][_0xcb6e('0x34')]));_0x4a0a92[_0xcb6e('0x32')]=_0x4a0a92['attributes']['length']?_0x4a0a92[_0xcb6e('0x32')]:_0x42738c[_0xcb6e('0x2e')];_0x4a0a92[_0xcb6e('0x4a')]=qs[_0xcb6e('0x38')](_0x301f5e['query']['sort']);_0x4a0a92['where']=qs[_0xcb6e('0x31')](_[_0xcb6e('0x4b')](_0x301f5e[_0xcb6e('0x2f')],_0x42738c[_0xcb6e('0x31')]));if(_0x301f5e[_0xcb6e('0x2f')][_0xcb6e('0x3a')]){_0x4a0a92[_0xcb6e('0x39')]=_[_0xcb6e('0x3b')](_0x4a0a92[_0xcb6e('0x39')],{'$or':_['map'](_0x4a0a92[_0xcb6e('0x32')],function(_0x2a25e3){var _0x43aad4={};_0x43aad4[_0x2a25e3]={'$like':'%'+_0x301f5e[_0xcb6e('0x2f')][_0xcb6e('0x3a')]+'%'};return _0x43aad4;})});}_0x4a0a92=_[_0xcb6e('0x3b')]({},_0x4a0a92,_0x301f5e[_0xcb6e('0x3d')]);return _0x93034[_0xcb6e('0x4d')](_0x4a0a92);}})[_0xcb6e('0x22')](function(_0x156880){if(_0x156880){_0x1e6791=_0x156880[_0xcb6e('0x35')];if(!_0x301f5e[_0xcb6e('0x2f')][_0xcb6e('0x36')]('nolimit')){_0x4a0a92[_0xcb6e('0x19')]=qs[_0xcb6e('0x19')](_0x301f5e['query'][_0xcb6e('0x19')]);_0x4a0a92[_0xcb6e('0x1b')]=qs['offset'](_0x301f5e[_0xcb6e('0x2f')][_0xcb6e('0x1b')]);}return _0x93034[_0xcb6e('0x4d')](_0x4a0a92);}})[_0xcb6e('0x22')](function(_0x4532aa){if(_0x4532aa){return _0x4532aa?{'count':_0x1e6791,'rows':_0x4532aa}:null;}})[_0xcb6e('0x22')](respondWithResult(_0xdd742e,null))[_0xcb6e('0x41')](handleError(_0xdd742e,null));};exports['getDescriptions']=function(_0x80fa64,_0x4c70c3,_0x1dea36){var _0xc4fd14={};var _0x2737cf={};var _0x3a05c2;var _0x25cd5d;return db[_0xcb6e('0x2a')][_0xcb6e('0x4e')]({'where':{'id':_0x80fa64[_0xcb6e('0x43')]['id']}})[_0xcb6e('0x22')](handleEntityNotFound(_0x4c70c3,null))[_0xcb6e('0x22')](function(_0x1442ae){if(_0x1442ae){_0x3a05c2=_0x1442ae;_0x2737cf['model']=_[_0xcb6e('0x30')](db[_0xcb6e('0x49')][_0xcb6e('0x2b')]);_0x2737cf[_0xcb6e('0x2f')]=_[_0xcb6e('0x30')](_0x80fa64[_0xcb6e('0x2f')]);_0x2737cf[_0xcb6e('0x31')]=_['intersection'](_0x2737cf[_0xcb6e('0x2e')],_0x2737cf['query']);_0xc4fd14[_0xcb6e('0x32')]=_[_0xcb6e('0x33')](_0x2737cf[_0xcb6e('0x2e')],qs['fields'](_0x80fa64['query'][_0xcb6e('0x34')]));_0xc4fd14[_0xcb6e('0x32')]=_0xc4fd14[_0xcb6e('0x32')][_0xcb6e('0x35')]?_0xc4fd14[_0xcb6e('0x32')]:_0x2737cf[_0xcb6e('0x2e')];_0xc4fd14[_0xcb6e('0x4a')]=qs[_0xcb6e('0x38')](_0x80fa64[_0xcb6e('0x2f')]['sort']);_0xc4fd14[_0xcb6e('0x39')]=qs[_0xcb6e('0x31')](_[_0xcb6e('0x4b')](_0x80fa64[_0xcb6e('0x2f')],_0x2737cf[_0xcb6e('0x31')]));if(_0x80fa64[_0xcb6e('0x2f')][_0xcb6e('0x3a')]){_0xc4fd14['where']=_[_0xcb6e('0x3b')](_0xc4fd14[_0xcb6e('0x39')],{'$or':_[_0xcb6e('0x29')](_0xc4fd14[_0xcb6e('0x32')],function(_0x41ebee){var _0x28f4cc={};_0x28f4cc[_0x41ebee]={'$like':'%'+_0x80fa64[_0xcb6e('0x2f')]['filter']+'%'};return _0x28f4cc;})});}_0xc4fd14=_['merge']({},_0xc4fd14,_0x80fa64['options']);return _0x3a05c2['getDescriptions'](_0xc4fd14);}})['then'](function(_0x8844c6){if(_0x8844c6){_0x25cd5d=_0x8844c6[_0xcb6e('0x35')];if(!_0x80fa64[_0xcb6e('0x2f')][_0xcb6e('0x36')](_0xcb6e('0x37'))){_0xc4fd14['limit']=qs[_0xcb6e('0x19')](_0x80fa64[_0xcb6e('0x2f')][_0xcb6e('0x19')]);_0xc4fd14['offset']=qs['offset'](_0x80fa64[_0xcb6e('0x2f')]['offset']);}return _0x3a05c2[_0xcb6e('0x4f')](_0xc4fd14);}})[_0xcb6e('0x22')](function(_0x524e45){if(_0x524e45){return _0x524e45?{'count':_0x25cd5d,'rows':_0x524e45}:null;}})[_0xcb6e('0x22')](respondWithResult(_0x4c70c3,null))[_0xcb6e('0x41')](handleError(_0x4c70c3,null));};