Built motion from commit 3a7e82ea.|2.6.29
[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 _0x3459=['user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','offset','Content-Range','apply','save','then','get','UserProfileResource','error','stack','name','map','Variable','rawAttributes','fieldName','key','model','keys','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','options','includeAll','include','findAll','catch','show','params','length','merge','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0x1147ab,_0x10e72b){var _0x55cb5a=function(_0x364bd6){while(--_0x364bd6){_0x1147ab['push'](_0x1147ab['shift']());}};_0x55cb5a(++_0x10e72b);}(_0x3459,0xef));var _0x9345=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x3459[_0x397e5f];return _0x5302b8;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9345('0x0'));var zipdir=require(_0x9345('0x1'));var jsonpatch=require(_0x9345('0x2'));var rp=require(_0x9345('0x3'));var moment=require(_0x9345('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9345('0x5'));var util=require(_0x9345('0x6'));var path=require(_0x9345('0x7'));var sox=require('sox');var csv=require(_0x9345('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9345('0x9'));var squel=require(_0x9345('0xa'));var crypto=require(_0x9345('0xb'));var jsforce=require(_0x9345('0xc'));var deskjs=require(_0x9345('0xd'));var toCsv=require(_0x9345('0x8'));var querystring=require(_0x9345('0xe'));var Papa=require('papaparse');var Redis=require(_0x9345('0xf'));var authService=require(_0x9345('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9345('0x11'));var logger=require(_0x9345('0x12'))(_0x9345('0x13'));var utils=require(_0x9345('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x9345('0x15'));var db=require(_0x9345('0x16'))['db'];function respondWithStatusCode(_0x3684a4,_0x631130){_0x631130=_0x631130||0xcc;return function(_0x5eb29a){if(_0x5eb29a){return _0x3684a4[_0x9345('0x17')](_0x631130);}return _0x3684a4['status'](_0x631130)[_0x9345('0x18')]();};}function respondWithResult(_0xe5d788,_0x16c0e8){_0x16c0e8=_0x16c0e8||0xc8;return function(_0x142608){if(_0x142608){return _0xe5d788[_0x9345('0x19')](_0x16c0e8)[_0x9345('0x1a')](_0x142608);}};}function respondWithFilteredResult(_0x1188e1,_0xd50dc6){return function(_0x464fa2){if(_0x464fa2){var _0x5177b3=typeof _0xd50dc6['offset']===_0x9345('0x1b')&&typeof _0xd50dc6[_0x9345('0x1c')]===_0x9345('0x1b');var _0x2ed126=_0x464fa2[_0x9345('0x1d')];var _0x122e03=_0x5177b3?0x0:_0xd50dc6[_0x9345('0x1e')];var _0x15007a=_0x5177b3?_0x464fa2[_0x9345('0x1d')]:_0xd50dc6['offset']+_0xd50dc6[_0x9345('0x1c')];var _0x420f1a;if(_0x15007a>=_0x2ed126){_0x15007a=_0x2ed126;_0x420f1a=0xc8;}else{_0x420f1a=0xce;}_0x1188e1['status'](_0x420f1a);return _0x1188e1['set'](_0x9345('0x1f'),_0x122e03+'-'+_0x15007a+'/'+_0x2ed126)['json'](_0x464fa2);}return null;};}function patchUpdates(_0x3d77c4){return function(_0xa9c130){try{jsonpatch[_0x9345('0x20')](_0xa9c130,_0x3d77c4,!![]);}catch(_0x4f28de){return BPromise['reject'](_0x4f28de);}return _0xa9c130[_0x9345('0x21')]();};}function saveUpdates(_0x1390ed,_0x59876a){return function(_0x36cab9){if(_0x36cab9){return _0x36cab9['update'](_0x1390ed)[_0x9345('0x22')](function(_0x22ea24){return _0x22ea24;});}return null;};}function removeEntity(_0xeb3578,_0xb044b){return function(_0x5c73bd){if(_0x5c73bd){return _0x5c73bd['destroy']()[_0x9345('0x22')](function(){var _0x5199b8=_0x5c73bd[_0x9345('0x23')]({'plain':!![]});var _0x3fee8d='Variables';return db[_0x9345('0x24')]['destroy']({'where':{'type':_0x3fee8d,'resourceId':_0x5199b8['id']}})[_0x9345('0x22')](function(){return _0x5c73bd;});})[_0x9345('0x22')](function(){_0xeb3578[_0x9345('0x19')](0xcc)[_0x9345('0x18')]();});}};}function handleEntityNotFound(_0x1d1269,_0x377317){return function(_0x1d2402){if(!_0x1d2402){_0x1d1269['sendStatus'](0x194);}return _0x1d2402;};}function handleError(_0x4aef78,_0x3b6b6d){_0x3b6b6d=_0x3b6b6d||0x1f4;return function(_0x18afa7){logger[_0x9345('0x25')](_0x18afa7[_0x9345('0x26')]);if(_0x18afa7[_0x9345('0x27')]){delete _0x18afa7[_0x9345('0x27')];}_0x4aef78[_0x9345('0x19')](_0x3b6b6d)['send'](_0x18afa7);};}exports['index']=function(_0x8e460,_0x4dd382){var _0x2c9704={},_0x1cca32={},_0x5b6ea1={'count':0x0,'rows':[]};var _0x2493cb=_[_0x9345('0x28')](db[_0x9345('0x29')][_0x9345('0x2a')],function(_0x4c89a5){return{'name':_0x4c89a5[_0x9345('0x2b')],'type':_0x4c89a5['type'][_0x9345('0x2c')]};});_0x1cca32[_0x9345('0x2d')]=_['map'](_0x2493cb,_0x9345('0x27'));_0x1cca32['query']=_[_0x9345('0x2e')](_0x8e460[_0x9345('0x2f')]);_0x1cca32['filters']=_[_0x9345('0x30')](_0x1cca32['model'],_0x1cca32['query']);_0x2c9704[_0x9345('0x31')]=_[_0x9345('0x30')](_0x1cca32['model'],qs[_0x9345('0x32')](_0x8e460[_0x9345('0x2f')]['fields']));_0x2c9704[_0x9345('0x31')]=_0x2c9704[_0x9345('0x31')]['length']?_0x2c9704[_0x9345('0x31')]:_0x1cca32[_0x9345('0x2d')];if(!_0x8e460[_0x9345('0x2f')][_0x9345('0x33')](_0x9345('0x34'))){_0x2c9704[_0x9345('0x1c')]=qs[_0x9345('0x1c')](_0x8e460[_0x9345('0x2f')]['limit']);_0x2c9704['offset']=qs[_0x9345('0x1e')](_0x8e460['query'][_0x9345('0x1e')]);}_0x2c9704[_0x9345('0x35')]=qs[_0x9345('0x36')](_0x8e460[_0x9345('0x2f')][_0x9345('0x36')]);_0x2c9704[_0x9345('0x37')]=qs[_0x9345('0x38')](_[_0x9345('0x39')](_0x8e460[_0x9345('0x2f')],_0x1cca32[_0x9345('0x38')]),_0x2493cb);if(_0x8e460[_0x9345('0x2f')][_0x9345('0x3a')]){_0x2c9704[_0x9345('0x37')]=_['merge'](_0x2c9704[_0x9345('0x37')],{'$or':_[_0x9345('0x28')](_0x2493cb,function(_0x489a7e){if(_0x489a7e['type']!==_0x9345('0x3b')){var _0x2fd66b={};_0x2fd66b[_0x489a7e['name']]={'$like':'%'+_0x8e460[_0x9345('0x2f')][_0x9345('0x3a')]+'%'};return _0x2fd66b;}})});}_0x2c9704=_['merge']({},_0x2c9704,_0x8e460[_0x9345('0x3c')]);var _0x2e5645={'where':_0x2c9704['where']};return db[_0x9345('0x29')][_0x9345('0x1d')](_0x2e5645)['then'](function(_0x3f5fe2){_0x5b6ea1[_0x9345('0x1d')]=_0x3f5fe2;if(_0x8e460['query'][_0x9345('0x3d')]){_0x2c9704[_0x9345('0x3e')]=[{'all':!![]}];}return db[_0x9345('0x29')][_0x9345('0x3f')](_0x2c9704);})['then'](function(_0x901a92){_0x5b6ea1['rows']=_0x901a92;return _0x5b6ea1;})[_0x9345('0x22')](respondWithFilteredResult(_0x4dd382,_0x2c9704))[_0x9345('0x40')](handleError(_0x4dd382,null));};exports[_0x9345('0x41')]=function(_0x513b78,_0x3cd51c){var _0xce491d={'raw':!![],'where':{'id':_0x513b78[_0x9345('0x42')]['id']}},_0x58c52a={};_0x58c52a[_0x9345('0x2d')]=_[_0x9345('0x2e')](db[_0x9345('0x29')]['rawAttributes']);_0x58c52a['query']=_[_0x9345('0x2e')](_0x513b78[_0x9345('0x2f')]);_0x58c52a[_0x9345('0x38')]=_['intersection'](_0x58c52a[_0x9345('0x2d')],_0x58c52a['query']);_0xce491d['attributes']=_[_0x9345('0x30')](_0x58c52a[_0x9345('0x2d')],qs[_0x9345('0x32')](_0x513b78[_0x9345('0x2f')]['fields']));_0xce491d['attributes']=_0xce491d[_0x9345('0x31')][_0x9345('0x43')]?_0xce491d[_0x9345('0x31')]:_0x58c52a[_0x9345('0x2d')];if(_0x513b78[_0x9345('0x2f')][_0x9345('0x3d')]){_0xce491d['include']=[{'all':!![]}];}_0xce491d=_[_0x9345('0x44')]({},_0xce491d,_0x513b78[_0x9345('0x3c')]);return db[_0x9345('0x29')][_0x9345('0x45')](_0xce491d)[_0x9345('0x22')](handleEntityNotFound(_0x3cd51c,null))[_0x9345('0x22')](respondWithResult(_0x3cd51c,null))['catch'](handleError(_0x3cd51c,null));};exports['create']=function(_0x56b635,_0x5e59ca){return db['Variable'][_0x9345('0x46')](_0x56b635[_0x9345('0x47')],{})[_0x9345('0x22')](function(_0x162a9f){var _0x2b522e=_0x56b635['user']['get']({'plain':!![]});if(!_0x2b522e)throw new Error(_0x9345('0x48'));if(_0x2b522e['role']===_0x9345('0x49')){var _0x30640b=_0x162a9f[_0x9345('0x23')]({'plain':!![]});var _0x5d081b='Variables';return db[_0x9345('0x4a')][_0x9345('0x45')]({'where':{'name':_0x5d081b,'userProfileId':_0x2b522e[_0x9345('0x4b')]},'raw':!![]})[_0x9345('0x22')](function(_0x3a922d){if(_0x3a922d&&_0x3a922d['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x30640b[_0x9345('0x27')],'resourceId':_0x30640b['id'],'type':_0x3a922d[_0x9345('0x27')],'sectionId':_0x3a922d['id']},{})['then'](function(){return _0x162a9f;});}else{return _0x162a9f;}})[_0x9345('0x40')](function(_0x4b9149){logger[_0x9345('0x25')](_0x9345('0x4c'),_0x4b9149);throw _0x4b9149;});}return _0x162a9f;})['then'](respondWithResult(_0x5e59ca,0xc9))[_0x9345('0x40')](handleError(_0x5e59ca,null));};exports[_0x9345('0x4d')]=function(_0x306419,_0x5cad8b){if(_0x306419[_0x9345('0x47')]['id']){delete _0x306419[_0x9345('0x47')]['id'];}return db['Variable'][_0x9345('0x45')]({'where':{'id':_0x306419[_0x9345('0x42')]['id']}})[_0x9345('0x22')](handleEntityNotFound(_0x5cad8b,null))[_0x9345('0x22')](saveUpdates(_0x306419[_0x9345('0x47')],null))[_0x9345('0x22')](respondWithResult(_0x5cad8b,null))['catch'](handleError(_0x5cad8b,null));};exports['destroy']=function(_0x419f2e,_0x474ce8){return db[_0x9345('0x29')][_0x9345('0x45')]({'where':{'id':_0x419f2e[_0x9345('0x42')]['id']}})['then'](handleEntityNotFound(_0x474ce8,null))[_0x9345('0x22')](removeEntity(_0x474ce8,null))[_0x9345('0x40')](handleError(_0x474ce8,null));};