Built motion from commit 47436d59.|2.6.7
[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 _0x7713=['role','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','status','end','offset','limit','undefined','count','set','Content-Range','apply','save','update','then','destroy','get','UserProfileResource','sendStatus','stack','name','index','map','Variable','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x7713,0x1d2));var _0x3771=function(_0x289549,_0x50a556){_0x289549=_0x289549-0x0;var _0x45ce94=_0x7713[_0x289549];return _0x45ce94;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3771('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3771('0x1'));var rp=require('request-promise');var moment=require(_0x3771('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x3771('0x3'));var util=require(_0x3771('0x4'));var path=require(_0x3771('0x5'));var sox=require(_0x3771('0x6'));var csv=require(_0x3771('0x7'));var ejs=require(_0x3771('0x8'));var fs=require('fs');var fs_extra=require(_0x3771('0x9'));var _=require(_0x3771('0xa'));var squel=require(_0x3771('0xb'));var crypto=require(_0x3771('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x3771('0xd'));var toCsv=require('to-csv');var querystring=require(_0x3771('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x3771('0xf'));var hardwareService=require(_0x3771('0x10'));var logger=require('../../config/logger')(_0x3771('0x11'));var utils=require('../../config/utils');var config=require(_0x3771('0x12'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x253769,_0x29896b){_0x29896b=_0x29896b||0xcc;return function(_0x5aac93){if(_0x5aac93){return _0x253769['sendStatus'](_0x29896b);}return _0x253769[_0x3771('0x13')](_0x29896b)[_0x3771('0x14')]();};}function respondWithResult(_0x34a607,_0x47fe49){_0x47fe49=_0x47fe49||0xc8;return function(_0x12259e){if(_0x12259e){return _0x34a607['status'](_0x47fe49)['json'](_0x12259e);}};}function respondWithFilteredResult(_0x1b6606,_0x32d4df){return function(_0x51ff57){if(_0x51ff57){var _0x47f290=typeof _0x32d4df[_0x3771('0x15')]==='undefined'&&typeof _0x32d4df[_0x3771('0x16')]===_0x3771('0x17');var _0x3d53f6=_0x51ff57[_0x3771('0x18')];var _0x298346=_0x47f290?0x0:_0x32d4df[_0x3771('0x15')];var _0x3d9688=_0x47f290?_0x51ff57[_0x3771('0x18')]:_0x32d4df[_0x3771('0x15')]+_0x32d4df[_0x3771('0x16')];var _0x4c9bc5;if(_0x3d9688>=_0x3d53f6){_0x3d9688=_0x3d53f6;_0x4c9bc5=0xc8;}else{_0x4c9bc5=0xce;}_0x1b6606['status'](_0x4c9bc5);return _0x1b6606[_0x3771('0x19')](_0x3771('0x1a'),_0x298346+'-'+_0x3d9688+'/'+_0x3d53f6)['json'](_0x51ff57);}return null;};}function patchUpdates(_0x3c6862){return function(_0x428b09){try{jsonpatch[_0x3771('0x1b')](_0x428b09,_0x3c6862,!![]);}catch(_0x42064e){return BPromise['reject'](_0x42064e);}return _0x428b09[_0x3771('0x1c')]();};}function saveUpdates(_0x169a03,_0x3afef0){return function(_0x480917){if(_0x480917){return _0x480917[_0x3771('0x1d')](_0x169a03)[_0x3771('0x1e')](function(_0x2cfc5f){return _0x2cfc5f;});}return null;};}function removeEntity(_0x2d5c47,_0x3b9576){return function(_0x25e93c){if(_0x25e93c){return _0x25e93c[_0x3771('0x1f')]()[_0x3771('0x1e')](function(){var _0x3dd56e=_0x25e93c[_0x3771('0x20')]({'plain':!![]});var _0x11a486='Variables';return db[_0x3771('0x21')][_0x3771('0x1f')]({'where':{'type':_0x11a486,'resourceId':_0x3dd56e['id']}})[_0x3771('0x1e')](function(){return _0x25e93c;});})['then'](function(){_0x2d5c47[_0x3771('0x13')](0xcc)['end']();});}};}function handleEntityNotFound(_0x17d3a1,_0x1f9867){return function(_0x98abdf){if(!_0x98abdf){_0x17d3a1[_0x3771('0x22')](0x194);}return _0x98abdf;};}function handleError(_0x2f7397,_0x21559b){_0x21559b=_0x21559b||0x1f4;return function(_0x168361){logger['error'](_0x168361[_0x3771('0x23')]);if(_0x168361[_0x3771('0x24')]){delete _0x168361[_0x3771('0x24')];}_0x2f7397['status'](_0x21559b)['send'](_0x168361);};}exports[_0x3771('0x25')]=function(_0x538b07,_0x12f36f){var _0x2f544c={},_0x5032ff={},_0x26f3ca={'count':0x0,'rows':[]};var _0x109ae3=_[_0x3771('0x26')](db[_0x3771('0x27')][_0x3771('0x28')],function(_0x36155f){return{'name':_0x36155f[_0x3771('0x29')],'type':_0x36155f[_0x3771('0x2a')][_0x3771('0x2b')]};});_0x5032ff[_0x3771('0x2c')]=_[_0x3771('0x26')](_0x109ae3,_0x3771('0x24'));_0x5032ff[_0x3771('0x2d')]=_['keys'](_0x538b07['query']);_0x5032ff[_0x3771('0x2e')]=_[_0x3771('0x2f')](_0x5032ff[_0x3771('0x2c')],_0x5032ff[_0x3771('0x2d')]);_0x2f544c[_0x3771('0x30')]=_[_0x3771('0x2f')](_0x5032ff[_0x3771('0x2c')],qs[_0x3771('0x31')](_0x538b07[_0x3771('0x2d')][_0x3771('0x31')]));_0x2f544c['attributes']=_0x2f544c['attributes'][_0x3771('0x32')]?_0x2f544c[_0x3771('0x30')]:_0x5032ff[_0x3771('0x2c')];if(!_0x538b07[_0x3771('0x2d')][_0x3771('0x33')](_0x3771('0x34'))){_0x2f544c[_0x3771('0x16')]=qs[_0x3771('0x16')](_0x538b07[_0x3771('0x2d')][_0x3771('0x16')]);_0x2f544c[_0x3771('0x15')]=qs['offset'](_0x538b07[_0x3771('0x2d')][_0x3771('0x15')]);}_0x2f544c[_0x3771('0x35')]=qs[_0x3771('0x36')](_0x538b07[_0x3771('0x2d')][_0x3771('0x36')]);_0x2f544c[_0x3771('0x37')]=qs[_0x3771('0x2e')](_[_0x3771('0x38')](_0x538b07['query'],_0x5032ff[_0x3771('0x2e')]),_0x109ae3);if(_0x538b07[_0x3771('0x2d')]['filter']){_0x2f544c[_0x3771('0x37')]=_[_0x3771('0x39')](_0x2f544c[_0x3771('0x37')],{'$or':_[_0x3771('0x26')](_0x109ae3,function(_0x2fd127){if(_0x2fd127['type']!==_0x3771('0x3a')){var _0x53c13d={};_0x53c13d[_0x2fd127['name']]={'$like':'%'+_0x538b07[_0x3771('0x2d')][_0x3771('0x3b')]+'%'};return _0x53c13d;}})});}_0x2f544c=_['merge']({},_0x2f544c,_0x538b07['options']);var _0x2407ee={'where':_0x2f544c[_0x3771('0x37')]};return db[_0x3771('0x27')][_0x3771('0x18')](_0x2407ee)[_0x3771('0x1e')](function(_0xe3e3b9){_0x26f3ca[_0x3771('0x18')]=_0xe3e3b9;if(_0x538b07[_0x3771('0x2d')][_0x3771('0x3c')]){_0x2f544c[_0x3771('0x3d')]=[{'all':!![]}];}return db[_0x3771('0x27')][_0x3771('0x3e')](_0x2f544c);})[_0x3771('0x1e')](function(_0x5cd2ee){_0x26f3ca[_0x3771('0x3f')]=_0x5cd2ee;return _0x26f3ca;})['then'](respondWithFilteredResult(_0x12f36f,_0x2f544c))[_0x3771('0x40')](handleError(_0x12f36f,null));};exports[_0x3771('0x41')]=function(_0x1f21ab,_0x1adfc7){var _0x44e80b={'raw':!![],'where':{'id':_0x1f21ab[_0x3771('0x42')]['id']}},_0x47e767={};_0x47e767[_0x3771('0x2c')]=_[_0x3771('0x43')](db[_0x3771('0x27')][_0x3771('0x28')]);_0x47e767[_0x3771('0x2d')]=_['keys'](_0x1f21ab['query']);_0x47e767[_0x3771('0x2e')]=_['intersection'](_0x47e767[_0x3771('0x2c')],_0x47e767['query']);_0x44e80b['attributes']=_[_0x3771('0x2f')](_0x47e767['model'],qs[_0x3771('0x31')](_0x1f21ab[_0x3771('0x2d')][_0x3771('0x31')]));_0x44e80b[_0x3771('0x30')]=_0x44e80b['attributes'][_0x3771('0x32')]?_0x44e80b[_0x3771('0x30')]:_0x47e767[_0x3771('0x2c')];if(_0x1f21ab['query'][_0x3771('0x3c')]){_0x44e80b[_0x3771('0x3d')]=[{'all':!![]}];}_0x44e80b=_[_0x3771('0x39')]({},_0x44e80b,_0x1f21ab['options']);return db[_0x3771('0x27')][_0x3771('0x44')](_0x44e80b)[_0x3771('0x1e')](handleEntityNotFound(_0x1adfc7,null))[_0x3771('0x1e')](respondWithResult(_0x1adfc7,null))[_0x3771('0x40')](handleError(_0x1adfc7,null));};exports[_0x3771('0x45')]=function(_0x3eba13,_0x593648){return db['Variable'][_0x3771('0x45')](_0x3eba13[_0x3771('0x46')],{})[_0x3771('0x1e')](function(_0x3caa0c){var _0x5d135e=_0x3eba13[_0x3771('0x47')][_0x3771('0x20')]({'plain':!![]});if(!_0x5d135e)throw new Error(_0x3771('0x48'));if(_0x5d135e[_0x3771('0x49')]==='user'){var _0x17528e=_0x3caa0c['get']({'plain':!![]});var _0x15295b='Variables';return db['UserProfileSection'][_0x3771('0x44')]({'where':{'name':_0x15295b,'userProfileId':_0x5d135e[_0x3771('0x4a')]},'raw':!![]})[_0x3771('0x1e')](function(_0x1c748e){if(_0x1c748e&&_0x1c748e['autoAssociation']===0x0){return db[_0x3771('0x21')]['create']({'name':_0x17528e[_0x3771('0x24')],'resourceId':_0x17528e['id'],'type':_0x1c748e[_0x3771('0x24')],'sectionId':_0x1c748e['id']},{})[_0x3771('0x1e')](function(){return _0x3caa0c;});}else{return _0x3caa0c;}})['catch'](function(_0x35a62a){logger[_0x3771('0x4b')](_0x3771('0x4c'),_0x35a62a);throw _0x35a62a;});}return _0x3caa0c;})['then'](respondWithResult(_0x593648,0xc9))['catch'](handleError(_0x593648,null));};exports[_0x3771('0x1d')]=function(_0x237dd5,_0x231837){if(_0x237dd5[_0x3771('0x46')]['id']){delete _0x237dd5[_0x3771('0x46')]['id'];}return db[_0x3771('0x27')]['find']({'where':{'id':_0x237dd5[_0x3771('0x42')]['id']}})[_0x3771('0x1e')](handleEntityNotFound(_0x231837,null))['then'](saveUpdates(_0x237dd5[_0x3771('0x46')],null))[_0x3771('0x1e')](respondWithResult(_0x231837,null))[_0x3771('0x40')](handleError(_0x231837,null));};exports['destroy']=function(_0x4aada8,_0x5731ec){return db[_0x3771('0x27')][_0x3771('0x44')]({'where':{'id':_0x4aada8[_0x3771('0x42')]['id']}})[_0x3771('0x1e')](handleEntityNotFound(_0x5731ec,null))[_0x3771('0x1e')](removeEntity(_0x5731ec,null))[_0x3771('0x40')](handleError(_0x5731ec,null));};