Built motion from commit da24aabd.|2.6.20
[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 _0x4c0a=['count','set','Content-Range','json','apply','reject','save','update','then','destroy','Variables','UserProfileResource','error','stack','name','index','map','type','key','model','query','intersection','attributes','fields','hasOwnProperty','sort','where','filters','filter','VIRTUAL','Variable','include','rows','catch','show','params','keys','length','includeAll','merge','find','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','offset','undefined','limit'];(function(_0xdd7a7b,_0x254b3a){var _0x40ca7d=function(_0x4c2744){while(--_0x4c2744){_0xdd7a7b['push'](_0xdd7a7b['shift']());}};_0x40ca7d(++_0x254b3a);}(_0x4c0a,0x181));var _0xa4c0=function(_0x1b4c9d,_0x1b9e7b){_0x1b4c9d=_0x1b4c9d-0x0;var _0x2f75ac=_0x4c0a[_0x1b4c9d];return _0x2f75ac;};'use strict';var emlformat=require(_0xa4c0('0x0'));var rimraf=require(_0xa4c0('0x1'));var zipdir=require(_0xa4c0('0x2'));var jsonpatch=require(_0xa4c0('0x3'));var rp=require(_0xa4c0('0x4'));var moment=require(_0xa4c0('0x5'));var BPromise=require(_0xa4c0('0x6'));var Mustache=require(_0xa4c0('0x7'));var util=require(_0xa4c0('0x8'));var path=require('path');var sox=require(_0xa4c0('0x9'));var csv=require(_0xa4c0('0xa'));var ejs=require(_0xa4c0('0xb'));var fs=require('fs');var fs_extra=require(_0xa4c0('0xc'));var _=require(_0xa4c0('0xd'));var squel=require(_0xa4c0('0xe'));var crypto=require(_0xa4c0('0xf'));var jsforce=require(_0xa4c0('0x10'));var deskjs=require(_0xa4c0('0x11'));var toCsv=require(_0xa4c0('0xa'));var querystring=require(_0xa4c0('0x12'));var Papa=require(_0xa4c0('0x13'));var Redis=require(_0xa4c0('0x14'));var authService=require(_0xa4c0('0x15'));var qs=require(_0xa4c0('0x16'));var as=require(_0xa4c0('0x17'));var hardwareService=require(_0xa4c0('0x18'));var logger=require(_0xa4c0('0x19'))(_0xa4c0('0x1a'));var utils=require(_0xa4c0('0x1b'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xa4c0('0x1c'))['db'];function respondWithStatusCode(_0x35263f,_0x40c819){_0x40c819=_0x40c819||0xcc;return function(_0x31c60a){if(_0x31c60a){return _0x35263f[_0xa4c0('0x1d')](_0x40c819);}return _0x35263f[_0xa4c0('0x1e')](_0x40c819)[_0xa4c0('0x1f')]();};}function respondWithResult(_0x4eef62,_0x251ccf){_0x251ccf=_0x251ccf||0xc8;return function(_0x918693){if(_0x918693){return _0x4eef62[_0xa4c0('0x1e')](_0x251ccf)['json'](_0x918693);}};}function respondWithFilteredResult(_0x440616,_0x3ba2c0){return function(_0x52e26b){if(_0x52e26b){var _0x19430f=typeof _0x3ba2c0[_0xa4c0('0x20')]===_0xa4c0('0x21')&&typeof _0x3ba2c0[_0xa4c0('0x22')]===_0xa4c0('0x21');var _0x277732=_0x52e26b[_0xa4c0('0x23')];var _0x34f8ef=_0x19430f?0x0:_0x3ba2c0['offset'];var _0x4dacc6=_0x19430f?_0x52e26b['count']:_0x3ba2c0[_0xa4c0('0x20')]+_0x3ba2c0[_0xa4c0('0x22')];var _0x4c57cb;if(_0x4dacc6>=_0x277732){_0x4dacc6=_0x277732;_0x4c57cb=0xc8;}else{_0x4c57cb=0xce;}_0x440616[_0xa4c0('0x1e')](_0x4c57cb);return _0x440616[_0xa4c0('0x24')](_0xa4c0('0x25'),_0x34f8ef+'-'+_0x4dacc6+'/'+_0x277732)[_0xa4c0('0x26')](_0x52e26b);}return null;};}function patchUpdates(_0x12b037){return function(_0x4dc1f7){try{jsonpatch[_0xa4c0('0x27')](_0x4dc1f7,_0x12b037,!![]);}catch(_0x33ba35){return BPromise[_0xa4c0('0x28')](_0x33ba35);}return _0x4dc1f7[_0xa4c0('0x29')]();};}function saveUpdates(_0x4f877b,_0xe59b24){return function(_0x4aed76){if(_0x4aed76){return _0x4aed76[_0xa4c0('0x2a')](_0x4f877b)[_0xa4c0('0x2b')](function(_0x514717){return _0x514717;});}return null;};}function removeEntity(_0x446a16,_0x29c8cf){return function(_0x1b672a){if(_0x1b672a){return _0x1b672a[_0xa4c0('0x2c')]()['then'](function(){var _0x1977b3=_0x1b672a['get']({'plain':!![]});var _0xe729e7=_0xa4c0('0x2d');return db[_0xa4c0('0x2e')][_0xa4c0('0x2c')]({'where':{'type':_0xe729e7,'resourceId':_0x1977b3['id']}})[_0xa4c0('0x2b')](function(){return _0x1b672a;});})['then'](function(){_0x446a16[_0xa4c0('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39ad2b,_0x61c726){return function(_0x2dd2ae){if(!_0x2dd2ae){_0x39ad2b[_0xa4c0('0x1d')](0x194);}return _0x2dd2ae;};}function handleError(_0x3d37d2,_0x245cf5){_0x245cf5=_0x245cf5||0x1f4;return function(_0x412ee3){logger[_0xa4c0('0x2f')](_0x412ee3[_0xa4c0('0x30')]);if(_0x412ee3['name']){delete _0x412ee3[_0xa4c0('0x31')];}_0x3d37d2[_0xa4c0('0x1e')](_0x245cf5)['send'](_0x412ee3);};}exports[_0xa4c0('0x32')]=function(_0x5904f2,_0x1f659a){var _0x5a2ebe={},_0x5b572e={},_0x5b68d5={'count':0x0,'rows':[]};var _0x541819=_[_0xa4c0('0x33')](db['Variable']['rawAttributes'],function(_0x25398b){return{'name':_0x25398b['fieldName'],'type':_0x25398b[_0xa4c0('0x34')][_0xa4c0('0x35')]};});_0x5b572e[_0xa4c0('0x36')]=_[_0xa4c0('0x33')](_0x541819,_0xa4c0('0x31'));_0x5b572e['query']=_['keys'](_0x5904f2[_0xa4c0('0x37')]);_0x5b572e['filters']=_[_0xa4c0('0x38')](_0x5b572e[_0xa4c0('0x36')],_0x5b572e['query']);_0x5a2ebe[_0xa4c0('0x39')]=_['intersection'](_0x5b572e[_0xa4c0('0x36')],qs['fields'](_0x5904f2['query'][_0xa4c0('0x3a')]));_0x5a2ebe[_0xa4c0('0x39')]=_0x5a2ebe[_0xa4c0('0x39')]['length']?_0x5a2ebe[_0xa4c0('0x39')]:_0x5b572e[_0xa4c0('0x36')];if(!_0x5904f2[_0xa4c0('0x37')][_0xa4c0('0x3b')]('nolimit')){_0x5a2ebe[_0xa4c0('0x22')]=qs['limit'](_0x5904f2[_0xa4c0('0x37')][_0xa4c0('0x22')]);_0x5a2ebe['offset']=qs[_0xa4c0('0x20')](_0x5904f2[_0xa4c0('0x37')]['offset']);}_0x5a2ebe['order']=qs[_0xa4c0('0x3c')](_0x5904f2[_0xa4c0('0x37')][_0xa4c0('0x3c')]);_0x5a2ebe[_0xa4c0('0x3d')]=qs[_0xa4c0('0x3e')](_['pick'](_0x5904f2['query'],_0x5b572e[_0xa4c0('0x3e')]),_0x541819);if(_0x5904f2[_0xa4c0('0x37')][_0xa4c0('0x3f')]){_0x5a2ebe['where']=_['merge'](_0x5a2ebe[_0xa4c0('0x3d')],{'$or':_[_0xa4c0('0x33')](_0x541819,function(_0x4dd8cf){if(_0x4dd8cf[_0xa4c0('0x34')]!==_0xa4c0('0x40')){var _0x2eeab9={};_0x2eeab9[_0x4dd8cf[_0xa4c0('0x31')]]={'$like':'%'+_0x5904f2['query'][_0xa4c0('0x3f')]+'%'};return _0x2eeab9;}})});}_0x5a2ebe=_['merge']({},_0x5a2ebe,_0x5904f2['options']);var _0x349c7a={'where':_0x5a2ebe[_0xa4c0('0x3d')]};return db[_0xa4c0('0x41')][_0xa4c0('0x23')](_0x349c7a)['then'](function(_0xeb4456){_0x5b68d5['count']=_0xeb4456;if(_0x5904f2['query']['includeAll']){_0x5a2ebe[_0xa4c0('0x42')]=[{'all':!![]}];}return db[_0xa4c0('0x41')]['findAll'](_0x5a2ebe);})[_0xa4c0('0x2b')](function(_0x50e0d8){_0x5b68d5[_0xa4c0('0x43')]=_0x50e0d8;return _0x5b68d5;})[_0xa4c0('0x2b')](respondWithFilteredResult(_0x1f659a,_0x5a2ebe))[_0xa4c0('0x44')](handleError(_0x1f659a,null));};exports[_0xa4c0('0x45')]=function(_0x240ca4,_0x3177f2){var _0x1506d0={'raw':!![],'where':{'id':_0x240ca4[_0xa4c0('0x46')]['id']}},_0x48ebab={};_0x48ebab[_0xa4c0('0x36')]=_[_0xa4c0('0x47')](db['Variable']['rawAttributes']);_0x48ebab['query']=_[_0xa4c0('0x47')](_0x240ca4[_0xa4c0('0x37')]);_0x48ebab[_0xa4c0('0x3e')]=_['intersection'](_0x48ebab[_0xa4c0('0x36')],_0x48ebab[_0xa4c0('0x37')]);_0x1506d0[_0xa4c0('0x39')]=_['intersection'](_0x48ebab[_0xa4c0('0x36')],qs[_0xa4c0('0x3a')](_0x240ca4[_0xa4c0('0x37')][_0xa4c0('0x3a')]));_0x1506d0[_0xa4c0('0x39')]=_0x1506d0[_0xa4c0('0x39')][_0xa4c0('0x48')]?_0x1506d0['attributes']:_0x48ebab[_0xa4c0('0x36')];if(_0x240ca4['query'][_0xa4c0('0x49')]){_0x1506d0[_0xa4c0('0x42')]=[{'all':!![]}];}_0x1506d0=_[_0xa4c0('0x4a')]({},_0x1506d0,_0x240ca4['options']);return db[_0xa4c0('0x41')][_0xa4c0('0x4b')](_0x1506d0)[_0xa4c0('0x2b')](handleEntityNotFound(_0x3177f2,null))[_0xa4c0('0x2b')](respondWithResult(_0x3177f2,null))['catch'](handleError(_0x3177f2,null));};exports['create']=function(_0x3f8ca6,_0x4b5b91){return db['Variable']['create'](_0x3f8ca6[_0xa4c0('0x4c')],{})[_0xa4c0('0x2b')](function(_0x500c6e){var _0x31ee1b=_0x3f8ca6[_0xa4c0('0x4d')]['get']({'plain':!![]});if(!_0x31ee1b)throw new Error(_0xa4c0('0x4e'));if(_0x31ee1b[_0xa4c0('0x4f')]===_0xa4c0('0x4d')){var _0xff5e84=_0x500c6e[_0xa4c0('0x50')]({'plain':!![]});var _0x900908=_0xa4c0('0x2d');return db[_0xa4c0('0x51')][_0xa4c0('0x4b')]({'where':{'name':_0x900908,'userProfileId':_0x31ee1b[_0xa4c0('0x52')]},'raw':!![]})[_0xa4c0('0x2b')](function(_0x1da664){if(_0x1da664&&_0x1da664['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0xff5e84[_0xa4c0('0x31')],'resourceId':_0xff5e84['id'],'type':_0x1da664[_0xa4c0('0x31')],'sectionId':_0x1da664['id']},{})[_0xa4c0('0x2b')](function(){return _0x500c6e;});}else{return _0x500c6e;}})[_0xa4c0('0x44')](function(_0x26f9db){logger['error'](_0xa4c0('0x53'),_0x26f9db);throw _0x26f9db;});}return _0x500c6e;})[_0xa4c0('0x2b')](respondWithResult(_0x4b5b91,0xc9))[_0xa4c0('0x44')](handleError(_0x4b5b91,null));};exports[_0xa4c0('0x2a')]=function(_0x50db44,_0x229a59){if(_0x50db44[_0xa4c0('0x4c')]['id']){delete _0x50db44[_0xa4c0('0x4c')]['id'];}return db['Variable'][_0xa4c0('0x4b')]({'where':{'id':_0x50db44['params']['id']}})[_0xa4c0('0x2b')](handleEntityNotFound(_0x229a59,null))[_0xa4c0('0x2b')](saveUpdates(_0x50db44[_0xa4c0('0x4c')],null))[_0xa4c0('0x2b')](respondWithResult(_0x229a59,null))[_0xa4c0('0x44')](handleError(_0x229a59,null));};exports['destroy']=function(_0x5a0441,_0x494a76){return db['Variable']['find']({'where':{'id':_0x5a0441[_0xa4c0('0x46')]['id']}})[_0xa4c0('0x2b')](handleEntityNotFound(_0x494a76,null))['then'](removeEntity(_0x494a76,null))[_0xa4c0('0x44')](handleError(_0x494a76,null));};