14b2a85008ff90f38f77df90fac8f049b8f6efbd
[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 _0x6ecb=['eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','get','Variables','destroy','then','error','name','rawAttributes','fieldName','type','key','map','query','keys','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge','options','Variable','include','rows','catch','show','includeAll','find','create','user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params'];(function(_0x1140f0,_0xb3ea4c){var _0x6c2ed3=function(_0x46d9ba){while(--_0x46d9ba){_0x1140f0['push'](_0x1140f0['shift']());}};_0x6c2ed3(++_0xb3ea4c);}(_0x6ecb,0xa8));var _0xb6ec=function(_0x490662,_0x1611bd){_0x490662=_0x490662-0x0;var _0x5b2ffc=_0x6ecb[_0x490662];return _0x5b2ffc;};'use strict';var emlformat=require(_0xb6ec('0x0'));var rimraf=require(_0xb6ec('0x1'));var zipdir=require(_0xb6ec('0x2'));var jsonpatch=require(_0xb6ec('0x3'));var rp=require(_0xb6ec('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xb6ec('0x5'));var util=require(_0xb6ec('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xb6ec('0x7'));var fs=require('fs');var fs_extra=require(_0xb6ec('0x8'));var _=require(_0xb6ec('0x9'));var squel=require(_0xb6ec('0xa'));var crypto=require(_0xb6ec('0xb'));var jsforce=require(_0xb6ec('0xc'));var deskjs=require(_0xb6ec('0xd'));var toCsv=require(_0xb6ec('0xe'));var querystring=require(_0xb6ec('0xf'));var Papa=require(_0xb6ec('0x10'));var Redis=require(_0xb6ec('0x11'));var authService=require(_0xb6ec('0x12'));var qs=require(_0xb6ec('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb6ec('0x14'));var logger=require(_0xb6ec('0x15'))(_0xb6ec('0x16'));var utils=require(_0xb6ec('0x17'));var config=require(_0xb6ec('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xb6ec('0x19'))['db'];function respondWithStatusCode(_0x14deed,_0x90ebd3){_0x90ebd3=_0x90ebd3||0xcc;return function(_0x206877){if(_0x206877){return _0x14deed[_0xb6ec('0x1a')](_0x90ebd3);}return _0x14deed[_0xb6ec('0x1b')](_0x90ebd3)[_0xb6ec('0x1c')]();};}function respondWithResult(_0x1c0689,_0x270876){_0x270876=_0x270876||0xc8;return function(_0x3d10e8){if(_0x3d10e8){return _0x1c0689[_0xb6ec('0x1b')](_0x270876)['json'](_0x3d10e8);}};}function respondWithFilteredResult(_0x335307,_0x208f1f){return function(_0x509726){if(_0x509726){var _0x2e000e=typeof _0x208f1f[_0xb6ec('0x1d')]===_0xb6ec('0x1e')&&typeof _0x208f1f[_0xb6ec('0x1f')]===_0xb6ec('0x1e');var _0xb3c508=_0x509726[_0xb6ec('0x20')];var _0x327d58=_0x2e000e?0x0:_0x208f1f['offset'];var _0x2fb696=_0x2e000e?_0x509726['count']:_0x208f1f['offset']+_0x208f1f[_0xb6ec('0x1f')];var _0x516059;if(_0x2fb696>=_0xb3c508){_0x2fb696=_0xb3c508;_0x516059=0xc8;}else{_0x516059=0xce;}_0x335307[_0xb6ec('0x1b')](_0x516059);return _0x335307[_0xb6ec('0x21')](_0xb6ec('0x22'),_0x327d58+'-'+_0x2fb696+'/'+_0xb3c508)[_0xb6ec('0x23')](_0x509726);}return null;};}function patchUpdates(_0x2bf8bf){return function(_0x306d5f){try{jsonpatch[_0xb6ec('0x24')](_0x306d5f,_0x2bf8bf,!![]);}catch(_0x591f9){return BPromise[_0xb6ec('0x25')](_0x591f9);}return _0x306d5f['save']();};}function saveUpdates(_0x3f2307,_0x207b92){return function(_0x1316c3){if(_0x1316c3){return _0x1316c3['update'](_0x3f2307)['then'](function(_0x4cf230){return _0x4cf230;});}return null;};}function removeEntity(_0x4493d9,_0x433002){return function(_0x4f70d9){if(_0x4f70d9){return _0x4f70d9['destroy']()['then'](function(){var _0x1aeb1f=_0x4f70d9[_0xb6ec('0x26')]({'plain':!![]});var _0xb54e3d=_0xb6ec('0x27');return db['UserProfileResource'][_0xb6ec('0x28')]({'where':{'type':_0xb54e3d,'resourceId':_0x1aeb1f['id']}})[_0xb6ec('0x29')](function(){return _0x4f70d9;});})[_0xb6ec('0x29')](function(){_0x4493d9[_0xb6ec('0x1b')](0xcc)[_0xb6ec('0x1c')]();});}};}function handleEntityNotFound(_0x303872,_0x16aad9){return function(_0x2de899){if(!_0x2de899){_0x303872[_0xb6ec('0x1a')](0x194);}return _0x2de899;};}function handleError(_0x15a2a8,_0x4972c9){_0x4972c9=_0x4972c9||0x1f4;return function(_0x287e33){logger[_0xb6ec('0x2a')](_0x287e33['stack']);if(_0x287e33[_0xb6ec('0x2b')]){delete _0x287e33[_0xb6ec('0x2b')];}_0x15a2a8[_0xb6ec('0x1b')](_0x4972c9)['send'](_0x287e33);};}exports['index']=function(_0x2c5764,_0x43d6b1){var _0x1687ee={},_0x3e0dd4={},_0xa1f393={'count':0x0,'rows':[]};var _0x499483=_['map'](db['Variable'][_0xb6ec('0x2c')],function(_0x34675f){return{'name':_0x34675f[_0xb6ec('0x2d')],'type':_0x34675f[_0xb6ec('0x2e')][_0xb6ec('0x2f')]};});_0x3e0dd4['model']=_[_0xb6ec('0x30')](_0x499483,_0xb6ec('0x2b'));_0x3e0dd4[_0xb6ec('0x31')]=_[_0xb6ec('0x32')](_0x2c5764[_0xb6ec('0x31')]);_0x3e0dd4[_0xb6ec('0x33')]=_['intersection'](_0x3e0dd4[_0xb6ec('0x34')],_0x3e0dd4['query']);_0x1687ee[_0xb6ec('0x35')]=_[_0xb6ec('0x36')](_0x3e0dd4[_0xb6ec('0x34')],qs['fields'](_0x2c5764[_0xb6ec('0x31')][_0xb6ec('0x37')]));_0x1687ee[_0xb6ec('0x35')]=_0x1687ee[_0xb6ec('0x35')][_0xb6ec('0x38')]?_0x1687ee['attributes']:_0x3e0dd4[_0xb6ec('0x34')];if(!_0x2c5764['query'][_0xb6ec('0x39')](_0xb6ec('0x3a'))){_0x1687ee[_0xb6ec('0x1f')]=qs['limit'](_0x2c5764[_0xb6ec('0x31')]['limit']);_0x1687ee[_0xb6ec('0x1d')]=qs[_0xb6ec('0x1d')](_0x2c5764[_0xb6ec('0x31')][_0xb6ec('0x1d')]);}_0x1687ee[_0xb6ec('0x3b')]=qs[_0xb6ec('0x3c')](_0x2c5764[_0xb6ec('0x31')][_0xb6ec('0x3c')]);_0x1687ee[_0xb6ec('0x3d')]=qs[_0xb6ec('0x33')](_['pick'](_0x2c5764[_0xb6ec('0x31')],_0x3e0dd4[_0xb6ec('0x33')]),_0x499483);if(_0x2c5764['query'][_0xb6ec('0x3e')]){_0x1687ee[_0xb6ec('0x3d')]=_['merge'](_0x1687ee['where'],{'$or':_[_0xb6ec('0x30')](_0x499483,function(_0x3dcedf){if(_0x3dcedf[_0xb6ec('0x2e')]!==_0xb6ec('0x3f')){var _0x2d769f={};_0x2d769f[_0x3dcedf[_0xb6ec('0x2b')]]={'$like':'%'+_0x2c5764[_0xb6ec('0x31')][_0xb6ec('0x3e')]+'%'};return _0x2d769f;}})});}_0x1687ee=_[_0xb6ec('0x40')]({},_0x1687ee,_0x2c5764[_0xb6ec('0x41')]);var _0x585d01={'where':_0x1687ee[_0xb6ec('0x3d')]};return db[_0xb6ec('0x42')][_0xb6ec('0x20')](_0x585d01)[_0xb6ec('0x29')](function(_0x1f705d){_0xa1f393['count']=_0x1f705d;if(_0x2c5764[_0xb6ec('0x31')]['includeAll']){_0x1687ee[_0xb6ec('0x43')]=[{'all':!![]}];}return db[_0xb6ec('0x42')]['findAll'](_0x1687ee);})[_0xb6ec('0x29')](function(_0x4aff51){_0xa1f393[_0xb6ec('0x44')]=_0x4aff51;return _0xa1f393;})[_0xb6ec('0x29')](respondWithFilteredResult(_0x43d6b1,_0x1687ee))[_0xb6ec('0x45')](handleError(_0x43d6b1,null));};exports[_0xb6ec('0x46')]=function(_0x1f6189,_0x14f01c){var _0x82ee4b={'raw':!![],'where':{'id':_0x1f6189['params']['id']}},_0x53eec1={};_0x53eec1[_0xb6ec('0x34')]=_['keys'](db[_0xb6ec('0x42')][_0xb6ec('0x2c')]);_0x53eec1['query']=_[_0xb6ec('0x32')](_0x1f6189[_0xb6ec('0x31')]);_0x53eec1[_0xb6ec('0x33')]=_[_0xb6ec('0x36')](_0x53eec1[_0xb6ec('0x34')],_0x53eec1[_0xb6ec('0x31')]);_0x82ee4b['attributes']=_[_0xb6ec('0x36')](_0x53eec1[_0xb6ec('0x34')],qs[_0xb6ec('0x37')](_0x1f6189[_0xb6ec('0x31')][_0xb6ec('0x37')]));_0x82ee4b[_0xb6ec('0x35')]=_0x82ee4b['attributes'][_0xb6ec('0x38')]?_0x82ee4b[_0xb6ec('0x35')]:_0x53eec1['model'];if(_0x1f6189[_0xb6ec('0x31')][_0xb6ec('0x47')]){_0x82ee4b[_0xb6ec('0x43')]=[{'all':!![]}];}_0x82ee4b=_['merge']({},_0x82ee4b,_0x1f6189['options']);return db[_0xb6ec('0x42')][_0xb6ec('0x48')](_0x82ee4b)[_0xb6ec('0x29')](handleEntityNotFound(_0x14f01c,null))[_0xb6ec('0x29')](respondWithResult(_0x14f01c,null))['catch'](handleError(_0x14f01c,null));};exports['create']=function(_0x2d53b7,_0x15bdab){return db[_0xb6ec('0x42')][_0xb6ec('0x49')](_0x2d53b7['body'],{})[_0xb6ec('0x29')](function(_0x51cc71){var _0x2c98dd=_0x2d53b7[_0xb6ec('0x4a')]['get']({'plain':!![]});if(!_0x2c98dd)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2c98dd[_0xb6ec('0x4b')]==='user'){var _0x3c55a9=_0x51cc71['get']({'plain':!![]});var _0x16f682=_0xb6ec('0x27');return db[_0xb6ec('0x4c')]['find']({'where':{'name':_0x16f682,'userProfileId':_0x2c98dd[_0xb6ec('0x4d')]},'raw':!![]})[_0xb6ec('0x29')](function(_0x17b8d6){if(_0x17b8d6&&_0x17b8d6[_0xb6ec('0x4e')]===0x0){return db[_0xb6ec('0x4f')]['create']({'name':_0x3c55a9[_0xb6ec('0x2b')],'resourceId':_0x3c55a9['id'],'type':_0x17b8d6[_0xb6ec('0x2b')],'sectionId':_0x17b8d6['id']},{})[_0xb6ec('0x29')](function(){return _0x51cc71;});}else{return _0x51cc71;}})[_0xb6ec('0x45')](function(_0x33025e){logger['error'](_0xb6ec('0x50'),_0x33025e);throw _0x33025e;});}return _0x51cc71;})['then'](respondWithResult(_0x15bdab,0xc9))[_0xb6ec('0x45')](handleError(_0x15bdab,null));};exports[_0xb6ec('0x51')]=function(_0x22567a,_0xdff456){if(_0x22567a[_0xb6ec('0x52')]['id']){delete _0x22567a[_0xb6ec('0x52')]['id'];}return db[_0xb6ec('0x42')]['find']({'where':{'id':_0x22567a['params']['id']}})[_0xb6ec('0x29')](handleEntityNotFound(_0xdff456,null))[_0xb6ec('0x29')](saveUpdates(_0x22567a['body'],null))[_0xb6ec('0x29')](respondWithResult(_0xdff456,null))[_0xb6ec('0x45')](handleError(_0xdff456,null));};exports['destroy']=function(_0x3e15a1,_0x25c4c6){return db[_0xb6ec('0x42')][_0xb6ec('0x48')]({'where':{'id':_0x3e15a1[_0xb6ec('0x53')]['id']}})[_0xb6ec('0x29')](handleEntityNotFound(_0x25c4c6,null))[_0xb6ec('0x29')](removeEntity(_0x25c4c6,null))['catch'](handleError(_0x25c4c6,null));};