8e771cb0bfae156009203d541c81862f7689314e
[motion2.git] / server / api / variable / variable.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 _0xf40a=['Variables','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','to-csv','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','offset','count','set','apply','reject','save','then','destroy','UserProfileResource','error','name','send','map','Variable','rawAttributes','fieldName','key','query','intersection','model','fields','attributes','hasOwnProperty','order','sort','where','filters','filter','type','VIRTUAL','merge','includeAll','findAll','rows','catch','show','params','keys','length','include','options','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role'];(function(_0x32be42,_0xb015aa){var _0x5f0e1c=function(_0x213a69){while(--_0x213a69){_0x32be42['push'](_0x32be42['shift']());}};_0x5f0e1c(++_0xb015aa);}(_0xf40a,0xa6));var _0xaf40=function(_0x501695,_0xda9d02){_0x501695=_0x501695-0x0;var _0xca4b6c=_0xf40a[_0x501695];return _0xca4b6c;};'use strict';var emlformat=require(_0xaf40('0x0'));var rimraf=require(_0xaf40('0x1'));var zipdir=require(_0xaf40('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xaf40('0x3'));var BPromise=require(_0xaf40('0x4'));var Mustache=require(_0xaf40('0x5'));var util=require(_0xaf40('0x6'));var path=require(_0xaf40('0x7'));var sox=require('sox');var csv=require(_0xaf40('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xaf40('0x9'));var squel=require('squel');var crypto=require(_0xaf40('0xa'));var jsforce=require(_0xaf40('0xb'));var deskjs=require(_0xaf40('0xc'));var toCsv=require(_0xaf40('0x8'));var querystring=require('querystring');var Papa=require(_0xaf40('0xd'));var Redis=require(_0xaf40('0xe'));var authService=require(_0xaf40('0xf'));var qs=require(_0xaf40('0x10'));var as=require(_0xaf40('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xaf40('0x12'));var utils=require('../../config/utils');var config=require(_0xaf40('0x13'));var licenseUtil=require(_0xaf40('0x14'));var db=require(_0xaf40('0x15'))['db'];function respondWithStatusCode(_0x59fade,_0xd19cb2){_0xd19cb2=_0xd19cb2||0xcc;return function(_0x355265){if(_0x355265){return _0x59fade[_0xaf40('0x16')](_0xd19cb2);}return _0x59fade[_0xaf40('0x17')](_0xd19cb2)[_0xaf40('0x18')]();};}function respondWithResult(_0x1dbda4,_0x385a8b){_0x385a8b=_0x385a8b||0xc8;return function(_0x1210af){if(_0x1210af){return _0x1dbda4[_0xaf40('0x17')](_0x385a8b)[_0xaf40('0x19')](_0x1210af);}};}function respondWithFilteredResult(_0x2a8588,_0x2a4f91){return function(_0x447f63){if(_0x447f63){var _0x2a5a1e=typeof _0x2a4f91['offset']==='undefined'&&typeof _0x2a4f91[_0xaf40('0x1a')]==='undefined';var _0xa0def0=_0x447f63['count'];var _0x347657=_0x2a5a1e?0x0:_0x2a4f91[_0xaf40('0x1b')];var _0x1f78a9=_0x2a5a1e?_0x447f63[_0xaf40('0x1c')]:_0x2a4f91['offset']+_0x2a4f91[_0xaf40('0x1a')];var _0x5503df;if(_0x1f78a9>=_0xa0def0){_0x1f78a9=_0xa0def0;_0x5503df=0xc8;}else{_0x5503df=0xce;}_0x2a8588['status'](_0x5503df);return _0x2a8588[_0xaf40('0x1d')]('Content-Range',_0x347657+'-'+_0x1f78a9+'/'+_0xa0def0)['json'](_0x447f63);}return null;};}function patchUpdates(_0xe6e27c){return function(_0x5d9b99){try{jsonpatch[_0xaf40('0x1e')](_0x5d9b99,_0xe6e27c,!![]);}catch(_0x5792ac){return BPromise[_0xaf40('0x1f')](_0x5792ac);}return _0x5d9b99[_0xaf40('0x20')]();};}function saveUpdates(_0x3e4ac8,_0x257b2d){return function(_0x67d6fe){if(_0x67d6fe){return _0x67d6fe['update'](_0x3e4ac8)[_0xaf40('0x21')](function(_0x49c311){return _0x49c311;});}return null;};}function removeEntity(_0x2e1b35,_0x4a5b32){return function(_0x1f07a8){if(_0x1f07a8){return _0x1f07a8[_0xaf40('0x22')]()[_0xaf40('0x21')](function(){var _0x3a5755=_0x1f07a8['get']({'plain':!![]});var _0x18a4d4='Variables';return db[_0xaf40('0x23')][_0xaf40('0x22')]({'where':{'type':_0x18a4d4,'resourceId':_0x3a5755['id']}})[_0xaf40('0x21')](function(){return _0x1f07a8;});})['then'](function(){_0x2e1b35[_0xaf40('0x17')](0xcc)[_0xaf40('0x18')]();});}};}function handleEntityNotFound(_0x120b70,_0x72f4bd){return function(_0x208663){if(!_0x208663){_0x120b70[_0xaf40('0x16')](0x194);}return _0x208663;};}function handleError(_0x4885d7,_0x4f5274){_0x4f5274=_0x4f5274||0x1f4;return function(_0x4ed60a){logger[_0xaf40('0x24')](_0x4ed60a['stack']);if(_0x4ed60a[_0xaf40('0x25')]){delete _0x4ed60a[_0xaf40('0x25')];}_0x4885d7[_0xaf40('0x17')](_0x4f5274)[_0xaf40('0x26')](_0x4ed60a);};}exports['index']=function(_0xb5337f,_0x110772){var _0x4e596f={},_0x18c831={},_0x29d2ce={'count':0x0,'rows':[]};var _0x338e25=_[_0xaf40('0x27')](db[_0xaf40('0x28')][_0xaf40('0x29')],function(_0x3675ff){return{'name':_0x3675ff[_0xaf40('0x2a')],'type':_0x3675ff['type'][_0xaf40('0x2b')]};});_0x18c831['model']=_[_0xaf40('0x27')](_0x338e25,_0xaf40('0x25'));_0x18c831[_0xaf40('0x2c')]=_['keys'](_0xb5337f[_0xaf40('0x2c')]);_0x18c831['filters']=_[_0xaf40('0x2d')](_0x18c831['model'],_0x18c831['query']);_0x4e596f['attributes']=_[_0xaf40('0x2d')](_0x18c831[_0xaf40('0x2e')],qs[_0xaf40('0x2f')](_0xb5337f[_0xaf40('0x2c')][_0xaf40('0x2f')]));_0x4e596f[_0xaf40('0x30')]=_0x4e596f['attributes']['length']?_0x4e596f[_0xaf40('0x30')]:_0x18c831[_0xaf40('0x2e')];if(!_0xb5337f[_0xaf40('0x2c')][_0xaf40('0x31')]('nolimit')){_0x4e596f[_0xaf40('0x1a')]=qs['limit'](_0xb5337f[_0xaf40('0x2c')][_0xaf40('0x1a')]);_0x4e596f[_0xaf40('0x1b')]=qs['offset'](_0xb5337f[_0xaf40('0x2c')][_0xaf40('0x1b')]);}_0x4e596f[_0xaf40('0x32')]=qs[_0xaf40('0x33')](_0xb5337f[_0xaf40('0x2c')][_0xaf40('0x33')]);_0x4e596f[_0xaf40('0x34')]=qs[_0xaf40('0x35')](_['pick'](_0xb5337f[_0xaf40('0x2c')],_0x18c831[_0xaf40('0x35')]),_0x338e25);if(_0xb5337f[_0xaf40('0x2c')][_0xaf40('0x36')]){_0x4e596f[_0xaf40('0x34')]=_['merge'](_0x4e596f[_0xaf40('0x34')],{'$or':_['map'](_0x338e25,function(_0x2be290){if(_0x2be290[_0xaf40('0x37')]!==_0xaf40('0x38')){var _0x14e54a={};_0x14e54a[_0x2be290[_0xaf40('0x25')]]={'$like':'%'+_0xb5337f[_0xaf40('0x2c')][_0xaf40('0x36')]+'%'};return _0x14e54a;}})});}_0x4e596f=_[_0xaf40('0x39')]({},_0x4e596f,_0xb5337f['options']);var _0x416584={'where':_0x4e596f[_0xaf40('0x34')]};return db[_0xaf40('0x28')][_0xaf40('0x1c')](_0x416584)[_0xaf40('0x21')](function(_0x289710){_0x29d2ce[_0xaf40('0x1c')]=_0x289710;if(_0xb5337f[_0xaf40('0x2c')][_0xaf40('0x3a')]){_0x4e596f['include']=[{'all':!![]}];}return db[_0xaf40('0x28')][_0xaf40('0x3b')](_0x4e596f);})[_0xaf40('0x21')](function(_0x432114){_0x29d2ce[_0xaf40('0x3c')]=_0x432114;return _0x29d2ce;})[_0xaf40('0x21')](respondWithFilteredResult(_0x110772,_0x4e596f))[_0xaf40('0x3d')](handleError(_0x110772,null));};exports[_0xaf40('0x3e')]=function(_0x58588d,_0x3d7926){var _0x560af4={'raw':!![],'where':{'id':_0x58588d[_0xaf40('0x3f')]['id']}},_0x589b55={};_0x589b55['model']=_[_0xaf40('0x40')](db[_0xaf40('0x28')][_0xaf40('0x29')]);_0x589b55['query']=_[_0xaf40('0x40')](_0x58588d[_0xaf40('0x2c')]);_0x589b55[_0xaf40('0x35')]=_[_0xaf40('0x2d')](_0x589b55[_0xaf40('0x2e')],_0x589b55[_0xaf40('0x2c')]);_0x560af4[_0xaf40('0x30')]=_[_0xaf40('0x2d')](_0x589b55[_0xaf40('0x2e')],qs[_0xaf40('0x2f')](_0x58588d[_0xaf40('0x2c')][_0xaf40('0x2f')]));_0x560af4[_0xaf40('0x30')]=_0x560af4['attributes'][_0xaf40('0x41')]?_0x560af4[_0xaf40('0x30')]:_0x589b55[_0xaf40('0x2e')];if(_0x58588d[_0xaf40('0x2c')][_0xaf40('0x3a')]){_0x560af4[_0xaf40('0x42')]=[{'all':!![]}];}_0x560af4=_[_0xaf40('0x39')]({},_0x560af4,_0x58588d[_0xaf40('0x43')]);return db[_0xaf40('0x28')][_0xaf40('0x44')](_0x560af4)[_0xaf40('0x21')](handleEntityNotFound(_0x3d7926,null))[_0xaf40('0x21')](respondWithResult(_0x3d7926,null))[_0xaf40('0x3d')](handleError(_0x3d7926,null));};exports[_0xaf40('0x45')]=function(_0xc23898,_0x3c7039){return db[_0xaf40('0x28')][_0xaf40('0x45')](_0xc23898['body'],{})[_0xaf40('0x21')](function(_0x409c4d){var _0x362866=_0xc23898[_0xaf40('0x46')][_0xaf40('0x47')]({'plain':!![]});if(!_0x362866)throw new Error(_0xaf40('0x48'));if(_0x362866[_0xaf40('0x49')]===_0xaf40('0x46')){var _0x350d4a=_0x409c4d[_0xaf40('0x47')]({'plain':!![]});var _0xe9e88b=_0xaf40('0x4a');return db[_0xaf40('0x4b')][_0xaf40('0x44')]({'where':{'name':_0xe9e88b,'userProfileId':_0x362866['userProfileId']},'raw':!![]})[_0xaf40('0x21')](function(_0x232ddc){if(_0x232ddc&&_0x232ddc[_0xaf40('0x4c')]===0x0){return db[_0xaf40('0x23')][_0xaf40('0x45')]({'name':_0x350d4a['name'],'resourceId':_0x350d4a['id'],'type':_0x232ddc[_0xaf40('0x25')],'sectionId':_0x232ddc['id']},{})[_0xaf40('0x21')](function(){return _0x409c4d;});}else{return _0x409c4d;}})['catch'](function(_0x5698c4){logger['error'](_0xaf40('0x4d'),_0x5698c4);throw _0x5698c4;});}return _0x409c4d;})[_0xaf40('0x21')](respondWithResult(_0x3c7039,0xc9))[_0xaf40('0x3d')](handleError(_0x3c7039,null));};exports[_0xaf40('0x4e')]=function(_0x4986a9,_0x3b8ea9){if(_0x4986a9['body']['id']){delete _0x4986a9[_0xaf40('0x4f')]['id'];}return db[_0xaf40('0x28')][_0xaf40('0x44')]({'where':{'id':_0x4986a9[_0xaf40('0x3f')]['id']}})[_0xaf40('0x21')](handleEntityNotFound(_0x3b8ea9,null))[_0xaf40('0x21')](saveUpdates(_0x4986a9[_0xaf40('0x4f')],null))['then'](respondWithResult(_0x3b8ea9,null))['catch'](handleError(_0x3b8ea9,null));};exports[_0xaf40('0x22')]=function(_0x3becad,_0x2629aa){return db['Variable'][_0xaf40('0x44')]({'where':{'id':_0x3becad['params']['id']}})[_0xaf40('0x21')](handleEntityNotFound(_0x2629aa,null))['then'](removeEntity(_0x2629aa,null))[_0xaf40('0x3d')](handleError(_0x2629aa,null));};