346188a5198b82f137a8ce2179df77ec82499c22
[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 _0x04b3=['then','destroy','get','Variables','UserProfileResource','error','stack','name','send','index','Variable','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','fields','attributes','length','limit','order','sort','pick','where','merge','VIRTUAL','filter','options','includeAll','findAll','rows','catch','show','params','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','path','sox','to-csv','ejs','lodash','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','save','update'];(function(_0x31ad5b,_0x4e954e){var _0x29b0b4=function(_0x53837a){while(--_0x53837a){_0x31ad5b['push'](_0x31ad5b['shift']());}};_0x29b0b4(++_0x4e954e);}(_0x04b3,0xd2));var _0x304b=function(_0x1fd17b,_0x44d43d){_0x1fd17b=_0x1fd17b-0x0;var _0x3ddbb5=_0x04b3[_0x1fd17b];return _0x3ddbb5;};'use strict';var emlformat=require(_0x304b('0x0'));var rimraf=require(_0x304b('0x1'));var zipdir=require(_0x304b('0x2'));var jsonpatch=require(_0x304b('0x3'));var rp=require(_0x304b('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x304b('0x5'));var sox=require(_0x304b('0x6'));var csv=require(_0x304b('0x7'));var ejs=require(_0x304b('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x304b('0x9'));var squel=require('squel');var crypto=require(_0x304b('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x304b('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x304b('0xc'));var Redis=require(_0x304b('0xd'));var authService=require(_0x304b('0xe'));var qs=require(_0x304b('0xf'));var as=require(_0x304b('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x304b('0x11'))('api');var utils=require(_0x304b('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x304b('0x13'));var db=require(_0x304b('0x14'))['db'];function respondWithStatusCode(_0x18d380,_0x596507){_0x596507=_0x596507||0xcc;return function(_0x480772){if(_0x480772){return _0x18d380[_0x304b('0x15')](_0x596507);}return _0x18d380[_0x304b('0x16')](_0x596507)[_0x304b('0x17')]();};}function respondWithResult(_0x34b276,_0x3d9527){_0x3d9527=_0x3d9527||0xc8;return function(_0xfd2920){if(_0xfd2920){return _0x34b276[_0x304b('0x16')](_0x3d9527)[_0x304b('0x18')](_0xfd2920);}};}function respondWithFilteredResult(_0x311ba6,_0x4694e7){return function(_0x21abaa){if(_0x21abaa){var _0x5e7249=typeof _0x4694e7[_0x304b('0x19')]==='undefined'&&typeof _0x4694e7['limit']===_0x304b('0x1a');var _0x17cbbc=_0x21abaa[_0x304b('0x1b')];var _0x29e7ff=_0x5e7249?0x0:_0x4694e7[_0x304b('0x19')];var _0x234aae=_0x5e7249?_0x21abaa[_0x304b('0x1b')]:_0x4694e7[_0x304b('0x19')]+_0x4694e7['limit'];var _0x4978d1;if(_0x234aae>=_0x17cbbc){_0x234aae=_0x17cbbc;_0x4978d1=0xc8;}else{_0x4978d1=0xce;}_0x311ba6[_0x304b('0x16')](_0x4978d1);return _0x311ba6[_0x304b('0x1c')](_0x304b('0x1d'),_0x29e7ff+'-'+_0x234aae+'/'+_0x17cbbc)[_0x304b('0x18')](_0x21abaa);}return null;};}function patchUpdates(_0x3231ef){return function(_0x580ea3){try{jsonpatch[_0x304b('0x1e')](_0x580ea3,_0x3231ef,!![]);}catch(_0x8140e8){return BPromise['reject'](_0x8140e8);}return _0x580ea3[_0x304b('0x1f')]();};}function saveUpdates(_0x4430d1,_0x44783a){return function(_0x568aa1){if(_0x568aa1){return _0x568aa1[_0x304b('0x20')](_0x4430d1)[_0x304b('0x21')](function(_0x3c4cea){return _0x3c4cea;});}return null;};}function removeEntity(_0x417155,_0x38c533){return function(_0x3c1581){if(_0x3c1581){return _0x3c1581[_0x304b('0x22')]()[_0x304b('0x21')](function(){var _0x35edb8=_0x3c1581[_0x304b('0x23')]({'plain':!![]});var _0x59941f=_0x304b('0x24');return db[_0x304b('0x25')][_0x304b('0x22')]({'where':{'type':_0x59941f,'resourceId':_0x35edb8['id']}})[_0x304b('0x21')](function(){return _0x3c1581;});})['then'](function(){_0x417155[_0x304b('0x16')](0xcc)[_0x304b('0x17')]();});}};}function handleEntityNotFound(_0x40ff85,_0x277641){return function(_0x507570){if(!_0x507570){_0x40ff85[_0x304b('0x15')](0x194);}return _0x507570;};}function handleError(_0x8549bd,_0x36cb23){_0x36cb23=_0x36cb23||0x1f4;return function(_0x3c13b2){logger[_0x304b('0x26')](_0x3c13b2[_0x304b('0x27')]);if(_0x3c13b2['name']){delete _0x3c13b2[_0x304b('0x28')];}_0x8549bd[_0x304b('0x16')](_0x36cb23)[_0x304b('0x29')](_0x3c13b2);};}exports[_0x304b('0x2a')]=function(_0x534b20,_0x234903){var _0x2ddba0={},_0x4e1591={},_0x1019dd={'count':0x0,'rows':[]};var _0x22cc50=_['map'](db[_0x304b('0x2b')][_0x304b('0x2c')],function(_0x5d2a1f){return{'name':_0x5d2a1f[_0x304b('0x2d')],'type':_0x5d2a1f[_0x304b('0x2e')]['key']};});_0x4e1591[_0x304b('0x2f')]=_[_0x304b('0x30')](_0x22cc50,_0x304b('0x28'));_0x4e1591[_0x304b('0x31')]=_[_0x304b('0x32')](_0x534b20['query']);_0x4e1591[_0x304b('0x33')]=_[_0x304b('0x34')](_0x4e1591['model'],_0x4e1591[_0x304b('0x31')]);_0x2ddba0['attributes']=_[_0x304b('0x34')](_0x4e1591[_0x304b('0x2f')],qs[_0x304b('0x35')](_0x534b20['query'][_0x304b('0x35')]));_0x2ddba0[_0x304b('0x36')]=_0x2ddba0['attributes'][_0x304b('0x37')]?_0x2ddba0[_0x304b('0x36')]:_0x4e1591[_0x304b('0x2f')];if(!_0x534b20[_0x304b('0x31')]['hasOwnProperty']('nolimit')){_0x2ddba0[_0x304b('0x38')]=qs[_0x304b('0x38')](_0x534b20['query'][_0x304b('0x38')]);_0x2ddba0[_0x304b('0x19')]=qs[_0x304b('0x19')](_0x534b20[_0x304b('0x31')][_0x304b('0x19')]);}_0x2ddba0[_0x304b('0x39')]=qs['sort'](_0x534b20[_0x304b('0x31')][_0x304b('0x3a')]);_0x2ddba0['where']=qs['filters'](_[_0x304b('0x3b')](_0x534b20['query'],_0x4e1591['filters']),_0x22cc50);if(_0x534b20[_0x304b('0x31')]['filter']){_0x2ddba0[_0x304b('0x3c')]=_[_0x304b('0x3d')](_0x2ddba0[_0x304b('0x3c')],{'$or':_[_0x304b('0x30')](_0x22cc50,function(_0x57f457){if(_0x57f457[_0x304b('0x2e')]!==_0x304b('0x3e')){var _0x23dbfe={};_0x23dbfe[_0x57f457[_0x304b('0x28')]]={'$like':'%'+_0x534b20[_0x304b('0x31')][_0x304b('0x3f')]+'%'};return _0x23dbfe;}})});}_0x2ddba0=_[_0x304b('0x3d')]({},_0x2ddba0,_0x534b20[_0x304b('0x40')]);var _0x52d91d={'where':_0x2ddba0[_0x304b('0x3c')]};return db[_0x304b('0x2b')][_0x304b('0x1b')](_0x52d91d)[_0x304b('0x21')](function(_0x415e72){_0x1019dd[_0x304b('0x1b')]=_0x415e72;if(_0x534b20[_0x304b('0x31')][_0x304b('0x41')]){_0x2ddba0['include']=[{'all':!![]}];}return db[_0x304b('0x2b')][_0x304b('0x42')](_0x2ddba0);})[_0x304b('0x21')](function(_0x1235e3){_0x1019dd[_0x304b('0x43')]=_0x1235e3;return _0x1019dd;})[_0x304b('0x21')](respondWithFilteredResult(_0x234903,_0x2ddba0))[_0x304b('0x44')](handleError(_0x234903,null));};exports[_0x304b('0x45')]=function(_0x4b562e,_0x4b0e2d){var _0x3fa5b7={'raw':!![],'where':{'id':_0x4b562e[_0x304b('0x46')]['id']}},_0x485b58={};_0x485b58[_0x304b('0x2f')]=_['keys'](db[_0x304b('0x2b')][_0x304b('0x2c')]);_0x485b58[_0x304b('0x31')]=_['keys'](_0x4b562e['query']);_0x485b58[_0x304b('0x33')]=_['intersection'](_0x485b58['model'],_0x485b58[_0x304b('0x31')]);_0x3fa5b7[_0x304b('0x36')]=_[_0x304b('0x34')](_0x485b58[_0x304b('0x2f')],qs[_0x304b('0x35')](_0x4b562e[_0x304b('0x31')][_0x304b('0x35')]));_0x3fa5b7['attributes']=_0x3fa5b7['attributes']['length']?_0x3fa5b7['attributes']:_0x485b58[_0x304b('0x2f')];if(_0x4b562e[_0x304b('0x31')]['includeAll']){_0x3fa5b7[_0x304b('0x47')]=[{'all':!![]}];}_0x3fa5b7=_['merge']({},_0x3fa5b7,_0x4b562e[_0x304b('0x40')]);return db[_0x304b('0x2b')][_0x304b('0x48')](_0x3fa5b7)[_0x304b('0x21')](handleEntityNotFound(_0x4b0e2d,null))['then'](respondWithResult(_0x4b0e2d,null))[_0x304b('0x44')](handleError(_0x4b0e2d,null));};exports[_0x304b('0x49')]=function(_0x3ff63c,_0x419625){return db[_0x304b('0x2b')]['create'](_0x3ff63c[_0x304b('0x4a')],{})[_0x304b('0x21')](function(_0x244064){var _0x24c1bd=_0x3ff63c[_0x304b('0x4b')][_0x304b('0x23')]({'plain':!![]});if(!_0x24c1bd)throw new Error(_0x304b('0x4c'));if(_0x24c1bd[_0x304b('0x4d')]===_0x304b('0x4b')){var _0x38e936=_0x244064['get']({'plain':!![]});var _0x41d86e='Variables';return db['UserProfileSection'][_0x304b('0x48')]({'where':{'name':_0x41d86e,'userProfileId':_0x24c1bd[_0x304b('0x4e')]},'raw':!![]})[_0x304b('0x21')](function(_0x3e68bf){if(_0x3e68bf&&_0x3e68bf[_0x304b('0x4f')]===0x0){return db[_0x304b('0x25')]['create']({'name':_0x38e936[_0x304b('0x28')],'resourceId':_0x38e936['id'],'type':_0x3e68bf[_0x304b('0x28')],'sectionId':_0x3e68bf['id']},{})[_0x304b('0x21')](function(){return _0x244064;});}else{return _0x244064;}})[_0x304b('0x44')](function(_0x27b6b8){logger[_0x304b('0x26')](_0x304b('0x50'),_0x27b6b8);throw _0x27b6b8;});}return _0x244064;})['then'](respondWithResult(_0x419625,0xc9))[_0x304b('0x44')](handleError(_0x419625,null));};exports['update']=function(_0x3e486b,_0x4020df){if(_0x3e486b['body']['id']){delete _0x3e486b[_0x304b('0x4a')]['id'];}return db[_0x304b('0x2b')]['find']({'where':{'id':_0x3e486b[_0x304b('0x46')]['id']}})[_0x304b('0x21')](handleEntityNotFound(_0x4020df,null))[_0x304b('0x21')](saveUpdates(_0x3e486b[_0x304b('0x4a')],null))[_0x304b('0x21')](respondWithResult(_0x4020df,null))[_0x304b('0x44')](handleError(_0x4020df,null));};exports[_0x304b('0x22')]=function(_0x52384b,_0x206652){return db[_0x304b('0x2b')]['find']({'where':{'id':_0x52384b[_0x304b('0x46')]['id']}})[_0x304b('0x21')](handleEntityNotFound(_0x206652,null))['then'](removeEntity(_0x206652,null))[_0x304b('0x44')](handleError(_0x206652,null));};