ef3261ba1fde064ab0089f8db663d8a1b03d2fc3
[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 _0xc66e=['merge','options','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','limit','undefined','offset','count','reject','save','update','then','get','Variables','UserProfileResource','destroy','sendStatus','stack','name','map','Variable','fieldName','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','where','pick','filter','type'];(function(_0x3d4876,_0x366386){var _0x58ca9d=function(_0x5bd045){while(--_0x5bd045){_0x3d4876['push'](_0x3d4876['shift']());}};_0x58ca9d(++_0x366386);}(_0xc66e,0xb4));var _0xec66=function(_0x3a0c4f,_0x5dd1a3){_0x3a0c4f=_0x3a0c4f-0x0;var _0x247049=_0xc66e[_0x3a0c4f];return _0x247049;};'use strict';var emlformat=require(_0xec66('0x0'));var rimraf=require(_0xec66('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xec66('0x2'));var moment=require(_0xec66('0x3'));var BPromise=require(_0xec66('0x4'));var Mustache=require(_0xec66('0x5'));var util=require(_0xec66('0x6'));var path=require(_0xec66('0x7'));var sox=require(_0xec66('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xec66('0x9'));var squel=require(_0xec66('0xa'));var crypto=require(_0xec66('0xb'));var jsforce=require(_0xec66('0xc'));var deskjs=require(_0xec66('0xd'));var toCsv=require(_0xec66('0xe'));var querystring=require(_0xec66('0xf'));var Papa=require('papaparse');var Redis=require(_0xec66('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xec66('0x11'));var as=require(_0xec66('0x12'));var hardwareService=require(_0xec66('0x13'));var logger=require(_0xec66('0x14'))('api');var utils=require(_0xec66('0x15'));var config=require(_0xec66('0x16'));var licenseUtil=require(_0xec66('0x17'));var db=require(_0xec66('0x18'))['db'];function respondWithStatusCode(_0x185933,_0x3d3781){_0x3d3781=_0x3d3781||0xcc;return function(_0x162169){if(_0x162169){return _0x185933['sendStatus'](_0x3d3781);}return _0x185933[_0xec66('0x19')](_0x3d3781)[_0xec66('0x1a')]();};}function respondWithResult(_0x36cceb,_0x5e5bcc){_0x5e5bcc=_0x5e5bcc||0xc8;return function(_0x2aec9b){if(_0x2aec9b){return _0x36cceb[_0xec66('0x19')](_0x5e5bcc)[_0xec66('0x1b')](_0x2aec9b);}};}function respondWithFilteredResult(_0x20192c,_0x2bc999){return function(_0x2eac37){if(_0x2eac37){var _0xc200b=typeof _0x2bc999['offset']==='undefined'&&typeof _0x2bc999[_0xec66('0x1c')]===_0xec66('0x1d');var _0x5c1705=_0x2eac37['count'];var _0x5953d7=_0xc200b?0x0:_0x2bc999[_0xec66('0x1e')];var _0x582c9e=_0xc200b?_0x2eac37[_0xec66('0x1f')]:_0x2bc999[_0xec66('0x1e')]+_0x2bc999[_0xec66('0x1c')];var _0x59e177;if(_0x582c9e>=_0x5c1705){_0x582c9e=_0x5c1705;_0x59e177=0xc8;}else{_0x59e177=0xce;}_0x20192c['status'](_0x59e177);return _0x20192c['set']('Content-Range',_0x5953d7+'-'+_0x582c9e+'/'+_0x5c1705)[_0xec66('0x1b')](_0x2eac37);}return null;};}function patchUpdates(_0x23ea07){return function(_0x364abc){try{jsonpatch['apply'](_0x364abc,_0x23ea07,!![]);}catch(_0x3bd4d5){return BPromise[_0xec66('0x20')](_0x3bd4d5);}return _0x364abc[_0xec66('0x21')]();};}function saveUpdates(_0x319578,_0x57c5a7){return function(_0x39020d){if(_0x39020d){return _0x39020d[_0xec66('0x22')](_0x319578)[_0xec66('0x23')](function(_0x4a1924){return _0x4a1924;});}return null;};}function removeEntity(_0x199338,_0x144578){return function(_0x58c2d3){if(_0x58c2d3){return _0x58c2d3['destroy']()[_0xec66('0x23')](function(){var _0x518701=_0x58c2d3[_0xec66('0x24')]({'plain':!![]});var _0x5bbefe=_0xec66('0x25');return db[_0xec66('0x26')][_0xec66('0x27')]({'where':{'type':_0x5bbefe,'resourceId':_0x518701['id']}})['then'](function(){return _0x58c2d3;});})[_0xec66('0x23')](function(){_0x199338[_0xec66('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x42f886,_0x31ca1d){return function(_0xfe7993){if(!_0xfe7993){_0x42f886[_0xec66('0x28')](0x194);}return _0xfe7993;};}function handleError(_0x24652d,_0x36815a){_0x36815a=_0x36815a||0x1f4;return function(_0x3e8d52){logger['error'](_0x3e8d52[_0xec66('0x29')]);if(_0x3e8d52[_0xec66('0x2a')]){delete _0x3e8d52['name'];}_0x24652d['status'](_0x36815a)['send'](_0x3e8d52);};}exports['index']=function(_0x4a92a4,_0x3d61a6){var _0x2e8a12={},_0x3dd0f9={},_0x29f008={'count':0x0,'rows':[]};var _0x33545d=_[_0xec66('0x2b')](db[_0xec66('0x2c')]['rawAttributes'],function(_0x4f5654){return{'name':_0x4f5654[_0xec66('0x2d')],'type':_0x4f5654['type']['key']};});_0x3dd0f9['model']=_[_0xec66('0x2b')](_0x33545d,_0xec66('0x2a'));_0x3dd0f9[_0xec66('0x2e')]=_[_0xec66('0x2f')](_0x4a92a4['query']);_0x3dd0f9[_0xec66('0x30')]=_[_0xec66('0x31')](_0x3dd0f9[_0xec66('0x32')],_0x3dd0f9[_0xec66('0x2e')]);_0x2e8a12[_0xec66('0x33')]=_[_0xec66('0x31')](_0x3dd0f9[_0xec66('0x32')],qs[_0xec66('0x34')](_0x4a92a4[_0xec66('0x2e')][_0xec66('0x34')]));_0x2e8a12['attributes']=_0x2e8a12[_0xec66('0x33')]['length']?_0x2e8a12[_0xec66('0x33')]:_0x3dd0f9[_0xec66('0x32')];if(!_0x4a92a4[_0xec66('0x2e')][_0xec66('0x35')](_0xec66('0x36'))){_0x2e8a12[_0xec66('0x1c')]=qs[_0xec66('0x1c')](_0x4a92a4[_0xec66('0x2e')]['limit']);_0x2e8a12[_0xec66('0x1e')]=qs[_0xec66('0x1e')](_0x4a92a4[_0xec66('0x2e')][_0xec66('0x1e')]);}_0x2e8a12[_0xec66('0x37')]=qs['sort'](_0x4a92a4['query']['sort']);_0x2e8a12[_0xec66('0x38')]=qs[_0xec66('0x30')](_[_0xec66('0x39')](_0x4a92a4[_0xec66('0x2e')],_0x3dd0f9[_0xec66('0x30')]),_0x33545d);if(_0x4a92a4[_0xec66('0x2e')][_0xec66('0x3a')]){_0x2e8a12['where']=_['merge'](_0x2e8a12[_0xec66('0x38')],{'$or':_[_0xec66('0x2b')](_0x33545d,function(_0x4381cd){if(_0x4381cd[_0xec66('0x3b')]!=='VIRTUAL'){var _0x2f4fe6={};_0x2f4fe6[_0x4381cd['name']]={'$like':'%'+_0x4a92a4[_0xec66('0x2e')][_0xec66('0x3a')]+'%'};return _0x2f4fe6;}})});}_0x2e8a12=_[_0xec66('0x3c')]({},_0x2e8a12,_0x4a92a4[_0xec66('0x3d')]);var _0x1f5fab={'where':_0x2e8a12['where']};return db['Variable'][_0xec66('0x1f')](_0x1f5fab)['then'](function(_0x3790e4){_0x29f008[_0xec66('0x1f')]=_0x3790e4;if(_0x4a92a4['query'][_0xec66('0x3e')]){_0x2e8a12[_0xec66('0x3f')]=[{'all':!![]}];}return db[_0xec66('0x2c')][_0xec66('0x40')](_0x2e8a12);})[_0xec66('0x23')](function(_0x206edf){_0x29f008[_0xec66('0x41')]=_0x206edf;return _0x29f008;})[_0xec66('0x23')](respondWithFilteredResult(_0x3d61a6,_0x2e8a12))[_0xec66('0x42')](handleError(_0x3d61a6,null));};exports[_0xec66('0x43')]=function(_0x3543f7,_0x3e69d3){var _0x529646={'raw':!![],'where':{'id':_0x3543f7[_0xec66('0x44')]['id']}},_0x4ad69e={};_0x4ad69e['model']=_['keys'](db['Variable']['rawAttributes']);_0x4ad69e[_0xec66('0x2e')]=_[_0xec66('0x2f')](_0x3543f7[_0xec66('0x2e')]);_0x4ad69e[_0xec66('0x30')]=_[_0xec66('0x31')](_0x4ad69e['model'],_0x4ad69e[_0xec66('0x2e')]);_0x529646[_0xec66('0x33')]=_[_0xec66('0x31')](_0x4ad69e[_0xec66('0x32')],qs[_0xec66('0x34')](_0x3543f7[_0xec66('0x2e')]['fields']));_0x529646['attributes']=_0x529646[_0xec66('0x33')][_0xec66('0x45')]?_0x529646[_0xec66('0x33')]:_0x4ad69e['model'];if(_0x3543f7[_0xec66('0x2e')][_0xec66('0x3e')]){_0x529646[_0xec66('0x3f')]=[{'all':!![]}];}_0x529646=_[_0xec66('0x3c')]({},_0x529646,_0x3543f7['options']);return db[_0xec66('0x2c')][_0xec66('0x46')](_0x529646)[_0xec66('0x23')](handleEntityNotFound(_0x3e69d3,null))[_0xec66('0x23')](respondWithResult(_0x3e69d3,null))[_0xec66('0x42')](handleError(_0x3e69d3,null));};exports['create']=function(_0x13bd87,_0x38e93f){return db[_0xec66('0x2c')][_0xec66('0x47')](_0x13bd87[_0xec66('0x48')],{})[_0xec66('0x23')](function(_0x3721ae){var _0x36286c=_0x13bd87[_0xec66('0x49')][_0xec66('0x24')]({'plain':!![]});if(!_0x36286c)throw new Error(_0xec66('0x4a'));if(_0x36286c[_0xec66('0x4b')]===_0xec66('0x49')){var _0x118b7d=_0x3721ae['get']({'plain':!![]});var _0x1c4e87=_0xec66('0x25');return db[_0xec66('0x4c')][_0xec66('0x46')]({'where':{'name':_0x1c4e87,'userProfileId':_0x36286c[_0xec66('0x4d')]},'raw':!![]})[_0xec66('0x23')](function(_0x5418e3){if(_0x5418e3&&_0x5418e3['autoAssociation']===0x0){return db[_0xec66('0x26')][_0xec66('0x47')]({'name':_0x118b7d[_0xec66('0x2a')],'resourceId':_0x118b7d['id'],'type':_0x5418e3['name'],'sectionId':_0x5418e3['id']},{})[_0xec66('0x23')](function(){return _0x3721ae;});}else{return _0x3721ae;}})[_0xec66('0x42')](function(_0x1b12c9){logger[_0xec66('0x4e')](_0xec66('0x4f'),_0x1b12c9);throw _0x1b12c9;});}return _0x3721ae;})[_0xec66('0x23')](respondWithResult(_0x38e93f,0xc9))[_0xec66('0x42')](handleError(_0x38e93f,null));};exports['update']=function(_0x208f9d,_0x431612){if(_0x208f9d[_0xec66('0x48')]['id']){delete _0x208f9d[_0xec66('0x48')]['id'];}return db[_0xec66('0x2c')][_0xec66('0x46')]({'where':{'id':_0x208f9d['params']['id']}})['then'](handleEntityNotFound(_0x431612,null))[_0xec66('0x23')](saveUpdates(_0x208f9d[_0xec66('0x48')],null))['then'](respondWithResult(_0x431612,null))[_0xec66('0x42')](handleError(_0x431612,null));};exports[_0xec66('0x27')]=function(_0x5553dc,_0x5e4bea){return db[_0xec66('0x2c')][_0xec66('0x46')]({'where':{'id':_0x5553dc['params']['id']}})['then'](handleEntityNotFound(_0x5e4bea,null))[_0xec66('0x23')](removeEntity(_0x5e4bea,null))[_0xec66('0x42')](handleError(_0x5e4bea,null));};