d0178ca3dc99e1bbc4bbf67c12e3b0523e464ff3
[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 _0x4787=['sort','where','pick','merge','VIRTUAL','options','Variable','include','findAll','rows','catch','show','params','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','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','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','Variables','UserProfileResource','error','stack','name','send','index','map','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order'];(function(_0x3adaf2,_0x306b7e){var _0x46960c=function(_0x273ca4){while(--_0x273ca4){_0x3adaf2['push'](_0x3adaf2['shift']());}};_0x46960c(++_0x306b7e);}(_0x4787,0xc7));var _0x7478=function(_0x409353,_0xe9f04d){_0x409353=_0x409353-0x0;var _0x4f4b59=_0x4787[_0x409353];return _0x4f4b59;};'use strict';var emlformat=require(_0x7478('0x0'));var rimraf=require(_0x7478('0x1'));var zipdir=require(_0x7478('0x2'));var jsonpatch=require(_0x7478('0x3'));var rp=require(_0x7478('0x4'));var moment=require(_0x7478('0x5'));var BPromise=require(_0x7478('0x6'));var Mustache=require(_0x7478('0x7'));var util=require(_0x7478('0x8'));var path=require(_0x7478('0x9'));var sox=require(_0x7478('0xa'));var csv=require(_0x7478('0xb'));var ejs=require(_0x7478('0xc'));var fs=require('fs');var fs_extra=require(_0x7478('0xd'));var _=require(_0x7478('0xe'));var squel=require(_0x7478('0xf'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x7478('0x10'));var toCsv=require(_0x7478('0xb'));var querystring=require(_0x7478('0x11'));var Papa=require(_0x7478('0x12'));var Redis=require(_0x7478('0x13'));var authService=require(_0x7478('0x14'));var qs=require(_0x7478('0x15'));var as=require(_0x7478('0x16'));var hardwareService=require(_0x7478('0x17'));var logger=require('../../config/logger')(_0x7478('0x18'));var utils=require(_0x7478('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x7478('0x1a'));var db=require(_0x7478('0x1b'))['db'];function respondWithStatusCode(_0x27ccf3,_0x29bab0){_0x29bab0=_0x29bab0||0xcc;return function(_0x49af6d){if(_0x49af6d){return _0x27ccf3[_0x7478('0x1c')](_0x29bab0);}return _0x27ccf3[_0x7478('0x1d')](_0x29bab0)['end']();};}function respondWithResult(_0x318a2b,_0x101224){_0x101224=_0x101224||0xc8;return function(_0x2570bd){if(_0x2570bd){return _0x318a2b[_0x7478('0x1d')](_0x101224)[_0x7478('0x1e')](_0x2570bd);}};}function respondWithFilteredResult(_0x26f7f7,_0x13c096){return function(_0x442be8){if(_0x442be8){var _0x150b07=_0x442be8[_0x7478('0x1f')],_0x2557bc=_0x13c096[_0x7478('0x20')],_0x144284=_0x13c096['offset']+_0x13c096[_0x7478('0x21')],_0x560a4b;if(_0x144284>=_0x150b07){_0x144284=_0x150b07;_0x560a4b=0xc8;}else{_0x560a4b=0xce;}_0x26f7f7['status'](_0x560a4b);return _0x26f7f7[_0x7478('0x22')](_0x7478('0x23'),_0x2557bc+'-'+_0x144284+'/'+_0x150b07)[_0x7478('0x1e')](_0x442be8);}return null;};}function patchUpdates(_0x190610){return function(_0x273c20){try{jsonpatch[_0x7478('0x24')](_0x273c20,_0x190610,!![]);}catch(_0x20565f){return BPromise[_0x7478('0x25')](_0x20565f);}return _0x273c20[_0x7478('0x26')]();};}function saveUpdates(_0x15a7d8,_0x2b156a){return function(_0x553af0){if(_0x553af0){return _0x553af0[_0x7478('0x27')](_0x15a7d8)[_0x7478('0x28')](function(_0x4a1f3d){return _0x4a1f3d;});}return null;};}function removeEntity(_0x5a12c7,_0x5d307d){return function(_0x33e073){if(_0x33e073){return _0x33e073[_0x7478('0x29')]()[_0x7478('0x28')](function(){var _0x18b277=_0x33e073[_0x7478('0x2a')]({'plain':!![]});var _0x25cd18=_0x7478('0x2b');return db[_0x7478('0x2c')][_0x7478('0x29')]({'where':{'type':_0x25cd18,'resourceId':_0x18b277['id']}})['then'](function(){return _0x33e073;});})['then'](function(){_0x5a12c7[_0x7478('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x571c30,_0x5dfddb){return function(_0x542112){if(!_0x542112){_0x571c30['sendStatus'](0x194);}return _0x542112;};}function handleError(_0xd44481,_0x4c7a12){_0x4c7a12=_0x4c7a12||0x1f4;return function(_0x15786e){logger[_0x7478('0x2d')](_0x15786e[_0x7478('0x2e')]);if(_0x15786e[_0x7478('0x2f')]){delete _0x15786e['name'];}_0xd44481[_0x7478('0x1d')](_0x4c7a12)[_0x7478('0x30')](_0x15786e);};}exports[_0x7478('0x31')]=function(_0x144e3f,_0x535247){var _0x10a09b={},_0x41ab20={},_0x2c8a28={'count':0x0,'rows':[]};var _0x5d5b4e=_[_0x7478('0x32')](db['Variable']['rawAttributes'],function(_0x556931){return{'name':_0x556931[_0x7478('0x33')],'type':_0x556931[_0x7478('0x34')][_0x7478('0x35')]};});_0x41ab20[_0x7478('0x36')]=_['map'](_0x5d5b4e,_0x7478('0x2f'));_0x41ab20[_0x7478('0x37')]=_[_0x7478('0x38')](_0x144e3f['query']);_0x41ab20[_0x7478('0x39')]=_[_0x7478('0x3a')](_0x41ab20[_0x7478('0x36')],_0x41ab20[_0x7478('0x37')]);_0x10a09b['attributes']=_['intersection'](_0x41ab20[_0x7478('0x36')],qs['fields'](_0x144e3f[_0x7478('0x37')][_0x7478('0x3b')]));_0x10a09b[_0x7478('0x3c')]=_0x10a09b[_0x7478('0x3c')][_0x7478('0x3d')]?_0x10a09b[_0x7478('0x3c')]:_0x41ab20[_0x7478('0x36')];if(!_0x144e3f['query'][_0x7478('0x3e')](_0x7478('0x3f'))){_0x10a09b[_0x7478('0x21')]=qs[_0x7478('0x21')](_0x144e3f[_0x7478('0x37')][_0x7478('0x21')]);_0x10a09b[_0x7478('0x20')]=qs['offset'](_0x144e3f['query']['offset']);}_0x10a09b[_0x7478('0x40')]=qs[_0x7478('0x41')](_0x144e3f['query'][_0x7478('0x41')]);_0x10a09b[_0x7478('0x42')]=qs[_0x7478('0x39')](_[_0x7478('0x43')](_0x144e3f[_0x7478('0x37')],_0x41ab20['filters']),_0x5d5b4e);if(_0x144e3f['query']['filter']){_0x10a09b['where']=_[_0x7478('0x44')](_0x10a09b['where'],{'$or':_[_0x7478('0x32')](_0x5d5b4e,function(_0x1df6e8){if(_0x1df6e8['type']!==_0x7478('0x45')){var _0x2b0893={};_0x2b0893[_0x1df6e8[_0x7478('0x2f')]]={'$like':'%'+_0x144e3f[_0x7478('0x37')]['filter']+'%'};return _0x2b0893;}})});}_0x10a09b=_[_0x7478('0x44')]({},_0x10a09b,_0x144e3f[_0x7478('0x46')]);var _0x502953={'where':_0x10a09b['where']};return db[_0x7478('0x47')][_0x7478('0x1f')](_0x502953)[_0x7478('0x28')](function(_0x10e050){_0x2c8a28[_0x7478('0x1f')]=_0x10e050;if(_0x144e3f[_0x7478('0x37')]['includeAll']){_0x10a09b[_0x7478('0x48')]=[{'all':!![]}];}return db[_0x7478('0x47')][_0x7478('0x49')](_0x10a09b);})[_0x7478('0x28')](function(_0x3b1cc4){_0x2c8a28[_0x7478('0x4a')]=_0x3b1cc4;return _0x2c8a28;})[_0x7478('0x28')](respondWithFilteredResult(_0x535247,_0x10a09b))[_0x7478('0x4b')](handleError(_0x535247,null));};exports[_0x7478('0x4c')]=function(_0xfefd34,_0xdd0deb){var _0x379404={'raw':!![],'where':{'id':_0xfefd34[_0x7478('0x4d')]['id']}},_0x2b43ae={};_0x2b43ae[_0x7478('0x36')]=_['keys'](db[_0x7478('0x47')][_0x7478('0x4e')]);_0x2b43ae[_0x7478('0x37')]=_[_0x7478('0x38')](_0xfefd34[_0x7478('0x37')]);_0x2b43ae['filters']=_['intersection'](_0x2b43ae[_0x7478('0x36')],_0x2b43ae[_0x7478('0x37')]);_0x379404['attributes']=_[_0x7478('0x3a')](_0x2b43ae[_0x7478('0x36')],qs[_0x7478('0x3b')](_0xfefd34[_0x7478('0x37')][_0x7478('0x3b')]));_0x379404[_0x7478('0x3c')]=_0x379404['attributes'][_0x7478('0x3d')]?_0x379404[_0x7478('0x3c')]:_0x2b43ae[_0x7478('0x36')];if(_0xfefd34[_0x7478('0x37')]['includeAll']){_0x379404[_0x7478('0x48')]=[{'all':!![]}];}_0x379404=_[_0x7478('0x44')]({},_0x379404,_0xfefd34[_0x7478('0x46')]);return db['Variable'][_0x7478('0x4f')](_0x379404)[_0x7478('0x28')](handleEntityNotFound(_0xdd0deb,null))['then'](respondWithResult(_0xdd0deb,null))[_0x7478('0x4b')](handleError(_0xdd0deb,null));};exports['create']=function(_0x3bca35,_0x2fed17){return db[_0x7478('0x47')][_0x7478('0x50')](_0x3bca35[_0x7478('0x51')],{})[_0x7478('0x28')](function(_0x369740){var _0x3b59a4=_0x3bca35[_0x7478('0x52')][_0x7478('0x2a')]({'plain':!![]});if(!_0x3b59a4)throw new Error(_0x7478('0x53'));if(_0x3b59a4[_0x7478('0x54')]===_0x7478('0x52')){var _0x259782=_0x369740['get']({'plain':!![]});var _0x419a8e='Variables';return db[_0x7478('0x55')][_0x7478('0x4f')]({'where':{'name':_0x419a8e,'userProfileId':_0x3b59a4['userProfileId']},'raw':!![]})[_0x7478('0x28')](function(_0x168992){if(_0x168992&&_0x168992[_0x7478('0x56')]===0x0){return db[_0x7478('0x2c')][_0x7478('0x50')]({'name':_0x259782[_0x7478('0x2f')],'resourceId':_0x259782['id'],'type':_0x168992[_0x7478('0x2f')],'sectionId':_0x168992['id']},{})['then'](function(){return _0x369740;});}else{return _0x369740;}})[_0x7478('0x4b')](function(_0x232f9f){logger[_0x7478('0x2d')](_0x7478('0x57'),_0x232f9f);throw _0x232f9f;});}return _0x369740;})[_0x7478('0x28')](respondWithResult(_0x2fed17,0xc9))[_0x7478('0x4b')](handleError(_0x2fed17,null));};exports[_0x7478('0x27')]=function(_0x3fcc88,_0x3e26bb){if(_0x3fcc88[_0x7478('0x51')]['id']){delete _0x3fcc88[_0x7478('0x51')]['id'];}return db[_0x7478('0x47')][_0x7478('0x4f')]({'where':{'id':_0x3fcc88['params']['id']}})[_0x7478('0x28')](handleEntityNotFound(_0x3e26bb,null))[_0x7478('0x28')](saveUpdates(_0x3fcc88['body'],null))['then'](respondWithResult(_0x3e26bb,null))[_0x7478('0x4b')](handleError(_0x3e26bb,null));};exports['destroy']=function(_0x2f6e49,_0x8128a5){return db[_0x7478('0x47')][_0x7478('0x4f')]({'where':{'id':_0x2f6e49[_0x7478('0x4d')]['id']}})[_0x7478('0x28')](handleEntityNotFound(_0x8128a5,null))[_0x7478('0x28')](removeEntity(_0x8128a5,null))[_0x7478('0x4b')](handleError(_0x8128a5,null));};