Built motion from commit efa66e19.|2.6.22
[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 _0xc176=['ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','destroy','then','get','Variables','UserProfileResource','stack','name','send','map','Variable','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','rawAttributes','options','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse'];(function(_0x2fcf72,_0x426591){var _0x4a19e0=function(_0x380251){while(--_0x380251){_0x2fcf72['push'](_0x2fcf72['shift']());}};_0x4a19e0(++_0x426591);}(_0xc176,0x19d));var _0x6c17=function(_0x101802,_0x11f913){_0x101802=_0x101802-0x0;var _0x5d61ce=_0xc176[_0x101802];return _0x5d61ce;};'use strict';var emlformat=require(_0x6c17('0x0'));var rimraf=require(_0x6c17('0x1'));var zipdir=require(_0x6c17('0x2'));var jsonpatch=require(_0x6c17('0x3'));var rp=require(_0x6c17('0x4'));var moment=require(_0x6c17('0x5'));var BPromise=require(_0x6c17('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x6c17('0x7'));var sox=require(_0x6c17('0x8'));var csv=require(_0x6c17('0x9'));var ejs=require(_0x6c17('0xa'));var fs=require('fs');var fs_extra=require(_0x6c17('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x6c17('0xc'));var jsforce=require(_0x6c17('0xd'));var deskjs=require(_0x6c17('0xe'));var toCsv=require(_0x6c17('0x9'));var querystring=require(_0x6c17('0xf'));var Papa=require(_0x6c17('0x10'));var Redis=require(_0x6c17('0x11'));var authService=require(_0x6c17('0x12'));var qs=require(_0x6c17('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6c17('0x14'));var logger=require('../../config/logger')(_0x6c17('0x15'));var utils=require(_0x6c17('0x16'));var config=require(_0x6c17('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x6c17('0x18'))['db'];function respondWithStatusCode(_0x58fab4,_0x197dab){_0x197dab=_0x197dab||0xcc;return function(_0x59af11){if(_0x59af11){return _0x58fab4[_0x6c17('0x19')](_0x197dab);}return _0x58fab4[_0x6c17('0x1a')](_0x197dab)[_0x6c17('0x1b')]();};}function respondWithResult(_0x2dc881,_0x493ce4){_0x493ce4=_0x493ce4||0xc8;return function(_0x49ba59){if(_0x49ba59){return _0x2dc881[_0x6c17('0x1a')](_0x493ce4)[_0x6c17('0x1c')](_0x49ba59);}};}function respondWithFilteredResult(_0x5e827b,_0x8df1d7){return function(_0x5df8b8){if(_0x5df8b8){var _0x330769=typeof _0x8df1d7['offset']===_0x6c17('0x1d')&&typeof _0x8df1d7[_0x6c17('0x1e')]===_0x6c17('0x1d');var _0x2d5d21=_0x5df8b8[_0x6c17('0x1f')];var _0x599f6b=_0x330769?0x0:_0x8df1d7['offset'];var _0x4165b1=_0x330769?_0x5df8b8[_0x6c17('0x1f')]:_0x8df1d7[_0x6c17('0x20')]+_0x8df1d7[_0x6c17('0x1e')];var _0xdf82e6;if(_0x4165b1>=_0x2d5d21){_0x4165b1=_0x2d5d21;_0xdf82e6=0xc8;}else{_0xdf82e6=0xce;}_0x5e827b[_0x6c17('0x1a')](_0xdf82e6);return _0x5e827b[_0x6c17('0x21')](_0x6c17('0x22'),_0x599f6b+'-'+_0x4165b1+'/'+_0x2d5d21)[_0x6c17('0x1c')](_0x5df8b8);}return null;};}function patchUpdates(_0x9a562b){return function(_0x4d349b){try{jsonpatch[_0x6c17('0x23')](_0x4d349b,_0x9a562b,!![]);}catch(_0x1e72fb){return BPromise['reject'](_0x1e72fb);}return _0x4d349b[_0x6c17('0x24')]();};}function saveUpdates(_0x37e44c,_0x55ecd2){return function(_0x5c1392){if(_0x5c1392){return _0x5c1392[_0x6c17('0x25')](_0x37e44c)['then'](function(_0x3c83bb){return _0x3c83bb;});}return null;};}function removeEntity(_0xa89f12,_0x1b2154){return function(_0x11772e){if(_0x11772e){return _0x11772e[_0x6c17('0x26')]()[_0x6c17('0x27')](function(){var _0x3b7c33=_0x11772e[_0x6c17('0x28')]({'plain':!![]});var _0x2ec3ea=_0x6c17('0x29');return db[_0x6c17('0x2a')]['destroy']({'where':{'type':_0x2ec3ea,'resourceId':_0x3b7c33['id']}})[_0x6c17('0x27')](function(){return _0x11772e;});})[_0x6c17('0x27')](function(){_0xa89f12[_0x6c17('0x1a')](0xcc)[_0x6c17('0x1b')]();});}};}function handleEntityNotFound(_0x4091e9,_0x3f9505){return function(_0x1bfd9f){if(!_0x1bfd9f){_0x4091e9['sendStatus'](0x194);}return _0x1bfd9f;};}function handleError(_0x367064,_0x8b13e7){_0x8b13e7=_0x8b13e7||0x1f4;return function(_0xf54804){logger['error'](_0xf54804[_0x6c17('0x2b')]);if(_0xf54804[_0x6c17('0x2c')]){delete _0xf54804['name'];}_0x367064['status'](_0x8b13e7)[_0x6c17('0x2d')](_0xf54804);};}exports['index']=function(_0x4d8114,_0x5d6ae7){var _0x341421={},_0x3660cd={},_0x4b4a5c={'count':0x0,'rows':[]};var _0x29cba2=_[_0x6c17('0x2e')](db[_0x6c17('0x2f')]['rawAttributes'],function(_0x457d1){return{'name':_0x457d1[_0x6c17('0x30')],'type':_0x457d1[_0x6c17('0x31')][_0x6c17('0x32')]};});_0x3660cd[_0x6c17('0x33')]=_[_0x6c17('0x2e')](_0x29cba2,'name');_0x3660cd[_0x6c17('0x34')]=_[_0x6c17('0x35')](_0x4d8114[_0x6c17('0x34')]);_0x3660cd[_0x6c17('0x36')]=_[_0x6c17('0x37')](_0x3660cd[_0x6c17('0x33')],_0x3660cd['query']);_0x341421[_0x6c17('0x38')]=_[_0x6c17('0x37')](_0x3660cd['model'],qs[_0x6c17('0x39')](_0x4d8114[_0x6c17('0x34')][_0x6c17('0x39')]));_0x341421[_0x6c17('0x38')]=_0x341421['attributes'][_0x6c17('0x3a')]?_0x341421[_0x6c17('0x38')]:_0x3660cd[_0x6c17('0x33')];if(!_0x4d8114['query'][_0x6c17('0x3b')](_0x6c17('0x3c'))){_0x341421[_0x6c17('0x1e')]=qs[_0x6c17('0x1e')](_0x4d8114[_0x6c17('0x34')][_0x6c17('0x1e')]);_0x341421[_0x6c17('0x20')]=qs[_0x6c17('0x20')](_0x4d8114[_0x6c17('0x34')]['offset']);}_0x341421[_0x6c17('0x3d')]=qs[_0x6c17('0x3e')](_0x4d8114[_0x6c17('0x34')][_0x6c17('0x3e')]);_0x341421['where']=qs[_0x6c17('0x36')](_[_0x6c17('0x3f')](_0x4d8114[_0x6c17('0x34')],_0x3660cd[_0x6c17('0x36')]),_0x29cba2);if(_0x4d8114['query']['filter']){_0x341421['where']=_[_0x6c17('0x40')](_0x341421['where'],{'$or':_['map'](_0x29cba2,function(_0xa0fa12){if(_0xa0fa12['type']!==_0x6c17('0x41')){var _0x195e87={};_0x195e87[_0xa0fa12[_0x6c17('0x2c')]]={'$like':'%'+_0x4d8114[_0x6c17('0x34')]['filter']+'%'};return _0x195e87;}})});}_0x341421=_[_0x6c17('0x40')]({},_0x341421,_0x4d8114['options']);var _0x27cdfe={'where':_0x341421['where']};return db['Variable'][_0x6c17('0x1f')](_0x27cdfe)[_0x6c17('0x27')](function(_0x2df06b){_0x4b4a5c[_0x6c17('0x1f')]=_0x2df06b;if(_0x4d8114['query'][_0x6c17('0x42')]){_0x341421[_0x6c17('0x43')]=[{'all':!![]}];}return db[_0x6c17('0x2f')][_0x6c17('0x44')](_0x341421);})[_0x6c17('0x27')](function(_0x91e525){_0x4b4a5c[_0x6c17('0x45')]=_0x91e525;return _0x4b4a5c;})['then'](respondWithFilteredResult(_0x5d6ae7,_0x341421))['catch'](handleError(_0x5d6ae7,null));};exports[_0x6c17('0x46')]=function(_0x382697,_0x5cb542){var _0x4a8390={'raw':!![],'where':{'id':_0x382697[_0x6c17('0x47')]['id']}},_0x10e5cf={};_0x10e5cf[_0x6c17('0x33')]=_[_0x6c17('0x35')](db[_0x6c17('0x2f')][_0x6c17('0x48')]);_0x10e5cf[_0x6c17('0x34')]=_[_0x6c17('0x35')](_0x382697[_0x6c17('0x34')]);_0x10e5cf['filters']=_[_0x6c17('0x37')](_0x10e5cf[_0x6c17('0x33')],_0x10e5cf[_0x6c17('0x34')]);_0x4a8390['attributes']=_[_0x6c17('0x37')](_0x10e5cf[_0x6c17('0x33')],qs['fields'](_0x382697[_0x6c17('0x34')][_0x6c17('0x39')]));_0x4a8390[_0x6c17('0x38')]=_0x4a8390[_0x6c17('0x38')][_0x6c17('0x3a')]?_0x4a8390[_0x6c17('0x38')]:_0x10e5cf[_0x6c17('0x33')];if(_0x382697[_0x6c17('0x34')]['includeAll']){_0x4a8390[_0x6c17('0x43')]=[{'all':!![]}];}_0x4a8390=_['merge']({},_0x4a8390,_0x382697[_0x6c17('0x49')]);return db[_0x6c17('0x2f')][_0x6c17('0x4a')](_0x4a8390)[_0x6c17('0x27')](handleEntityNotFound(_0x5cb542,null))[_0x6c17('0x27')](respondWithResult(_0x5cb542,null))[_0x6c17('0x4b')](handleError(_0x5cb542,null));};exports[_0x6c17('0x4c')]=function(_0x126aba,_0x2126e1){return db[_0x6c17('0x2f')][_0x6c17('0x4c')](_0x126aba['body'],{})[_0x6c17('0x27')](function(_0x535b31){var _0x5b133e=_0x126aba[_0x6c17('0x4d')][_0x6c17('0x28')]({'plain':!![]});if(!_0x5b133e)throw new Error(_0x6c17('0x4e'));if(_0x5b133e[_0x6c17('0x4f')]===_0x6c17('0x4d')){var _0x32702b=_0x535b31[_0x6c17('0x28')]({'plain':!![]});var _0x5c0e79='Variables';return db[_0x6c17('0x50')]['find']({'where':{'name':_0x5c0e79,'userProfileId':_0x5b133e[_0x6c17('0x51')]},'raw':!![]})[_0x6c17('0x27')](function(_0x4b428f){if(_0x4b428f&&_0x4b428f[_0x6c17('0x52')]===0x0){return db['UserProfileResource'][_0x6c17('0x4c')]({'name':_0x32702b['name'],'resourceId':_0x32702b['id'],'type':_0x4b428f[_0x6c17('0x2c')],'sectionId':_0x4b428f['id']},{})[_0x6c17('0x27')](function(){return _0x535b31;});}else{return _0x535b31;}})[_0x6c17('0x4b')](function(_0x2915c7){logger[_0x6c17('0x53')](_0x6c17('0x54'),_0x2915c7);throw _0x2915c7;});}return _0x535b31;})['then'](respondWithResult(_0x2126e1,0xc9))[_0x6c17('0x4b')](handleError(_0x2126e1,null));};exports[_0x6c17('0x25')]=function(_0x1f292d,_0x199b64){if(_0x1f292d[_0x6c17('0x55')]['id']){delete _0x1f292d[_0x6c17('0x55')]['id'];}return db['Variable']['find']({'where':{'id':_0x1f292d[_0x6c17('0x47')]['id']}})['then'](handleEntityNotFound(_0x199b64,null))[_0x6c17('0x27')](saveUpdates(_0x1f292d[_0x6c17('0x55')],null))[_0x6c17('0x27')](respondWithResult(_0x199b64,null))[_0x6c17('0x4b')](handleError(_0x199b64,null));};exports[_0x6c17('0x26')]=function(_0x1a81b1,_0x2eded8){return db[_0x6c17('0x2f')][_0x6c17('0x4a')]({'where':{'id':_0x1a81b1[_0x6c17('0x47')]['id']}})[_0x6c17('0x27')](handleEntityNotFound(_0x2eded8,null))[_0x6c17('0x27')](removeEntity(_0x2eded8,null))[_0x6c17('0x4b')](handleError(_0x2eded8,null));};