Built motion from commit da617fac.|2.6.6
[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 _0x8192=['find','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','end','status','undefined','limit','count','offset','set','json','apply','reject','update','then','destroy','get','UserProfileResource','sendStatus','error','stack','send','index','map','Variable','rawAttributes','fieldName','key','name','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','filters','pick','filter','where','merge','type','VIRTUAL','options','findAll','rows','show','params','includeAll','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','Variables','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x3cfb0d,_0x4df584){var _0x3486b4=function(_0x1b0939){while(--_0x1b0939){_0x3cfb0d['push'](_0x3cfb0d['shift']());}};_0x3486b4(++_0x4df584);}(_0x8192,0x1aa));var _0x2819=function(_0x3e11b9,_0x346e8c){_0x3e11b9=_0x3e11b9-0x0;var _0x178dd1=_0x8192[_0x3e11b9];return _0x178dd1;};'use strict';var emlformat=require(_0x2819('0x0'));var rimraf=require(_0x2819('0x1'));var zipdir=require(_0x2819('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2819('0x3'));var moment=require(_0x2819('0x4'));var BPromise=require(_0x2819('0x5'));var Mustache=require(_0x2819('0x6'));var util=require(_0x2819('0x7'));var path=require(_0x2819('0x8'));var sox=require(_0x2819('0x9'));var csv=require(_0x2819('0xa'));var ejs=require(_0x2819('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2819('0xc'));var squel=require(_0x2819('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x2819('0xe'));var toCsv=require(_0x2819('0xa'));var querystring=require(_0x2819('0xf'));var Papa=require(_0x2819('0x10'));var Redis=require('ioredis');var authService=require(_0x2819('0x11'));var qs=require(_0x2819('0x12'));var as=require(_0x2819('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2819('0x14'))(_0x2819('0x15'));var utils=require(_0x2819('0x16'));var config=require(_0x2819('0x17'));var licenseUtil=require(_0x2819('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2e149f,_0x45e73b){_0x45e73b=_0x45e73b||0xcc;return function(_0x1ee2d3){if(_0x1ee2d3){return _0x2e149f['sendStatus'](_0x45e73b);}return _0x2e149f['status'](_0x45e73b)[_0x2819('0x19')]();};}function respondWithResult(_0x190f5e,_0x2b1c78){_0x2b1c78=_0x2b1c78||0xc8;return function(_0x415c82){if(_0x415c82){return _0x190f5e[_0x2819('0x1a')](_0x2b1c78)['json'](_0x415c82);}};}function respondWithFilteredResult(_0x5c50a2,_0xefe04d){return function(_0x5f2dc5){if(_0x5f2dc5){var _0x55960a=typeof _0xefe04d['offset']===_0x2819('0x1b')&&typeof _0xefe04d[_0x2819('0x1c')]===_0x2819('0x1b');var _0x1b8232=_0x5f2dc5[_0x2819('0x1d')];var _0x27fd55=_0x55960a?0x0:_0xefe04d[_0x2819('0x1e')];var _0x2d8cc4=_0x55960a?_0x5f2dc5[_0x2819('0x1d')]:_0xefe04d[_0x2819('0x1e')]+_0xefe04d[_0x2819('0x1c')];var _0x1b494d;if(_0x2d8cc4>=_0x1b8232){_0x2d8cc4=_0x1b8232;_0x1b494d=0xc8;}else{_0x1b494d=0xce;}_0x5c50a2[_0x2819('0x1a')](_0x1b494d);return _0x5c50a2[_0x2819('0x1f')]('Content-Range',_0x27fd55+'-'+_0x2d8cc4+'/'+_0x1b8232)[_0x2819('0x20')](_0x5f2dc5);}return null;};}function patchUpdates(_0xb008fe){return function(_0x4ca0c8){try{jsonpatch[_0x2819('0x21')](_0x4ca0c8,_0xb008fe,!![]);}catch(_0x254639){return BPromise[_0x2819('0x22')](_0x254639);}return _0x4ca0c8['save']();};}function saveUpdates(_0x4ac9d5,_0x592f52){return function(_0x33cc2f){if(_0x33cc2f){return _0x33cc2f[_0x2819('0x23')](_0x4ac9d5)[_0x2819('0x24')](function(_0x2dbea4){return _0x2dbea4;});}return null;};}function removeEntity(_0x53aa94,_0x10bb69){return function(_0xad93fb){if(_0xad93fb){return _0xad93fb[_0x2819('0x25')]()[_0x2819('0x24')](function(){var _0x556a94=_0xad93fb[_0x2819('0x26')]({'plain':!![]});var _0x5a5d9f='Variables';return db[_0x2819('0x27')][_0x2819('0x25')]({'where':{'type':_0x5a5d9f,'resourceId':_0x556a94['id']}})['then'](function(){return _0xad93fb;});})['then'](function(){_0x53aa94[_0x2819('0x1a')](0xcc)[_0x2819('0x19')]();});}};}function handleEntityNotFound(_0x22da4d,_0x357b54){return function(_0x30eda2){if(!_0x30eda2){_0x22da4d[_0x2819('0x28')](0x194);}return _0x30eda2;};}function handleError(_0x49d46f,_0x1ee019){_0x1ee019=_0x1ee019||0x1f4;return function(_0x56c070){logger[_0x2819('0x29')](_0x56c070[_0x2819('0x2a')]);if(_0x56c070['name']){delete _0x56c070['name'];}_0x49d46f[_0x2819('0x1a')](_0x1ee019)[_0x2819('0x2b')](_0x56c070);};}exports[_0x2819('0x2c')]=function(_0x2ccdaf,_0x2a6f6e){var _0x20d908={},_0x1342ab={},_0x179e95={'count':0x0,'rows':[]};var _0x28ba75=_[_0x2819('0x2d')](db[_0x2819('0x2e')][_0x2819('0x2f')],function(_0x47ee7a){return{'name':_0x47ee7a[_0x2819('0x30')],'type':_0x47ee7a['type'][_0x2819('0x31')]};});_0x1342ab['model']=_[_0x2819('0x2d')](_0x28ba75,_0x2819('0x32'));_0x1342ab[_0x2819('0x33')]=_[_0x2819('0x34')](_0x2ccdaf['query']);_0x1342ab['filters']=_[_0x2819('0x35')](_0x1342ab[_0x2819('0x36')],_0x1342ab['query']);_0x20d908[_0x2819('0x37')]=_[_0x2819('0x35')](_0x1342ab[_0x2819('0x36')],qs[_0x2819('0x38')](_0x2ccdaf['query'][_0x2819('0x38')]));_0x20d908['attributes']=_0x20d908[_0x2819('0x37')][_0x2819('0x39')]?_0x20d908[_0x2819('0x37')]:_0x1342ab['model'];if(!_0x2ccdaf['query'][_0x2819('0x3a')](_0x2819('0x3b'))){_0x20d908['limit']=qs[_0x2819('0x1c')](_0x2ccdaf[_0x2819('0x33')][_0x2819('0x1c')]);_0x20d908[_0x2819('0x1e')]=qs['offset'](_0x2ccdaf[_0x2819('0x33')]['offset']);}_0x20d908['order']=qs[_0x2819('0x3c')](_0x2ccdaf[_0x2819('0x33')][_0x2819('0x3c')]);_0x20d908['where']=qs[_0x2819('0x3d')](_[_0x2819('0x3e')](_0x2ccdaf[_0x2819('0x33')],_0x1342ab[_0x2819('0x3d')]),_0x28ba75);if(_0x2ccdaf[_0x2819('0x33')][_0x2819('0x3f')]){_0x20d908[_0x2819('0x40')]=_[_0x2819('0x41')](_0x20d908[_0x2819('0x40')],{'$or':_[_0x2819('0x2d')](_0x28ba75,function(_0x2d29cf){if(_0x2d29cf[_0x2819('0x42')]!==_0x2819('0x43')){var _0x820185={};_0x820185[_0x2d29cf[_0x2819('0x32')]]={'$like':'%'+_0x2ccdaf[_0x2819('0x33')][_0x2819('0x3f')]+'%'};return _0x820185;}})});}_0x20d908=_[_0x2819('0x41')]({},_0x20d908,_0x2ccdaf[_0x2819('0x44')]);var _0x38573b={'where':_0x20d908[_0x2819('0x40')]};return db[_0x2819('0x2e')][_0x2819('0x1d')](_0x38573b)['then'](function(_0x45d8a6){_0x179e95['count']=_0x45d8a6;if(_0x2ccdaf[_0x2819('0x33')]['includeAll']){_0x20d908['include']=[{'all':!![]}];}return db[_0x2819('0x2e')][_0x2819('0x45')](_0x20d908);})['then'](function(_0x4af61f){_0x179e95[_0x2819('0x46')]=_0x4af61f;return _0x179e95;})['then'](respondWithFilteredResult(_0x2a6f6e,_0x20d908))['catch'](handleError(_0x2a6f6e,null));};exports[_0x2819('0x47')]=function(_0x38d75a,_0x10ba4a){var _0x37b621={'raw':!![],'where':{'id':_0x38d75a[_0x2819('0x48')]['id']}},_0x4678cd={};_0x4678cd[_0x2819('0x36')]=_[_0x2819('0x34')](db[_0x2819('0x2e')][_0x2819('0x2f')]);_0x4678cd[_0x2819('0x33')]=_[_0x2819('0x34')](_0x38d75a[_0x2819('0x33')]);_0x4678cd[_0x2819('0x3d')]=_[_0x2819('0x35')](_0x4678cd[_0x2819('0x36')],_0x4678cd[_0x2819('0x33')]);_0x37b621[_0x2819('0x37')]=_[_0x2819('0x35')](_0x4678cd[_0x2819('0x36')],qs[_0x2819('0x38')](_0x38d75a[_0x2819('0x33')][_0x2819('0x38')]));_0x37b621['attributes']=_0x37b621[_0x2819('0x37')][_0x2819('0x39')]?_0x37b621['attributes']:_0x4678cd[_0x2819('0x36')];if(_0x38d75a[_0x2819('0x33')][_0x2819('0x49')]){_0x37b621['include']=[{'all':!![]}];}_0x37b621=_[_0x2819('0x41')]({},_0x37b621,_0x38d75a[_0x2819('0x44')]);return db[_0x2819('0x2e')]['find'](_0x37b621)[_0x2819('0x24')](handleEntityNotFound(_0x10ba4a,null))[_0x2819('0x24')](respondWithResult(_0x10ba4a,null))[_0x2819('0x4a')](handleError(_0x10ba4a,null));};exports['create']=function(_0x1b9674,_0x5074cb){return db['Variable'][_0x2819('0x4b')](_0x1b9674[_0x2819('0x4c')],{})[_0x2819('0x24')](function(_0x2287a3){var _0x1e854a=_0x1b9674['user']['get']({'plain':!![]});if(!_0x1e854a)throw new Error(_0x2819('0x4d'));if(_0x1e854a[_0x2819('0x4e')]===_0x2819('0x4f')){var _0x61e9cb=_0x2287a3[_0x2819('0x26')]({'plain':!![]});var _0x64a75d=_0x2819('0x50');return db[_0x2819('0x51')]['find']({'where':{'name':_0x64a75d,'userProfileId':_0x1e854a[_0x2819('0x52')]},'raw':!![]})[_0x2819('0x24')](function(_0x1a9d6b){if(_0x1a9d6b&&_0x1a9d6b['autoAssociation']===0x0){return db[_0x2819('0x27')][_0x2819('0x4b')]({'name':_0x61e9cb[_0x2819('0x32')],'resourceId':_0x61e9cb['id'],'type':_0x1a9d6b[_0x2819('0x32')],'sectionId':_0x1a9d6b['id']},{})[_0x2819('0x24')](function(){return _0x2287a3;});}else{return _0x2287a3;}})[_0x2819('0x4a')](function(_0x148500){logger['error'](_0x2819('0x53'),_0x148500);throw _0x148500;});}return _0x2287a3;})[_0x2819('0x24')](respondWithResult(_0x5074cb,0xc9))['catch'](handleError(_0x5074cb,null));};exports[_0x2819('0x23')]=function(_0x2c0c40,_0x3d259e){if(_0x2c0c40[_0x2819('0x4c')]['id']){delete _0x2c0c40[_0x2819('0x4c')]['id'];}return db[_0x2819('0x2e')]['find']({'where':{'id':_0x2c0c40['params']['id']}})['then'](handleEntityNotFound(_0x3d259e,null))[_0x2819('0x24')](saveUpdates(_0x2c0c40[_0x2819('0x4c')],null))[_0x2819('0x24')](respondWithResult(_0x3d259e,null))[_0x2819('0x4a')](handleError(_0x3d259e,null));};exports[_0x2819('0x25')]=function(_0x2b4b5b,_0x1ed76f){return db[_0x2819('0x2e')][_0x2819('0x54')]({'where':{'id':_0x2b4b5b[_0x2819('0x48')]['id']}})[_0x2819('0x24')](handleEntityNotFound(_0x1ed76f,null))['then'](removeEntity(_0x1ed76f,null))['catch'](handleError(_0x1ed76f,null));};