Built motion from commit 97153652.|2.6.26
[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 _0x71f7=['fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','options','Variable','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','save','update','then','get','Variables','UserProfileResource','destroy','error','stack','name','rawAttributes','type','key','map','query','intersection','model','attributes'];(function(_0x574de7,_0x24ce60){var _0x568f46=function(_0x516004){while(--_0x516004){_0x574de7['push'](_0x574de7['shift']());}};_0x568f46(++_0x24ce60);}(_0x71f7,0x6a));var _0x771f=function(_0x3be286,_0x42a0f6){_0x3be286=_0x3be286-0x0;var _0x529393=_0x71f7[_0x3be286];return _0x529393;};'use strict';var emlformat=require(_0x771f('0x0'));var rimraf=require(_0x771f('0x1'));var zipdir=require(_0x771f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x771f('0x3'));var BPromise=require(_0x771f('0x4'));var Mustache=require(_0x771f('0x5'));var util=require(_0x771f('0x6'));var path=require(_0x771f('0x7'));var sox=require('sox');var csv=require(_0x771f('0x8'));var ejs=require(_0x771f('0x9'));var fs=require('fs');var fs_extra=require(_0x771f('0xa'));var _=require(_0x771f('0xb'));var squel=require(_0x771f('0xc'));var crypto=require(_0x771f('0xd'));var jsforce=require(_0x771f('0xe'));var deskjs=require(_0x771f('0xf'));var toCsv=require(_0x771f('0x8'));var querystring=require(_0x771f('0x10'));var Papa=require('papaparse');var Redis=require(_0x771f('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x771f('0x12'));var hardwareService=require(_0x771f('0x13'));var logger=require('../../config/logger')(_0x771f('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x771f('0x15'))['db'];function respondWithStatusCode(_0x5964b7,_0x1073b8){_0x1073b8=_0x1073b8||0xcc;return function(_0x14ac7d){if(_0x14ac7d){return _0x5964b7[_0x771f('0x16')](_0x1073b8);}return _0x5964b7[_0x771f('0x17')](_0x1073b8)[_0x771f('0x18')]();};}function respondWithResult(_0x4bbcae,_0x295dad){_0x295dad=_0x295dad||0xc8;return function(_0x33b371){if(_0x33b371){return _0x4bbcae[_0x771f('0x17')](_0x295dad)[_0x771f('0x19')](_0x33b371);}};}function respondWithFilteredResult(_0x4ca19e,_0x1aa0bc){return function(_0x36ecc3){if(_0x36ecc3){var _0x4c92bd=typeof _0x1aa0bc[_0x771f('0x1a')]===_0x771f('0x1b')&&typeof _0x1aa0bc['limit']===_0x771f('0x1b');var _0x1457b5=_0x36ecc3[_0x771f('0x1c')];var _0x10f061=_0x4c92bd?0x0:_0x1aa0bc['offset'];var _0x3996cc=_0x4c92bd?_0x36ecc3[_0x771f('0x1c')]:_0x1aa0bc[_0x771f('0x1a')]+_0x1aa0bc[_0x771f('0x1d')];var _0x21aaf5;if(_0x3996cc>=_0x1457b5){_0x3996cc=_0x1457b5;_0x21aaf5=0xc8;}else{_0x21aaf5=0xce;}_0x4ca19e[_0x771f('0x17')](_0x21aaf5);return _0x4ca19e['set'](_0x771f('0x1e'),_0x10f061+'-'+_0x3996cc+'/'+_0x1457b5)[_0x771f('0x19')](_0x36ecc3);}return null;};}function patchUpdates(_0x1bf45f){return function(_0x15deee){try{jsonpatch[_0x771f('0x1f')](_0x15deee,_0x1bf45f,!![]);}catch(_0x52e7f0){return BPromise['reject'](_0x52e7f0);}return _0x15deee[_0x771f('0x20')]();};}function saveUpdates(_0x14c5ee,_0x3f9f42){return function(_0x4ade73){if(_0x4ade73){return _0x4ade73[_0x771f('0x21')](_0x14c5ee)[_0x771f('0x22')](function(_0x1f2b47){return _0x1f2b47;});}return null;};}function removeEntity(_0x4a2b53,_0x416bd1){return function(_0xe03af5){if(_0xe03af5){return _0xe03af5['destroy']()[_0x771f('0x22')](function(){var _0x48e936=_0xe03af5[_0x771f('0x23')]({'plain':!![]});var _0x381d38=_0x771f('0x24');return db[_0x771f('0x25')][_0x771f('0x26')]({'where':{'type':_0x381d38,'resourceId':_0x48e936['id']}})[_0x771f('0x22')](function(){return _0xe03af5;});})[_0x771f('0x22')](function(){_0x4a2b53[_0x771f('0x17')](0xcc)[_0x771f('0x18')]();});}};}function handleEntityNotFound(_0x2e8d46,_0x74d370){return function(_0x30c94b){if(!_0x30c94b){_0x2e8d46[_0x771f('0x16')](0x194);}return _0x30c94b;};}function handleError(_0x8ded7b,_0x270cab){_0x270cab=_0x270cab||0x1f4;return function(_0x1c96e1){logger[_0x771f('0x27')](_0x1c96e1[_0x771f('0x28')]);if(_0x1c96e1[_0x771f('0x29')]){delete _0x1c96e1[_0x771f('0x29')];}_0x8ded7b['status'](_0x270cab)['send'](_0x1c96e1);};}exports['index']=function(_0x413572,_0x249f0f){var _0x4650a7={},_0x341c5d={},_0x1ed525={'count':0x0,'rows':[]};var _0xb58a5b=_['map'](db['Variable'][_0x771f('0x2a')],function(_0x2402a5){return{'name':_0x2402a5['fieldName'],'type':_0x2402a5[_0x771f('0x2b')][_0x771f('0x2c')]};});_0x341c5d['model']=_[_0x771f('0x2d')](_0xb58a5b,_0x771f('0x29'));_0x341c5d['query']=_['keys'](_0x413572[_0x771f('0x2e')]);_0x341c5d['filters']=_[_0x771f('0x2f')](_0x341c5d[_0x771f('0x30')],_0x341c5d[_0x771f('0x2e')]);_0x4650a7[_0x771f('0x31')]=_['intersection'](_0x341c5d[_0x771f('0x30')],qs[_0x771f('0x32')](_0x413572['query']['fields']));_0x4650a7[_0x771f('0x31')]=_0x4650a7[_0x771f('0x31')][_0x771f('0x33')]?_0x4650a7[_0x771f('0x31')]:_0x341c5d[_0x771f('0x30')];if(!_0x413572[_0x771f('0x2e')][_0x771f('0x34')](_0x771f('0x35'))){_0x4650a7['limit']=qs['limit'](_0x413572[_0x771f('0x2e')]['limit']);_0x4650a7[_0x771f('0x1a')]=qs[_0x771f('0x1a')](_0x413572[_0x771f('0x2e')][_0x771f('0x1a')]);}_0x4650a7[_0x771f('0x36')]=qs[_0x771f('0x37')](_0x413572[_0x771f('0x2e')][_0x771f('0x37')]);_0x4650a7[_0x771f('0x38')]=qs[_0x771f('0x39')](_['pick'](_0x413572[_0x771f('0x2e')],_0x341c5d['filters']),_0xb58a5b);if(_0x413572[_0x771f('0x2e')][_0x771f('0x3a')]){_0x4650a7['where']=_[_0x771f('0x3b')](_0x4650a7[_0x771f('0x38')],{'$or':_[_0x771f('0x2d')](_0xb58a5b,function(_0x2bfb3d){if(_0x2bfb3d[_0x771f('0x2b')]!==_0x771f('0x3c')){var _0x3963c5={};_0x3963c5[_0x2bfb3d[_0x771f('0x29')]]={'$like':'%'+_0x413572[_0x771f('0x2e')][_0x771f('0x3a')]+'%'};return _0x3963c5;}})});}_0x4650a7=_[_0x771f('0x3b')]({},_0x4650a7,_0x413572[_0x771f('0x3d')]);var _0x3323fe={'where':_0x4650a7[_0x771f('0x38')]};return db[_0x771f('0x3e')][_0x771f('0x1c')](_0x3323fe)[_0x771f('0x22')](function(_0x58e141){_0x1ed525['count']=_0x58e141;if(_0x413572['query'][_0x771f('0x3f')]){_0x4650a7[_0x771f('0x40')]=[{'all':!![]}];}return db[_0x771f('0x3e')][_0x771f('0x41')](_0x4650a7);})['then'](function(_0x4cfa99){_0x1ed525[_0x771f('0x42')]=_0x4cfa99;return _0x1ed525;})[_0x771f('0x22')](respondWithFilteredResult(_0x249f0f,_0x4650a7))[_0x771f('0x43')](handleError(_0x249f0f,null));};exports[_0x771f('0x44')]=function(_0x40bac3,_0x18d9c0){var _0x469b23={'raw':!![],'where':{'id':_0x40bac3[_0x771f('0x45')]['id']}},_0x2d5a66={};_0x2d5a66[_0x771f('0x30')]=_['keys'](db[_0x771f('0x3e')]['rawAttributes']);_0x2d5a66[_0x771f('0x2e')]=_['keys'](_0x40bac3[_0x771f('0x2e')]);_0x2d5a66[_0x771f('0x39')]=_['intersection'](_0x2d5a66['model'],_0x2d5a66[_0x771f('0x2e')]);_0x469b23[_0x771f('0x31')]=_[_0x771f('0x2f')](_0x2d5a66[_0x771f('0x30')],qs[_0x771f('0x32')](_0x40bac3['query'][_0x771f('0x32')]));_0x469b23['attributes']=_0x469b23['attributes']['length']?_0x469b23[_0x771f('0x31')]:_0x2d5a66[_0x771f('0x30')];if(_0x40bac3[_0x771f('0x2e')]['includeAll']){_0x469b23[_0x771f('0x40')]=[{'all':!![]}];}_0x469b23=_[_0x771f('0x3b')]({},_0x469b23,_0x40bac3['options']);return db[_0x771f('0x3e')][_0x771f('0x46')](_0x469b23)[_0x771f('0x22')](handleEntityNotFound(_0x18d9c0,null))[_0x771f('0x22')](respondWithResult(_0x18d9c0,null))[_0x771f('0x43')](handleError(_0x18d9c0,null));};exports['create']=function(_0x47f607,_0xdae94e){return db['Variable'][_0x771f('0x47')](_0x47f607[_0x771f('0x48')],{})[_0x771f('0x22')](function(_0x476847){var _0x12dd4f=_0x47f607[_0x771f('0x49')][_0x771f('0x23')]({'plain':!![]});if(!_0x12dd4f)throw new Error(_0x771f('0x4a'));if(_0x12dd4f[_0x771f('0x4b')]===_0x771f('0x49')){var _0x4bdb75=_0x476847[_0x771f('0x23')]({'plain':!![]});var _0x38cbe2=_0x771f('0x24');return db[_0x771f('0x4c')][_0x771f('0x46')]({'where':{'name':_0x38cbe2,'userProfileId':_0x12dd4f['userProfileId']},'raw':!![]})[_0x771f('0x22')](function(_0x51ffb0){if(_0x51ffb0&&_0x51ffb0[_0x771f('0x4d')]===0x0){return db['UserProfileResource'][_0x771f('0x47')]({'name':_0x4bdb75[_0x771f('0x29')],'resourceId':_0x4bdb75['id'],'type':_0x51ffb0[_0x771f('0x29')],'sectionId':_0x51ffb0['id']},{})[_0x771f('0x22')](function(){return _0x476847;});}else{return _0x476847;}})['catch'](function(_0x3f8c9e){logger[_0x771f('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3f8c9e);throw _0x3f8c9e;});}return _0x476847;})['then'](respondWithResult(_0xdae94e,0xc9))[_0x771f('0x43')](handleError(_0xdae94e,null));};exports[_0x771f('0x21')]=function(_0x556337,_0x19d52d){if(_0x556337[_0x771f('0x48')]['id']){delete _0x556337[_0x771f('0x48')]['id'];}return db[_0x771f('0x3e')][_0x771f('0x46')]({'where':{'id':_0x556337[_0x771f('0x45')]['id']}})[_0x771f('0x22')](handleEntityNotFound(_0x19d52d,null))['then'](saveUpdates(_0x556337[_0x771f('0x48')],null))[_0x771f('0x22')](respondWithResult(_0x19d52d,null))[_0x771f('0x43')](handleError(_0x19d52d,null));};exports['destroy']=function(_0x3e84b6,_0x1527a9){return db[_0x771f('0x3e')][_0x771f('0x46')]({'where':{'id':_0x3e84b6[_0x771f('0x45')]['id']}})['then'](handleEntityNotFound(_0x1527a9,null))[_0x771f('0x22')](removeEntity(_0x1527a9,null))[_0x771f('0x43')](handleError(_0x1527a9,null));};