30766be8e8ac471d14600c02cb776d8ae338f92f
[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 _0x8eb4=['util','path','to-csv','ejs','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','offset','undefined','limit','count','json','apply','reject','save','update','then','destroy','get','Variables','UserProfileResource','name','index','Variable','rawAttributes','fieldName','type','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','map','VIRTUAL','filter','merge','options','includeAll','include','catch','show','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x490be3,_0xf0fca3){var _0x3f5140=function(_0x15fa80){while(--_0x15fa80){_0x490be3['push'](_0x490be3['shift']());}};_0x3f5140(++_0xf0fca3);}(_0x8eb4,0xe2));var _0x48eb=function(_0x256d6a,_0x2f002f){_0x256d6a=_0x256d6a-0x0;var _0x460058=_0x8eb4[_0x256d6a];return _0x460058;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x48eb('0x0'));var zipdir=require(_0x48eb('0x1'));var jsonpatch=require(_0x48eb('0x2'));var rp=require(_0x48eb('0x3'));var moment=require(_0x48eb('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x48eb('0x5'));var path=require(_0x48eb('0x6'));var sox=require('sox');var csv=require(_0x48eb('0x7'));var ejs=require(_0x48eb('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x48eb('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x48eb('0xa'));var toCsv=require('to-csv');var querystring=require(_0x48eb('0xb'));var Papa=require(_0x48eb('0xc'));var Redis=require(_0x48eb('0xd'));var authService=require(_0x48eb('0xe'));var qs=require(_0x48eb('0xf'));var as=require(_0x48eb('0x10'));var hardwareService=require(_0x48eb('0x11'));var logger=require(_0x48eb('0x12'))('api');var utils=require(_0x48eb('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x48eb('0x14'))['db'];function respondWithStatusCode(_0x2181e7,_0x469991){_0x469991=_0x469991||0xcc;return function(_0x4bf8b3){if(_0x4bf8b3){return _0x2181e7[_0x48eb('0x15')](_0x469991);}return _0x2181e7[_0x48eb('0x16')](_0x469991)['end']();};}function respondWithResult(_0xce80b6,_0x383d55){_0x383d55=_0x383d55||0xc8;return function(_0x1bd6ad){if(_0x1bd6ad){return _0xce80b6['status'](_0x383d55)['json'](_0x1bd6ad);}};}function respondWithFilteredResult(_0x5a0b95,_0x4e33a1){return function(_0x61a093){if(_0x61a093){var _0x2cbcb7=typeof _0x4e33a1[_0x48eb('0x17')]===_0x48eb('0x18')&&typeof _0x4e33a1[_0x48eb('0x19')]===_0x48eb('0x18');var _0x3df7a8=_0x61a093[_0x48eb('0x1a')];var _0x3f9217=_0x2cbcb7?0x0:_0x4e33a1[_0x48eb('0x17')];var _0x4f47fb=_0x2cbcb7?_0x61a093[_0x48eb('0x1a')]:_0x4e33a1['offset']+_0x4e33a1[_0x48eb('0x19')];var _0x184492;if(_0x4f47fb>=_0x3df7a8){_0x4f47fb=_0x3df7a8;_0x184492=0xc8;}else{_0x184492=0xce;}_0x5a0b95['status'](_0x184492);return _0x5a0b95['set']('Content-Range',_0x3f9217+'-'+_0x4f47fb+'/'+_0x3df7a8)[_0x48eb('0x1b')](_0x61a093);}return null;};}function patchUpdates(_0x560092){return function(_0xea1b20){try{jsonpatch[_0x48eb('0x1c')](_0xea1b20,_0x560092,!![]);}catch(_0x21124c){return BPromise[_0x48eb('0x1d')](_0x21124c);}return _0xea1b20[_0x48eb('0x1e')]();};}function saveUpdates(_0x5e1d8e,_0x2d20fd){return function(_0x478ea3){if(_0x478ea3){return _0x478ea3[_0x48eb('0x1f')](_0x5e1d8e)[_0x48eb('0x20')](function(_0x5a2b0c){return _0x5a2b0c;});}return null;};}function removeEntity(_0x288866,_0x41be9d){return function(_0x2e76bd){if(_0x2e76bd){return _0x2e76bd[_0x48eb('0x21')]()[_0x48eb('0x20')](function(){var _0x3261f6=_0x2e76bd[_0x48eb('0x22')]({'plain':!![]});var _0x5eff68=_0x48eb('0x23');return db[_0x48eb('0x24')][_0x48eb('0x21')]({'where':{'type':_0x5eff68,'resourceId':_0x3261f6['id']}})[_0x48eb('0x20')](function(){return _0x2e76bd;});})[_0x48eb('0x20')](function(){_0x288866[_0x48eb('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x299bfa,_0x34983b){return function(_0x3deeb1){if(!_0x3deeb1){_0x299bfa[_0x48eb('0x15')](0x194);}return _0x3deeb1;};}function handleError(_0x3f7a40,_0x5c66fd){_0x5c66fd=_0x5c66fd||0x1f4;return function(_0x307df4){logger['error'](_0x307df4['stack']);if(_0x307df4[_0x48eb('0x25')]){delete _0x307df4[_0x48eb('0x25')];}_0x3f7a40[_0x48eb('0x16')](_0x5c66fd)['send'](_0x307df4);};}exports[_0x48eb('0x26')]=function(_0x2266a1,_0x1e126f){var _0x4de1e2={},_0x2895f7={},_0x482825={'count':0x0,'rows':[]};var _0x2e3b08=_['map'](db[_0x48eb('0x27')][_0x48eb('0x28')],function(_0x13bc68){return{'name':_0x13bc68[_0x48eb('0x29')],'type':_0x13bc68[_0x48eb('0x2a')]['key']};});_0x2895f7[_0x48eb('0x2b')]=_['map'](_0x2e3b08,'name');_0x2895f7[_0x48eb('0x2c')]=_[_0x48eb('0x2d')](_0x2266a1['query']);_0x2895f7['filters']=_[_0x48eb('0x2e')](_0x2895f7[_0x48eb('0x2b')],_0x2895f7[_0x48eb('0x2c')]);_0x4de1e2['attributes']=_[_0x48eb('0x2e')](_0x2895f7[_0x48eb('0x2b')],qs[_0x48eb('0x2f')](_0x2266a1[_0x48eb('0x2c')][_0x48eb('0x2f')]));_0x4de1e2['attributes']=_0x4de1e2[_0x48eb('0x30')][_0x48eb('0x31')]?_0x4de1e2['attributes']:_0x2895f7['model'];if(!_0x2266a1[_0x48eb('0x2c')][_0x48eb('0x32')](_0x48eb('0x33'))){_0x4de1e2['limit']=qs[_0x48eb('0x19')](_0x2266a1[_0x48eb('0x2c')][_0x48eb('0x19')]);_0x4de1e2[_0x48eb('0x17')]=qs['offset'](_0x2266a1[_0x48eb('0x2c')][_0x48eb('0x17')]);}_0x4de1e2[_0x48eb('0x34')]=qs[_0x48eb('0x35')](_0x2266a1[_0x48eb('0x2c')]['sort']);_0x4de1e2[_0x48eb('0x36')]=qs[_0x48eb('0x37')](_[_0x48eb('0x38')](_0x2266a1[_0x48eb('0x2c')],_0x2895f7[_0x48eb('0x37')]),_0x2e3b08);if(_0x2266a1[_0x48eb('0x2c')]['filter']){_0x4de1e2[_0x48eb('0x36')]=_['merge'](_0x4de1e2[_0x48eb('0x36')],{'$or':_[_0x48eb('0x39')](_0x2e3b08,function(_0x192ab1){if(_0x192ab1[_0x48eb('0x2a')]!==_0x48eb('0x3a')){var _0x509e3e={};_0x509e3e[_0x192ab1['name']]={'$like':'%'+_0x2266a1['query'][_0x48eb('0x3b')]+'%'};return _0x509e3e;}})});}_0x4de1e2=_[_0x48eb('0x3c')]({},_0x4de1e2,_0x2266a1[_0x48eb('0x3d')]);var _0x33c98b={'where':_0x4de1e2[_0x48eb('0x36')]};return db[_0x48eb('0x27')][_0x48eb('0x1a')](_0x33c98b)[_0x48eb('0x20')](function(_0x2ca311){_0x482825[_0x48eb('0x1a')]=_0x2ca311;if(_0x2266a1['query'][_0x48eb('0x3e')]){_0x4de1e2[_0x48eb('0x3f')]=[{'all':!![]}];}return db[_0x48eb('0x27')]['findAll'](_0x4de1e2);})[_0x48eb('0x20')](function(_0x29eb22){_0x482825['rows']=_0x29eb22;return _0x482825;})[_0x48eb('0x20')](respondWithFilteredResult(_0x1e126f,_0x4de1e2))[_0x48eb('0x40')](handleError(_0x1e126f,null));};exports[_0x48eb('0x41')]=function(_0x2090c6,_0x2b6b9e){var _0x10e3ad={'raw':!![],'where':{'id':_0x2090c6['params']['id']}},_0x28ae12={};_0x28ae12[_0x48eb('0x2b')]=_['keys'](db['Variable'][_0x48eb('0x28')]);_0x28ae12[_0x48eb('0x2c')]=_[_0x48eb('0x2d')](_0x2090c6[_0x48eb('0x2c')]);_0x28ae12[_0x48eb('0x37')]=_['intersection'](_0x28ae12[_0x48eb('0x2b')],_0x28ae12['query']);_0x10e3ad['attributes']=_[_0x48eb('0x2e')](_0x28ae12[_0x48eb('0x2b')],qs[_0x48eb('0x2f')](_0x2090c6[_0x48eb('0x2c')][_0x48eb('0x2f')]));_0x10e3ad[_0x48eb('0x30')]=_0x10e3ad[_0x48eb('0x30')][_0x48eb('0x31')]?_0x10e3ad[_0x48eb('0x30')]:_0x28ae12[_0x48eb('0x2b')];if(_0x2090c6[_0x48eb('0x2c')][_0x48eb('0x3e')]){_0x10e3ad[_0x48eb('0x3f')]=[{'all':!![]}];}_0x10e3ad=_[_0x48eb('0x3c')]({},_0x10e3ad,_0x2090c6['options']);return db['Variable'][_0x48eb('0x42')](_0x10e3ad)[_0x48eb('0x20')](handleEntityNotFound(_0x2b6b9e,null))[_0x48eb('0x20')](respondWithResult(_0x2b6b9e,null))[_0x48eb('0x40')](handleError(_0x2b6b9e,null));};exports[_0x48eb('0x43')]=function(_0x3b6465,_0x338e6b){return db[_0x48eb('0x27')][_0x48eb('0x43')](_0x3b6465[_0x48eb('0x44')],{})[_0x48eb('0x20')](function(_0x148af3){var _0x59c907=_0x3b6465['user'][_0x48eb('0x22')]({'plain':!![]});if(!_0x59c907)throw new Error(_0x48eb('0x45'));if(_0x59c907[_0x48eb('0x46')]===_0x48eb('0x47')){var _0x3d78c1=_0x148af3['get']({'plain':!![]});var _0x30f97b='Variables';return db[_0x48eb('0x48')][_0x48eb('0x42')]({'where':{'name':_0x30f97b,'userProfileId':_0x59c907[_0x48eb('0x49')]},'raw':!![]})['then'](function(_0xb5942a){if(_0xb5942a&&_0xb5942a[_0x48eb('0x4a')]===0x0){return db[_0x48eb('0x24')][_0x48eb('0x43')]({'name':_0x3d78c1[_0x48eb('0x25')],'resourceId':_0x3d78c1['id'],'type':_0xb5942a['name'],'sectionId':_0xb5942a['id']},{})['then'](function(){return _0x148af3;});}else{return _0x148af3;}})[_0x48eb('0x40')](function(_0x207841){logger['error'](_0x48eb('0x4b'),_0x207841);throw _0x207841;});}return _0x148af3;})[_0x48eb('0x20')](respondWithResult(_0x338e6b,0xc9))[_0x48eb('0x40')](handleError(_0x338e6b,null));};exports['update']=function(_0x1f02ca,_0x2564c4){if(_0x1f02ca[_0x48eb('0x44')]['id']){delete _0x1f02ca[_0x48eb('0x44')]['id'];}return db[_0x48eb('0x27')][_0x48eb('0x42')]({'where':{'id':_0x1f02ca[_0x48eb('0x4c')]['id']}})[_0x48eb('0x20')](handleEntityNotFound(_0x2564c4,null))[_0x48eb('0x20')](saveUpdates(_0x1f02ca[_0x48eb('0x44')],null))[_0x48eb('0x20')](respondWithResult(_0x2564c4,null))['catch'](handleError(_0x2564c4,null));};exports[_0x48eb('0x21')]=function(_0x3f02e3,_0x177ee8){return db['Variable'][_0x48eb('0x42')]({'where':{'id':_0x3f02e3['params']['id']}})[_0x48eb('0x20')](handleEntityNotFound(_0x177ee8,null))[_0x48eb('0x20')](removeEntity(_0x177ee8,null))['catch'](handleError(_0x177ee8,null));};