7621ec8ceb8012fe887d4192502fba2cf57eb59b
[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 _0x1e31=['find','create','body','user','UserProfileSection','catch','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','end','json','offset','limit','count','set','apply','reject','save','update','destroy','get','Variables','UserProfileResource','then','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','Variable','findAll','rows','show','params','keys','options'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1e31,0x101));var _0x11e3=function(_0x23afc2,_0xd0ec0b){_0x23afc2=_0x23afc2-0x0;var _0xa5f21a=_0x1e31[_0x23afc2];return _0xa5f21a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x11e3('0x0'));var zipdir=require(_0x11e3('0x1'));var jsonpatch=require(_0x11e3('0x2'));var rp=require('request-promise');var moment=require(_0x11e3('0x3'));var BPromise=require(_0x11e3('0x4'));var Mustache=require(_0x11e3('0x5'));var util=require(_0x11e3('0x6'));var path=require(_0x11e3('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x11e3('0x8'));var fs=require('fs');var fs_extra=require(_0x11e3('0x9'));var _=require(_0x11e3('0xa'));var squel=require(_0x11e3('0xb'));var crypto=require(_0x11e3('0xc'));var jsforce=require(_0x11e3('0xd'));var deskjs=require(_0x11e3('0xe'));var toCsv=require('to-csv');var querystring=require(_0x11e3('0xf'));var Papa=require(_0x11e3('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x11e3('0x11'));var as=require(_0x11e3('0x12'));var hardwareService=require(_0x11e3('0x13'));var logger=require(_0x11e3('0x14'))(_0x11e3('0x15'));var utils=require(_0x11e3('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x11e3('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xcac3f5,_0x545627){_0x545627=_0x545627||0xcc;return function(_0x17c189){if(_0x17c189){return _0xcac3f5[_0x11e3('0x18')](_0x545627);}return _0xcac3f5[_0x11e3('0x19')](_0x545627)[_0x11e3('0x1a')]();};}function respondWithResult(_0x54c390,_0x16a8a9){_0x16a8a9=_0x16a8a9||0xc8;return function(_0x529eb0){if(_0x529eb0){return _0x54c390['status'](_0x16a8a9)[_0x11e3('0x1b')](_0x529eb0);}};}function respondWithFilteredResult(_0x258c13,_0x32ba17){return function(_0x57da34){if(_0x57da34){var _0xacddab=typeof _0x32ba17[_0x11e3('0x1c')]==='undefined'&&typeof _0x32ba17[_0x11e3('0x1d')]==='undefined';var _0x386e39=_0x57da34[_0x11e3('0x1e')];var _0x415231=_0xacddab?0x0:_0x32ba17['offset'];var _0x557e3c=_0xacddab?_0x57da34[_0x11e3('0x1e')]:_0x32ba17['offset']+_0x32ba17['limit'];var _0x5c0a37;if(_0x557e3c>=_0x386e39){_0x557e3c=_0x386e39;_0x5c0a37=0xc8;}else{_0x5c0a37=0xce;}_0x258c13[_0x11e3('0x19')](_0x5c0a37);return _0x258c13[_0x11e3('0x1f')]('Content-Range',_0x415231+'-'+_0x557e3c+'/'+_0x386e39)[_0x11e3('0x1b')](_0x57da34);}return null;};}function patchUpdates(_0x5ea3b2){return function(_0x189f7f){try{jsonpatch[_0x11e3('0x20')](_0x189f7f,_0x5ea3b2,!![]);}catch(_0x1ebba6){return BPromise[_0x11e3('0x21')](_0x1ebba6);}return _0x189f7f[_0x11e3('0x22')]();};}function saveUpdates(_0x233f49,_0x3941d9){return function(_0x38e9b4){if(_0x38e9b4){return _0x38e9b4[_0x11e3('0x23')](_0x233f49)['then'](function(_0x55196d){return _0x55196d;});}return null;};}function removeEntity(_0x4e8717,_0x1bb228){return function(_0x104980){if(_0x104980){return _0x104980[_0x11e3('0x24')]()['then'](function(){var _0x19e138=_0x104980[_0x11e3('0x25')]({'plain':!![]});var _0x496a6b=_0x11e3('0x26');return db[_0x11e3('0x27')][_0x11e3('0x24')]({'where':{'type':_0x496a6b,'resourceId':_0x19e138['id']}})[_0x11e3('0x28')](function(){return _0x104980;});})[_0x11e3('0x28')](function(){_0x4e8717[_0x11e3('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0xa808d0,_0xc9a045){return function(_0x27a110){if(!_0x27a110){_0xa808d0[_0x11e3('0x18')](0x194);}return _0x27a110;};}function handleError(_0x2575b2,_0x407aae){_0x407aae=_0x407aae||0x1f4;return function(_0x3ddf13){logger['error'](_0x3ddf13[_0x11e3('0x29')]);if(_0x3ddf13['name']){delete _0x3ddf13[_0x11e3('0x2a')];}_0x2575b2[_0x11e3('0x19')](_0x407aae)[_0x11e3('0x2b')](_0x3ddf13);};}exports[_0x11e3('0x2c')]=function(_0x32b385,_0x4f97f0){var _0x1ebdd5={},_0x2bb204={},_0x33ab83={'count':0x0,'rows':[]};var _0x393d2f=_[_0x11e3('0x2d')](db['Variable'][_0x11e3('0x2e')],function(_0x2e97c0){return{'name':_0x2e97c0[_0x11e3('0x2f')],'type':_0x2e97c0[_0x11e3('0x30')][_0x11e3('0x31')]};});_0x2bb204[_0x11e3('0x32')]=_[_0x11e3('0x2d')](_0x393d2f,_0x11e3('0x2a'));_0x2bb204[_0x11e3('0x33')]=_['keys'](_0x32b385['query']);_0x2bb204[_0x11e3('0x34')]=_[_0x11e3('0x35')](_0x2bb204[_0x11e3('0x32')],_0x2bb204[_0x11e3('0x33')]);_0x1ebdd5[_0x11e3('0x36')]=_[_0x11e3('0x35')](_0x2bb204[_0x11e3('0x32')],qs[_0x11e3('0x37')](_0x32b385[_0x11e3('0x33')][_0x11e3('0x37')]));_0x1ebdd5[_0x11e3('0x36')]=_0x1ebdd5[_0x11e3('0x36')][_0x11e3('0x38')]?_0x1ebdd5[_0x11e3('0x36')]:_0x2bb204[_0x11e3('0x32')];if(!_0x32b385[_0x11e3('0x33')][_0x11e3('0x39')](_0x11e3('0x3a'))){_0x1ebdd5[_0x11e3('0x1d')]=qs['limit'](_0x32b385[_0x11e3('0x33')][_0x11e3('0x1d')]);_0x1ebdd5[_0x11e3('0x1c')]=qs[_0x11e3('0x1c')](_0x32b385[_0x11e3('0x33')][_0x11e3('0x1c')]);}_0x1ebdd5[_0x11e3('0x3b')]=qs['sort'](_0x32b385[_0x11e3('0x33')][_0x11e3('0x3c')]);_0x1ebdd5[_0x11e3('0x3d')]=qs['filters'](_[_0x11e3('0x3e')](_0x32b385[_0x11e3('0x33')],_0x2bb204[_0x11e3('0x34')]),_0x393d2f);if(_0x32b385['query'][_0x11e3('0x3f')]){_0x1ebdd5[_0x11e3('0x3d')]=_['merge'](_0x1ebdd5['where'],{'$or':_[_0x11e3('0x2d')](_0x393d2f,function(_0x5628d1){if(_0x5628d1[_0x11e3('0x30')]!==_0x11e3('0x40')){var _0xd5de31={};_0xd5de31[_0x5628d1['name']]={'$like':'%'+_0x32b385['query']['filter']+'%'};return _0xd5de31;}})});}_0x1ebdd5=_[_0x11e3('0x41')]({},_0x1ebdd5,_0x32b385['options']);var _0x347462={'where':_0x1ebdd5['where']};return db['Variable'][_0x11e3('0x1e')](_0x347462)[_0x11e3('0x28')](function(_0x5bca4e){_0x33ab83[_0x11e3('0x1e')]=_0x5bca4e;if(_0x32b385[_0x11e3('0x33')][_0x11e3('0x42')]){_0x1ebdd5[_0x11e3('0x43')]=[{'all':!![]}];}return db[_0x11e3('0x44')][_0x11e3('0x45')](_0x1ebdd5);})['then'](function(_0x9cf9d9){_0x33ab83[_0x11e3('0x46')]=_0x9cf9d9;return _0x33ab83;})[_0x11e3('0x28')](respondWithFilteredResult(_0x4f97f0,_0x1ebdd5))['catch'](handleError(_0x4f97f0,null));};exports[_0x11e3('0x47')]=function(_0x349366,_0x7eb240){var _0x5ddb81={'raw':!![],'where':{'id':_0x349366[_0x11e3('0x48')]['id']}},_0x366c2a={};_0x366c2a['model']=_[_0x11e3('0x49')](db[_0x11e3('0x44')][_0x11e3('0x2e')]);_0x366c2a[_0x11e3('0x33')]=_[_0x11e3('0x49')](_0x349366[_0x11e3('0x33')]);_0x366c2a['filters']=_[_0x11e3('0x35')](_0x366c2a[_0x11e3('0x32')],_0x366c2a[_0x11e3('0x33')]);_0x5ddb81[_0x11e3('0x36')]=_[_0x11e3('0x35')](_0x366c2a[_0x11e3('0x32')],qs[_0x11e3('0x37')](_0x349366[_0x11e3('0x33')][_0x11e3('0x37')]));_0x5ddb81[_0x11e3('0x36')]=_0x5ddb81['attributes'][_0x11e3('0x38')]?_0x5ddb81[_0x11e3('0x36')]:_0x366c2a[_0x11e3('0x32')];if(_0x349366[_0x11e3('0x33')][_0x11e3('0x42')]){_0x5ddb81[_0x11e3('0x43')]=[{'all':!![]}];}_0x5ddb81=_[_0x11e3('0x41')]({},_0x5ddb81,_0x349366[_0x11e3('0x4a')]);return db[_0x11e3('0x44')][_0x11e3('0x4b')](_0x5ddb81)[_0x11e3('0x28')](handleEntityNotFound(_0x7eb240,null))[_0x11e3('0x28')](respondWithResult(_0x7eb240,null))['catch'](handleError(_0x7eb240,null));};exports[_0x11e3('0x4c')]=function(_0x5e46a3,_0x1d0ce6){return db[_0x11e3('0x44')][_0x11e3('0x4c')](_0x5e46a3[_0x11e3('0x4d')],{})[_0x11e3('0x28')](function(_0x42ee5a){var _0x58c9e2=_0x5e46a3[_0x11e3('0x4e')][_0x11e3('0x25')]({'plain':!![]});if(!_0x58c9e2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x58c9e2['role']===_0x11e3('0x4e')){var _0x72566a=_0x42ee5a['get']({'plain':!![]});var _0x4d30bf=_0x11e3('0x26');return db[_0x11e3('0x4f')][_0x11e3('0x4b')]({'where':{'name':_0x4d30bf,'userProfileId':_0x58c9e2['userProfileId']},'raw':!![]})[_0x11e3('0x28')](function(_0x20d39c){if(_0x20d39c&&_0x20d39c['autoAssociation']===0x0){return db['UserProfileResource'][_0x11e3('0x4c')]({'name':_0x72566a[_0x11e3('0x2a')],'resourceId':_0x72566a['id'],'type':_0x20d39c['name'],'sectionId':_0x20d39c['id']},{})[_0x11e3('0x28')](function(){return _0x42ee5a;});}else{return _0x42ee5a;}})[_0x11e3('0x50')](function(_0x54f552){logger[_0x11e3('0x51')](_0x11e3('0x52'),_0x54f552);throw _0x54f552;});}return _0x42ee5a;})[_0x11e3('0x28')](respondWithResult(_0x1d0ce6,0xc9))[_0x11e3('0x50')](handleError(_0x1d0ce6,null));};exports['update']=function(_0x510628,_0x56241c){if(_0x510628['body']['id']){delete _0x510628['body']['id'];}return db[_0x11e3('0x44')][_0x11e3('0x4b')]({'where':{'id':_0x510628[_0x11e3('0x48')]['id']}})['then'](handleEntityNotFound(_0x56241c,null))[_0x11e3('0x28')](saveUpdates(_0x510628[_0x11e3('0x4d')],null))[_0x11e3('0x28')](respondWithResult(_0x56241c,null))[_0x11e3('0x50')](handleError(_0x56241c,null));};exports[_0x11e3('0x24')]=function(_0x47a418,_0x303847){return db[_0x11e3('0x44')][_0x11e3('0x4b')]({'where':{'id':_0x47a418[_0x11e3('0x48')]['id']}})[_0x11e3('0x28')](handleEntityNotFound(_0x303847,null))[_0x11e3('0x28')](removeEntity(_0x303847,null))['catch'](handleError(_0x303847,null));};