Built motion from commit (unavailable).|2.5.5
[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 _0xad4d=['map','Variable','rawAttributes','fieldName','type','key','filters','intersection','query','attributes','model','length','hasOwnProperty','nolimit','order','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','show','params','keys','fields','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Variables','userProfileId','catch','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','limit','status','apply','reject','save','update','then','destroy','UserProfileResource','error','stack','name','send','index'];(function(_0x54757b,_0x1395b5){var _0x13597e=function(_0x4195e0){while(--_0x4195e0){_0x54757b['push'](_0x54757b['shift']());}};_0x13597e(++_0x1395b5);}(_0xad4d,0x17b));var _0xdad4=function(_0x4b7895,_0x3c4f5d){_0x4b7895=_0x4b7895-0x0;var _0x264180=_0xad4d[_0x4b7895];return _0x264180;};'use strict';var pdf=require(_0xdad4('0x0'));var emlformat=require(_0xdad4('0x1'));var rimraf=require(_0xdad4('0x2'));var zipdir=require(_0xdad4('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xdad4('0x4'));var moment=require(_0xdad4('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xdad4('0x6'));var util=require(_0xdad4('0x7'));var path=require(_0xdad4('0x8'));var sox=require(_0xdad4('0x9'));var csv=require(_0xdad4('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xdad4('0xb'));var squel=require(_0xdad4('0xc'));var crypto=require(_0xdad4('0xd'));var jsforce=require(_0xdad4('0xe'));var deskjs=require(_0xdad4('0xf'));var toCsv=require(_0xdad4('0xa'));var querystring=require(_0xdad4('0x10'));var Papa=require('papaparse');var Redis=require(_0xdad4('0x11'));var authService=require(_0xdad4('0x12'));var qs=require(_0xdad4('0x13'));var as=require(_0xdad4('0x14'));var hardwareService=require(_0xdad4('0x15'));var logger=require(_0xdad4('0x16'))(_0xdad4('0x17'));var utils=require(_0xdad4('0x18'));var config=require(_0xdad4('0x19'));var licenseUtil=require(_0xdad4('0x1a'));var db=require(_0xdad4('0x1b'))['db'];function respondWithStatusCode(_0x2cf016,_0x5dcce8){_0x5dcce8=_0x5dcce8||0xcc;return function(_0x1dcdfe){if(_0x1dcdfe){return _0x2cf016[_0xdad4('0x1c')](_0x5dcce8);}return _0x2cf016['status'](_0x5dcce8)[_0xdad4('0x1d')]();};}function respondWithResult(_0x58bb18,_0x1fcec9){_0x1fcec9=_0x1fcec9||0xc8;return function(_0x1c82e1){if(_0x1c82e1){return _0x58bb18['status'](_0x1fcec9)[_0xdad4('0x1e')](_0x1c82e1);}};}function respondWithFilteredResult(_0xca6501,_0x1c51e4){return function(_0x108d16){if(_0x108d16){var _0x4ae745=_0x108d16['count'],_0x1d3425=_0x1c51e4[_0xdad4('0x1f')],_0x53b093=_0x1c51e4[_0xdad4('0x1f')]+_0x1c51e4[_0xdad4('0x20')],_0x4e4a49;if(_0x53b093>=_0x4ae745){_0x53b093=_0x4ae745;_0x4e4a49=0xc8;}else{_0x4e4a49=0xce;}_0xca6501[_0xdad4('0x21')](_0x4e4a49);return _0xca6501['set']('Content-Range',_0x1d3425+'-'+_0x53b093+'/'+_0x4ae745)['json'](_0x108d16);}return null;};}function patchUpdates(_0x3d059c){return function(_0x40f545){try{jsonpatch[_0xdad4('0x22')](_0x40f545,_0x3d059c,!![]);}catch(_0xe924dd){return BPromise[_0xdad4('0x23')](_0xe924dd);}return _0x40f545[_0xdad4('0x24')]();};}function saveUpdates(_0x1a4d6a,_0x3653c6){return function(_0xafb0b9){if(_0xafb0b9){return _0xafb0b9[_0xdad4('0x25')](_0x1a4d6a)[_0xdad4('0x26')](function(_0x150147){return _0x150147;});}return null;};}function removeEntity(_0x58adc3,_0xf0e04d){return function(_0x571b79){if(_0x571b79){return _0x571b79[_0xdad4('0x27')]()['then'](function(){var _0x12486d=_0x571b79['get']({'plain':!![]});var _0xcd1ef0='Variables';return db[_0xdad4('0x28')][_0xdad4('0x27')]({'where':{'type':_0xcd1ef0,'resourceId':_0x12486d['id']}})[_0xdad4('0x26')](function(){return _0x571b79;});})[_0xdad4('0x26')](function(){_0x58adc3[_0xdad4('0x21')](0xcc)[_0xdad4('0x1d')]();});}};}function handleEntityNotFound(_0x3beba0,_0x5c6205){return function(_0x27e8b8){if(!_0x27e8b8){_0x3beba0[_0xdad4('0x1c')](0x194);}return _0x27e8b8;};}function handleError(_0x129f2a,_0x4d937d){_0x4d937d=_0x4d937d||0x1f4;return function(_0xf38401){logger[_0xdad4('0x29')](_0xf38401[_0xdad4('0x2a')]);if(_0xf38401[_0xdad4('0x2b')]){delete _0xf38401[_0xdad4('0x2b')];}_0x129f2a[_0xdad4('0x21')](_0x4d937d)[_0xdad4('0x2c')](_0xf38401);};}exports[_0xdad4('0x2d')]=function(_0x50b224,_0x5b0acb){var _0x2b0e63={},_0x43317f={},_0x238cb2={'count':0x0,'rows':[]};var _0x481d31=_[_0xdad4('0x2e')](db[_0xdad4('0x2f')][_0xdad4('0x30')],function(_0x1b2f5c){return{'name':_0x1b2f5c[_0xdad4('0x31')],'type':_0x1b2f5c[_0xdad4('0x32')][_0xdad4('0x33')]};});_0x43317f['model']=_[_0xdad4('0x2e')](_0x481d31,'name');_0x43317f['query']=_['keys'](_0x50b224['query']);_0x43317f[_0xdad4('0x34')]=_[_0xdad4('0x35')](_0x43317f['model'],_0x43317f[_0xdad4('0x36')]);_0x2b0e63[_0xdad4('0x37')]=_[_0xdad4('0x35')](_0x43317f[_0xdad4('0x38')],qs['fields'](_0x50b224['query']['fields']));_0x2b0e63[_0xdad4('0x37')]=_0x2b0e63['attributes'][_0xdad4('0x39')]?_0x2b0e63['attributes']:_0x43317f[_0xdad4('0x38')];if(!_0x50b224[_0xdad4('0x36')][_0xdad4('0x3a')](_0xdad4('0x3b'))){_0x2b0e63[_0xdad4('0x20')]=qs[_0xdad4('0x20')](_0x50b224['query'][_0xdad4('0x20')]);_0x2b0e63[_0xdad4('0x1f')]=qs[_0xdad4('0x1f')](_0x50b224[_0xdad4('0x36')][_0xdad4('0x1f')]);}_0x2b0e63[_0xdad4('0x3c')]=qs['sort'](_0x50b224['query']['sort']);_0x2b0e63[_0xdad4('0x3d')]=qs[_0xdad4('0x34')](_[_0xdad4('0x3e')](_0x50b224[_0xdad4('0x36')],_0x43317f['filters']),_0x481d31);if(_0x50b224['query'][_0xdad4('0x3f')]){_0x2b0e63[_0xdad4('0x3d')]=_[_0xdad4('0x40')](_0x2b0e63['where'],{'$or':_[_0xdad4('0x2e')](_0x481d31,function(_0x50937b){if(_0x50937b[_0xdad4('0x32')]!==_0xdad4('0x41')){var _0x23be74={};_0x23be74[_0x50937b[_0xdad4('0x2b')]]={'$like':'%'+_0x50b224[_0xdad4('0x36')][_0xdad4('0x3f')]+'%'};return _0x23be74;}})});}_0x2b0e63=_[_0xdad4('0x40')]({},_0x2b0e63,_0x50b224[_0xdad4('0x42')]);var _0x51a9de={'where':_0x2b0e63[_0xdad4('0x3d')]};return db[_0xdad4('0x2f')][_0xdad4('0x43')](_0x51a9de)[_0xdad4('0x26')](function(_0x51a517){_0x238cb2[_0xdad4('0x43')]=_0x51a517;if(_0x50b224[_0xdad4('0x36')][_0xdad4('0x44')]){_0x2b0e63[_0xdad4('0x45')]=[{'all':!![]}];}return db[_0xdad4('0x2f')][_0xdad4('0x46')](_0x2b0e63);})[_0xdad4('0x26')](function(_0x26ef71){_0x238cb2[_0xdad4('0x47')]=_0x26ef71;return _0x238cb2;})[_0xdad4('0x26')](respondWithFilteredResult(_0x5b0acb,_0x2b0e63))['catch'](handleError(_0x5b0acb,null));};exports[_0xdad4('0x48')]=function(_0x331569,_0x47c898){var _0x4dcc62={'raw':!![],'where':{'id':_0x331569[_0xdad4('0x49')]['id']}},_0x28d418={};_0x28d418[_0xdad4('0x38')]=_[_0xdad4('0x4a')](db['Variable']['rawAttributes']);_0x28d418[_0xdad4('0x36')]=_[_0xdad4('0x4a')](_0x331569[_0xdad4('0x36')]);_0x28d418[_0xdad4('0x34')]=_[_0xdad4('0x35')](_0x28d418['model'],_0x28d418[_0xdad4('0x36')]);_0x4dcc62[_0xdad4('0x37')]=_[_0xdad4('0x35')](_0x28d418[_0xdad4('0x38')],qs[_0xdad4('0x4b')](_0x331569[_0xdad4('0x36')][_0xdad4('0x4b')]));_0x4dcc62['attributes']=_0x4dcc62['attributes'][_0xdad4('0x39')]?_0x4dcc62['attributes']:_0x28d418[_0xdad4('0x38')];if(_0x331569[_0xdad4('0x36')][_0xdad4('0x44')]){_0x4dcc62[_0xdad4('0x45')]=[{'all':!![]}];}_0x4dcc62=_['merge']({},_0x4dcc62,_0x331569[_0xdad4('0x42')]);return db[_0xdad4('0x2f')][_0xdad4('0x4c')](_0x4dcc62)[_0xdad4('0x26')](handleEntityNotFound(_0x47c898,null))[_0xdad4('0x26')](respondWithResult(_0x47c898,null))['catch'](handleError(_0x47c898,null));};exports[_0xdad4('0x4d')]=function(_0x59f1ae,_0x162d0d){return db['Variable'][_0xdad4('0x4d')](_0x59f1ae[_0xdad4('0x4e')],{})[_0xdad4('0x26')](function(_0x26b051){var _0x5b35db=_0x59f1ae[_0xdad4('0x4f')][_0xdad4('0x50')]({'plain':!![]});if(!_0x5b35db)throw new Error(_0xdad4('0x51'));if(_0x5b35db['role']==='user'){var _0x30e48c=_0x26b051['get']({'plain':!![]});var _0x3bdc38=_0xdad4('0x52');return db['UserProfileSection'][_0xdad4('0x4c')]({'where':{'name':_0x3bdc38,'userProfileId':_0x5b35db[_0xdad4('0x53')]},'raw':!![]})['then'](function(_0x34445f){if(_0x34445f&&_0x34445f['autoAssociation']===0x0){return db[_0xdad4('0x28')]['create']({'name':_0x30e48c[_0xdad4('0x2b')],'resourceId':_0x30e48c['id'],'type':_0x34445f[_0xdad4('0x2b')],'sectionId':_0x34445f['id']},{})[_0xdad4('0x26')](function(){return _0x26b051;});}else{return _0x26b051;}})[_0xdad4('0x54')](function(_0x4a6ccd){logger[_0xdad4('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4a6ccd);throw _0x4a6ccd;});}return _0x26b051;})['then'](respondWithResult(_0x162d0d,0xc9))[_0xdad4('0x54')](handleError(_0x162d0d,null));};exports[_0xdad4('0x25')]=function(_0x3f7283,_0x1bd207){if(_0x3f7283[_0xdad4('0x4e')]['id']){delete _0x3f7283[_0xdad4('0x4e')]['id'];}return db['Variable'][_0xdad4('0x4c')]({'where':{'id':_0x3f7283['params']['id']}})['then'](handleEntityNotFound(_0x1bd207,null))[_0xdad4('0x26')](saveUpdates(_0x3f7283['body'],null))[_0xdad4('0x26')](respondWithResult(_0x1bd207,null))[_0xdad4('0x54')](handleError(_0x1bd207,null));};exports[_0xdad4('0x27')]=function(_0x23017f,_0x3071da){return db[_0xdad4('0x2f')]['find']({'where':{'id':_0x23017f['params']['id']}})[_0xdad4('0x26')](handleEntityNotFound(_0x3071da,null))[_0xdad4('0x26')](removeEntity(_0x3071da,null))[_0xdad4('0x54')](handleError(_0x3071da,null));};