a09663df86c362cec6b18ce74b9be53be2f53fdb
[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 _0x91e4=['query','keys','attributes','fields','length','hasOwnProperty','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','rawAttributes','intersection','find','catch','create','body','getFields','findOne','VtigerField','order','nolimit','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','moment','bluebird','to-csv','fs-extra','lodash','squel','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','undefined','limit','count','offset','apply','reject','save','update','then','error','name','send','index','map','VtigerConfiguration','fieldName','type','key','model'];(function(_0x3d2203,_0x4aaceb){var _0xc9b093=function(_0x3cac87){while(--_0x3cac87){_0x3d2203['push'](_0x3d2203['shift']());}};_0xc9b093(++_0x4aaceb);}(_0x91e4,0x14d));var _0x491e=function(_0x15f233,_0x46e3b8){_0x15f233=_0x15f233-0x0;var _0x5f0820=_0x91e4[_0x15f233];return _0x5f0820;};'use strict';var emlformat=require(_0x491e('0x0'));var rimraf=require(_0x491e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x491e('0x2'));var rp=require('request-promise');var moment=require(_0x491e('0x3'));var BPromise=require(_0x491e('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x491e('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x491e('0x6'));var _=require(_0x491e('0x7'));var squel=require(_0x491e('0x8'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x491e('0x9'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x491e('0xa'));var authService=require(_0x491e('0xb'));var qs=require(_0x491e('0xc'));var as=require(_0x491e('0xd'));var hardwareService=require(_0x491e('0xe'));var logger=require(_0x491e('0xf'))(_0x491e('0x10'));var utils=require('../../config/utils');var config=require(_0x491e('0x11'));var licenseUtil=require(_0x491e('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x412283,_0x45c135){_0x45c135=_0x45c135||0xcc;return function(_0x1383db){if(_0x1383db){return _0x412283[_0x491e('0x13')](_0x45c135);}return _0x412283[_0x491e('0x14')](_0x45c135)[_0x491e('0x15')]();};}function respondWithResult(_0x55589d,_0x41018f){_0x41018f=_0x41018f||0xc8;return function(_0x4084cd){if(_0x4084cd){return _0x55589d[_0x491e('0x14')](_0x41018f)[_0x491e('0x16')](_0x4084cd);}};}function respondWithFilteredResult(_0xa37b55,_0x4fe83a){return function(_0x4d9be4){if(_0x4d9be4){var _0x5ecfca=typeof _0x4fe83a['offset']===_0x491e('0x17')&&typeof _0x4fe83a[_0x491e('0x18')]===_0x491e('0x17');var _0x1471ec=_0x4d9be4[_0x491e('0x19')];var _0x355247=_0x5ecfca?0x0:_0x4fe83a['offset'];var _0x33b4e3=_0x5ecfca?_0x4d9be4[_0x491e('0x19')]:_0x4fe83a[_0x491e('0x1a')]+_0x4fe83a[_0x491e('0x18')];var _0x174397;if(_0x33b4e3>=_0x1471ec){_0x33b4e3=_0x1471ec;_0x174397=0xc8;}else{_0x174397=0xce;}_0xa37b55['status'](_0x174397);return _0xa37b55['set']('Content-Range',_0x355247+'-'+_0x33b4e3+'/'+_0x1471ec)['json'](_0x4d9be4);}return null;};}function patchUpdates(_0x3f0573){return function(_0x48ea51){try{jsonpatch[_0x491e('0x1b')](_0x48ea51,_0x3f0573,!![]);}catch(_0x366a6e){return BPromise[_0x491e('0x1c')](_0x366a6e);}return _0x48ea51[_0x491e('0x1d')]();};}function saveUpdates(_0x58cdf3,_0x7e74c7){return function(_0x35edb9){if(_0x35edb9){return _0x35edb9[_0x491e('0x1e')](_0x58cdf3)[_0x491e('0x1f')](function(_0x13de98){return _0x13de98;});}return null;};}function removeEntity(_0x45c3c0,_0x54cc59){return function(_0x246be2){if(_0x246be2){return _0x246be2['destroy']()['then'](function(){_0x45c3c0[_0x491e('0x14')](0xcc)[_0x491e('0x15')]();});}};}function handleEntityNotFound(_0x3d1e9a,_0x52fcb1){return function(_0xd8d97b){if(!_0xd8d97b){_0x3d1e9a[_0x491e('0x13')](0x194);}return _0xd8d97b;};}function handleError(_0x492525,_0x4e2124){_0x4e2124=_0x4e2124||0x1f4;return function(_0xb4a55b){logger[_0x491e('0x20')](_0xb4a55b['stack']);if(_0xb4a55b[_0x491e('0x21')]){delete _0xb4a55b['name'];}_0x492525[_0x491e('0x14')](_0x4e2124)[_0x491e('0x22')](_0xb4a55b);};}exports[_0x491e('0x23')]=function(_0x136de2,_0x25726f){var _0x4a2511={},_0x37b47a={},_0x349d77={'count':0x0,'rows':[]};var _0x422b15=_[_0x491e('0x24')](db[_0x491e('0x25')]['rawAttributes'],function(_0x18c2e8){return{'name':_0x18c2e8[_0x491e('0x26')],'type':_0x18c2e8[_0x491e('0x27')][_0x491e('0x28')]};});_0x37b47a[_0x491e('0x29')]=_[_0x491e('0x24')](_0x422b15,_0x491e('0x21'));_0x37b47a[_0x491e('0x2a')]=_[_0x491e('0x2b')](_0x136de2[_0x491e('0x2a')]);_0x37b47a['filters']=_['intersection'](_0x37b47a[_0x491e('0x29')],_0x37b47a['query']);_0x4a2511[_0x491e('0x2c')]=_['intersection'](_0x37b47a['model'],qs[_0x491e('0x2d')](_0x136de2['query'][_0x491e('0x2d')]));_0x4a2511['attributes']=_0x4a2511['attributes'][_0x491e('0x2e')]?_0x4a2511[_0x491e('0x2c')]:_0x37b47a[_0x491e('0x29')];if(!_0x136de2[_0x491e('0x2a')][_0x491e('0x2f')]('nolimit')){_0x4a2511[_0x491e('0x18')]=qs[_0x491e('0x18')](_0x136de2[_0x491e('0x2a')]['limit']);_0x4a2511['offset']=qs[_0x491e('0x1a')](_0x136de2[_0x491e('0x2a')][_0x491e('0x1a')]);}_0x4a2511['order']=qs[_0x491e('0x30')](_0x136de2[_0x491e('0x2a')][_0x491e('0x30')]);_0x4a2511[_0x491e('0x31')]=qs[_0x491e('0x32')](_[_0x491e('0x33')](_0x136de2[_0x491e('0x2a')],_0x37b47a[_0x491e('0x32')]),_0x422b15);if(_0x136de2['query'][_0x491e('0x34')]){_0x4a2511['where']=_[_0x491e('0x35')](_0x4a2511[_0x491e('0x31')],{'$or':_[_0x491e('0x24')](_0x422b15,function(_0x1ea2db){if(_0x1ea2db[_0x491e('0x27')]!==_0x491e('0x36')){var _0x596555={};_0x596555[_0x1ea2db[_0x491e('0x21')]]={'$like':'%'+_0x136de2[_0x491e('0x2a')][_0x491e('0x34')]+'%'};return _0x596555;}})});}_0x4a2511=_[_0x491e('0x35')]({},_0x4a2511,_0x136de2[_0x491e('0x37')]);var _0x10d995={'where':_0x4a2511[_0x491e('0x31')]};return db['VtigerConfiguration'][_0x491e('0x19')](_0x10d995)[_0x491e('0x1f')](function(_0x14a432){_0x349d77[_0x491e('0x19')]=_0x14a432;if(_0x136de2[_0x491e('0x2a')][_0x491e('0x38')]){_0x4a2511[_0x491e('0x39')]=[{'all':!![]}];}return db[_0x491e('0x25')][_0x491e('0x3a')](_0x4a2511);})['then'](function(_0xe8cc23){_0x349d77[_0x491e('0x3b')]=_0xe8cc23;return _0x349d77;})[_0x491e('0x1f')](respondWithFilteredResult(_0x25726f,_0x4a2511))['catch'](handleError(_0x25726f,null));};exports[_0x491e('0x3c')]=function(_0x610158,_0x5018bb){var _0x293a0d={'raw':![],'where':{'id':_0x610158[_0x491e('0x3d')]['id']}},_0x132e3d={};_0x132e3d[_0x491e('0x29')]=_[_0x491e('0x2b')](db[_0x491e('0x25')][_0x491e('0x3e')]);_0x132e3d[_0x491e('0x2a')]=_[_0x491e('0x2b')](_0x610158[_0x491e('0x2a')]);_0x132e3d[_0x491e('0x32')]=_[_0x491e('0x3f')](_0x132e3d[_0x491e('0x29')],_0x132e3d[_0x491e('0x2a')]);_0x293a0d[_0x491e('0x2c')]=_[_0x491e('0x3f')](_0x132e3d[_0x491e('0x29')],qs[_0x491e('0x2d')](_0x610158['query'][_0x491e('0x2d')]));_0x293a0d[_0x491e('0x2c')]=_0x293a0d[_0x491e('0x2c')][_0x491e('0x2e')]?_0x293a0d[_0x491e('0x2c')]:_0x132e3d[_0x491e('0x29')];if(_0x610158[_0x491e('0x2a')]['includeAll']){_0x293a0d[_0x491e('0x39')]=[{'all':!![]}];}_0x293a0d=_[_0x491e('0x35')]({},_0x293a0d,_0x610158[_0x491e('0x37')]);return db[_0x491e('0x25')][_0x491e('0x40')](_0x293a0d)[_0x491e('0x1f')](handleEntityNotFound(_0x5018bb,null))[_0x491e('0x1f')](respondWithResult(_0x5018bb,null))[_0x491e('0x41')](handleError(_0x5018bb,null));};exports[_0x491e('0x42')]=function(_0x16ce50,_0xaa0232){return db['VtigerConfiguration'][_0x491e('0x42')](_0x16ce50[_0x491e('0x43')],{})[_0x491e('0x1f')](respondWithResult(_0xaa0232,0xc9))[_0x491e('0x41')](handleError(_0xaa0232,null));};exports[_0x491e('0x1e')]=function(_0x3a47e3,_0x5b222a){if(_0x3a47e3[_0x491e('0x43')]['id']){delete _0x3a47e3['body']['id'];}return db[_0x491e('0x25')][_0x491e('0x40')]({'where':{'id':_0x3a47e3['params']['id']}})[_0x491e('0x1f')](handleEntityNotFound(_0x5b222a,null))[_0x491e('0x1f')](saveUpdates(_0x3a47e3[_0x491e('0x43')],null))['then'](respondWithResult(_0x5b222a,null))[_0x491e('0x41')](handleError(_0x5b222a,null));};exports['destroy']=function(_0x57364a,_0x560823){return db['VtigerConfiguration'][_0x491e('0x40')]({'where':{'id':_0x57364a[_0x491e('0x3d')]['id']}})[_0x491e('0x1f')](handleEntityNotFound(_0x560823,null))[_0x491e('0x1f')](removeEntity(_0x560823,null))[_0x491e('0x41')](handleError(_0x560823,null));};exports[_0x491e('0x44')]=function(_0x3c6bc8,_0x594634,_0x204d94){var _0x4f1532={};var _0x8ce95d={};var _0x2c12e5;var _0x40a136;return db['VtigerConfiguration'][_0x491e('0x45')]({'where':{'id':_0x3c6bc8[_0x491e('0x3d')]['id']}})[_0x491e('0x1f')](handleEntityNotFound(_0x594634,null))[_0x491e('0x1f')](function(_0x374f93){if(_0x374f93){_0x2c12e5=_0x374f93;_0x8ce95d[_0x491e('0x29')]=_[_0x491e('0x2b')](db[_0x491e('0x46')]['rawAttributes']);_0x8ce95d['query']=_[_0x491e('0x2b')](_0x3c6bc8[_0x491e('0x2a')]);_0x8ce95d[_0x491e('0x32')]=_['intersection'](_0x8ce95d[_0x491e('0x29')],_0x8ce95d[_0x491e('0x2a')]);_0x4f1532['attributes']=_[_0x491e('0x3f')](_0x8ce95d[_0x491e('0x29')],qs[_0x491e('0x2d')](_0x3c6bc8['query']['fields']));_0x4f1532[_0x491e('0x2c')]=_0x4f1532[_0x491e('0x2c')][_0x491e('0x2e')]?_0x4f1532[_0x491e('0x2c')]:_0x8ce95d[_0x491e('0x29')];_0x4f1532[_0x491e('0x47')]=qs[_0x491e('0x30')](_0x3c6bc8['query'][_0x491e('0x30')]);_0x4f1532[_0x491e('0x31')]=qs[_0x491e('0x32')](_[_0x491e('0x33')](_0x3c6bc8[_0x491e('0x2a')],_0x8ce95d[_0x491e('0x32')]));if(_0x3c6bc8[_0x491e('0x2a')][_0x491e('0x34')]){_0x4f1532['where']=_[_0x491e('0x35')](_0x4f1532['where'],{'$or':_[_0x491e('0x24')](_0x4f1532['attributes'],function(_0x2ebc97){var _0x52803b={};_0x52803b[_0x2ebc97]={'$like':'%'+_0x3c6bc8[_0x491e('0x2a')][_0x491e('0x34')]+'%'};return _0x52803b;})});}_0x4f1532=_[_0x491e('0x35')]({},_0x4f1532,_0x3c6bc8[_0x491e('0x37')]);return _0x2c12e5['getFields'](_0x4f1532);}})['then'](function(_0x45ccf4){if(_0x45ccf4){_0x40a136=_0x45ccf4[_0x491e('0x2e')];if(!_0x3c6bc8[_0x491e('0x2a')]['hasOwnProperty'](_0x491e('0x48'))){_0x4f1532[_0x491e('0x18')]=qs[_0x491e('0x18')](_0x3c6bc8['query'][_0x491e('0x18')]);_0x4f1532[_0x491e('0x1a')]=qs[_0x491e('0x1a')](_0x3c6bc8[_0x491e('0x2a')][_0x491e('0x1a')]);}return _0x2c12e5[_0x491e('0x44')](_0x4f1532);}})['then'](function(_0x339286){if(_0x339286){return _0x339286?{'count':_0x40a136,'rows':_0x339286}:null;}})['then'](respondWithResult(_0x594634,null))['catch'](handleError(_0x594634,null));};exports[_0x491e('0x49')]=function(_0x581778,_0x12009a,_0x3e364c){var _0x119ba0={};var _0x5c60d2={};var _0x41dee8;var _0x3ad4ac;return db[_0x491e('0x25')][_0x491e('0x45')]({'where':{'id':_0x581778[_0x491e('0x3d')]['id']}})['then'](handleEntityNotFound(_0x12009a,null))['then'](function(_0x36bea5){if(_0x36bea5){_0x41dee8=_0x36bea5;_0x5c60d2[_0x491e('0x29')]=_['keys'](db[_0x491e('0x46')][_0x491e('0x3e')]);_0x5c60d2[_0x491e('0x2a')]=_[_0x491e('0x2b')](_0x581778[_0x491e('0x2a')]);_0x5c60d2[_0x491e('0x32')]=_['intersection'](_0x5c60d2['model'],_0x5c60d2[_0x491e('0x2a')]);_0x119ba0[_0x491e('0x2c')]=_[_0x491e('0x3f')](_0x5c60d2[_0x491e('0x29')],qs[_0x491e('0x2d')](_0x581778[_0x491e('0x2a')]['fields']));_0x119ba0['attributes']=_0x119ba0[_0x491e('0x2c')][_0x491e('0x2e')]?_0x119ba0['attributes']:_0x5c60d2['model'];_0x119ba0[_0x491e('0x47')]=qs[_0x491e('0x30')](_0x581778[_0x491e('0x2a')][_0x491e('0x30')]);_0x119ba0[_0x491e('0x31')]=qs['filters'](_[_0x491e('0x33')](_0x581778[_0x491e('0x2a')],_0x5c60d2['filters']));if(_0x581778[_0x491e('0x2a')][_0x491e('0x34')]){_0x119ba0[_0x491e('0x31')]=_[_0x491e('0x35')](_0x119ba0[_0x491e('0x31')],{'$or':_[_0x491e('0x24')](_0x119ba0[_0x491e('0x2c')],function(_0x46afd9){var _0x1ffce2={};_0x1ffce2[_0x46afd9]={'$like':'%'+_0x581778[_0x491e('0x2a')][_0x491e('0x34')]+'%'};return _0x1ffce2;})});}_0x119ba0=_[_0x491e('0x35')]({},_0x119ba0,_0x581778['options']);return _0x41dee8['getSubjects'](_0x119ba0);}})[_0x491e('0x1f')](function(_0x456292){if(_0x456292){_0x3ad4ac=_0x456292[_0x491e('0x2e')];if(!_0x581778[_0x491e('0x2a')][_0x491e('0x2f')](_0x491e('0x48'))){_0x119ba0['limit']=qs['limit'](_0x581778[_0x491e('0x2a')][_0x491e('0x18')]);_0x119ba0[_0x491e('0x1a')]=qs[_0x491e('0x1a')](_0x581778['query']['offset']);}return _0x41dee8[_0x491e('0x49')](_0x119ba0);}})[_0x491e('0x1f')](function(_0x2c61e4){if(_0x2c61e4){return _0x2c61e4?{'count':_0x3ad4ac,'rows':_0x2c61e4}:null;}})[_0x491e('0x1f')](respondWithResult(_0x12009a,null))[_0x491e('0x41')](handleError(_0x12009a,null));};exports['getDescriptions']=function(_0x19cdca,_0x4893e4,_0x3bddcb){var _0x54b10b={};var _0x13b72f={};var _0x5d7071;var _0x49c081;return db['VtigerConfiguration'][_0x491e('0x45')]({'where':{'id':_0x19cdca[_0x491e('0x3d')]['id']}})[_0x491e('0x1f')](handleEntityNotFound(_0x4893e4,null))[_0x491e('0x1f')](function(_0x387b61){if(_0x387b61){_0x5d7071=_0x387b61;_0x13b72f[_0x491e('0x29')]=_[_0x491e('0x2b')](db[_0x491e('0x46')][_0x491e('0x3e')]);_0x13b72f['query']=_[_0x491e('0x2b')](_0x19cdca['query']);_0x13b72f[_0x491e('0x32')]=_['intersection'](_0x13b72f['model'],_0x13b72f[_0x491e('0x2a')]);_0x54b10b['attributes']=_[_0x491e('0x3f')](_0x13b72f[_0x491e('0x29')],qs['fields'](_0x19cdca[_0x491e('0x2a')][_0x491e('0x2d')]));_0x54b10b['attributes']=_0x54b10b[_0x491e('0x2c')][_0x491e('0x2e')]?_0x54b10b[_0x491e('0x2c')]:_0x13b72f['model'];_0x54b10b[_0x491e('0x47')]=qs[_0x491e('0x30')](_0x19cdca['query'][_0x491e('0x30')]);_0x54b10b[_0x491e('0x31')]=qs[_0x491e('0x32')](_[_0x491e('0x33')](_0x19cdca[_0x491e('0x2a')],_0x13b72f['filters']));if(_0x19cdca[_0x491e('0x2a')]['filter']){_0x54b10b[_0x491e('0x31')]=_[_0x491e('0x35')](_0x54b10b[_0x491e('0x31')],{'$or':_['map'](_0x54b10b[_0x491e('0x2c')],function(_0xc129b5){var _0x27b0ac={};_0x27b0ac[_0xc129b5]={'$like':'%'+_0x19cdca[_0x491e('0x2a')][_0x491e('0x34')]+'%'};return _0x27b0ac;})});}_0x54b10b=_['merge']({},_0x54b10b,_0x19cdca['options']);return _0x5d7071[_0x491e('0x4a')](_0x54b10b);}})[_0x491e('0x1f')](function(_0x779ed9){if(_0x779ed9){_0x49c081=_0x779ed9[_0x491e('0x2e')];if(!_0x19cdca[_0x491e('0x2a')][_0x491e('0x2f')](_0x491e('0x48'))){_0x54b10b[_0x491e('0x18')]=qs[_0x491e('0x18')](_0x19cdca[_0x491e('0x2a')]['limit']);_0x54b10b[_0x491e('0x1a')]=qs[_0x491e('0x1a')](_0x19cdca[_0x491e('0x2a')]['offset']);}return _0x5d7071[_0x491e('0x4a')](_0x54b10b);}})[_0x491e('0x1f')](function(_0x43ce9a){if(_0x43ce9a){return _0x43ce9a?{'count':_0x49c081,'rows':_0x43ce9a}:null;}})['then'](respondWithResult(_0x4893e4,null))[_0x491e('0x41')](handleError(_0x4893e4,null));};