36cb6e1dfc9557d5d4bb04f69436bf9697be6701
[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 _0xaab8=['params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','update','then','get','Variables','error','stack','send','index','map','Variable','rawAttributes','fieldName','key','model','name','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show'];(function(_0x58ea70,_0x4d8943){var _0x312ca1=function(_0x428e04){while(--_0x428e04){_0x58ea70['push'](_0x58ea70['shift']());}};_0x312ca1(++_0x4d8943);}(_0xaab8,0x1c9));var _0x8aab=function(_0x22447b,_0x975c4a){_0x22447b=_0x22447b-0x0;var _0x262aa5=_0xaab8[_0x22447b];return _0x262aa5;};'use strict';var emlformat=require(_0x8aab('0x0'));var rimraf=require(_0x8aab('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8aab('0x2'));var rp=require(_0x8aab('0x3'));var moment=require(_0x8aab('0x4'));var BPromise=require(_0x8aab('0x5'));var Mustache=require(_0x8aab('0x6'));var util=require('util');var path=require(_0x8aab('0x7'));var sox=require(_0x8aab('0x8'));var csv=require(_0x8aab('0x9'));var ejs=require(_0x8aab('0xa'));var fs=require('fs');var fs_extra=require(_0x8aab('0xb'));var _=require(_0x8aab('0xc'));var squel=require(_0x8aab('0xd'));var crypto=require(_0x8aab('0xe'));var jsforce=require(_0x8aab('0xf'));var deskjs=require(_0x8aab('0x10'));var toCsv=require(_0x8aab('0x9'));var querystring=require(_0x8aab('0x11'));var Papa=require('papaparse');var Redis=require(_0x8aab('0x12'));var authService=require(_0x8aab('0x13'));var qs=require(_0x8aab('0x14'));var as=require(_0x8aab('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8aab('0x16'))(_0x8aab('0x17'));var utils=require(_0x8aab('0x18'));var config=require(_0x8aab('0x19'));var licenseUtil=require(_0x8aab('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x427da8,_0x5be831){_0x5be831=_0x5be831||0xcc;return function(_0x1f92df){if(_0x1f92df){return _0x427da8[_0x8aab('0x1b')](_0x5be831);}return _0x427da8[_0x8aab('0x1c')](_0x5be831)[_0x8aab('0x1d')]();};}function respondWithResult(_0x3c3565,_0x53765b){_0x53765b=_0x53765b||0xc8;return function(_0x2962fe){if(_0x2962fe){return _0x3c3565[_0x8aab('0x1c')](_0x53765b)[_0x8aab('0x1e')](_0x2962fe);}};}function respondWithFilteredResult(_0x1db8d9,_0x17e5c1){return function(_0x26f409){if(_0x26f409){var _0x32d1d4=typeof _0x17e5c1[_0x8aab('0x1f')]==='undefined'&&typeof _0x17e5c1[_0x8aab('0x20')]==='undefined';var _0x48c071=_0x26f409[_0x8aab('0x21')];var _0x1a5619=_0x32d1d4?0x0:_0x17e5c1[_0x8aab('0x1f')];var _0x5f4315=_0x32d1d4?_0x26f409[_0x8aab('0x21')]:_0x17e5c1[_0x8aab('0x1f')]+_0x17e5c1[_0x8aab('0x20')];var _0x294793;if(_0x5f4315>=_0x48c071){_0x5f4315=_0x48c071;_0x294793=0xc8;}else{_0x294793=0xce;}_0x1db8d9['status'](_0x294793);return _0x1db8d9[_0x8aab('0x22')](_0x8aab('0x23'),_0x1a5619+'-'+_0x5f4315+'/'+_0x48c071)[_0x8aab('0x1e')](_0x26f409);}return null;};}function patchUpdates(_0x2d272f){return function(_0x279cbe){try{jsonpatch[_0x8aab('0x24')](_0x279cbe,_0x2d272f,!![]);}catch(_0x33ce86){return BPromise[_0x8aab('0x25')](_0x33ce86);}return _0x279cbe['save']();};}function saveUpdates(_0x28ba72,_0xf8c921){return function(_0xe2ea1f){if(_0xe2ea1f){return _0xe2ea1f[_0x8aab('0x26')](_0x28ba72)[_0x8aab('0x27')](function(_0x5a0017){return _0x5a0017;});}return null;};}function removeEntity(_0x38b357,_0xe2035f){return function(_0x588725){if(_0x588725){return _0x588725['destroy']()[_0x8aab('0x27')](function(){var _0x32796c=_0x588725[_0x8aab('0x28')]({'plain':!![]});var _0x4e0d80=_0x8aab('0x29');return db['UserProfileResource']['destroy']({'where':{'type':_0x4e0d80,'resourceId':_0x32796c['id']}})['then'](function(){return _0x588725;});})['then'](function(){_0x38b357[_0x8aab('0x1c')](0xcc)[_0x8aab('0x1d')]();});}};}function handleEntityNotFound(_0x26cb76,_0x253bae){return function(_0x124e2f){if(!_0x124e2f){_0x26cb76[_0x8aab('0x1b')](0x194);}return _0x124e2f;};}function handleError(_0x32796f,_0x3899d8){_0x3899d8=_0x3899d8||0x1f4;return function(_0xf742f4){logger[_0x8aab('0x2a')](_0xf742f4[_0x8aab('0x2b')]);if(_0xf742f4['name']){delete _0xf742f4['name'];}_0x32796f[_0x8aab('0x1c')](_0x3899d8)[_0x8aab('0x2c')](_0xf742f4);};}exports[_0x8aab('0x2d')]=function(_0xabe73a,_0x55b16b){var _0x20e40f={},_0x40b05a={},_0x3b1134={'count':0x0,'rows':[]};var _0x15c984=_[_0x8aab('0x2e')](db[_0x8aab('0x2f')][_0x8aab('0x30')],function(_0x517eb3){return{'name':_0x517eb3[_0x8aab('0x31')],'type':_0x517eb3['type'][_0x8aab('0x32')]};});_0x40b05a[_0x8aab('0x33')]=_[_0x8aab('0x2e')](_0x15c984,_0x8aab('0x34'));_0x40b05a[_0x8aab('0x35')]=_[_0x8aab('0x36')](_0xabe73a[_0x8aab('0x35')]);_0x40b05a[_0x8aab('0x37')]=_['intersection'](_0x40b05a[_0x8aab('0x33')],_0x40b05a[_0x8aab('0x35')]);_0x20e40f[_0x8aab('0x38')]=_[_0x8aab('0x39')](_0x40b05a[_0x8aab('0x33')],qs[_0x8aab('0x3a')](_0xabe73a[_0x8aab('0x35')][_0x8aab('0x3a')]));_0x20e40f[_0x8aab('0x38')]=_0x20e40f[_0x8aab('0x38')][_0x8aab('0x3b')]?_0x20e40f[_0x8aab('0x38')]:_0x40b05a['model'];if(!_0xabe73a[_0x8aab('0x35')][_0x8aab('0x3c')](_0x8aab('0x3d'))){_0x20e40f[_0x8aab('0x20')]=qs[_0x8aab('0x20')](_0xabe73a[_0x8aab('0x35')]['limit']);_0x20e40f[_0x8aab('0x1f')]=qs[_0x8aab('0x1f')](_0xabe73a[_0x8aab('0x35')]['offset']);}_0x20e40f[_0x8aab('0x3e')]=qs[_0x8aab('0x3f')](_0xabe73a[_0x8aab('0x35')][_0x8aab('0x3f')]);_0x20e40f[_0x8aab('0x40')]=qs[_0x8aab('0x37')](_[_0x8aab('0x41')](_0xabe73a[_0x8aab('0x35')],_0x40b05a[_0x8aab('0x37')]),_0x15c984);if(_0xabe73a[_0x8aab('0x35')][_0x8aab('0x42')]){_0x20e40f[_0x8aab('0x40')]=_[_0x8aab('0x43')](_0x20e40f['where'],{'$or':_['map'](_0x15c984,function(_0x593ef8){if(_0x593ef8[_0x8aab('0x44')]!==_0x8aab('0x45')){var _0x12db12={};_0x12db12[_0x593ef8['name']]={'$like':'%'+_0xabe73a[_0x8aab('0x35')][_0x8aab('0x42')]+'%'};return _0x12db12;}})});}_0x20e40f=_[_0x8aab('0x43')]({},_0x20e40f,_0xabe73a[_0x8aab('0x46')]);var _0x1dc63b={'where':_0x20e40f['where']};return db['Variable'][_0x8aab('0x21')](_0x1dc63b)['then'](function(_0x42de54){_0x3b1134[_0x8aab('0x21')]=_0x42de54;if(_0xabe73a[_0x8aab('0x35')][_0x8aab('0x47')]){_0x20e40f[_0x8aab('0x48')]=[{'all':!![]}];}return db[_0x8aab('0x2f')][_0x8aab('0x49')](_0x20e40f);})[_0x8aab('0x27')](function(_0x30ac3a){_0x3b1134[_0x8aab('0x4a')]=_0x30ac3a;return _0x3b1134;})['then'](respondWithFilteredResult(_0x55b16b,_0x20e40f))[_0x8aab('0x4b')](handleError(_0x55b16b,null));};exports[_0x8aab('0x4c')]=function(_0x18f668,_0x303395){var _0x27343a={'raw':!![],'where':{'id':_0x18f668[_0x8aab('0x4d')]['id']}},_0x2326e2={};_0x2326e2[_0x8aab('0x33')]=_[_0x8aab('0x36')](db[_0x8aab('0x2f')][_0x8aab('0x30')]);_0x2326e2[_0x8aab('0x35')]=_['keys'](_0x18f668[_0x8aab('0x35')]);_0x2326e2[_0x8aab('0x37')]=_[_0x8aab('0x39')](_0x2326e2['model'],_0x2326e2['query']);_0x27343a[_0x8aab('0x38')]=_[_0x8aab('0x39')](_0x2326e2['model'],qs[_0x8aab('0x3a')](_0x18f668[_0x8aab('0x35')][_0x8aab('0x3a')]));_0x27343a[_0x8aab('0x38')]=_0x27343a[_0x8aab('0x38')][_0x8aab('0x3b')]?_0x27343a[_0x8aab('0x38')]:_0x2326e2[_0x8aab('0x33')];if(_0x18f668['query'][_0x8aab('0x47')]){_0x27343a[_0x8aab('0x48')]=[{'all':!![]}];}_0x27343a=_['merge']({},_0x27343a,_0x18f668[_0x8aab('0x46')]);return db[_0x8aab('0x2f')][_0x8aab('0x4e')](_0x27343a)[_0x8aab('0x27')](handleEntityNotFound(_0x303395,null))[_0x8aab('0x27')](respondWithResult(_0x303395,null))[_0x8aab('0x4b')](handleError(_0x303395,null));};exports['create']=function(_0xbb91,_0x3b456e){return db['Variable'][_0x8aab('0x4f')](_0xbb91[_0x8aab('0x50')],{})['then'](function(_0x37e5cf){var _0x199baa=_0xbb91[_0x8aab('0x51')]['get']({'plain':!![]});if(!_0x199baa)throw new Error(_0x8aab('0x52'));if(_0x199baa[_0x8aab('0x53')]==='user'){var _0x549224=_0x37e5cf[_0x8aab('0x28')]({'plain':!![]});var _0xb2b2bd=_0x8aab('0x29');return db[_0x8aab('0x54')]['find']({'where':{'name':_0xb2b2bd,'userProfileId':_0x199baa['userProfileId']},'raw':!![]})[_0x8aab('0x27')](function(_0x160a23){if(_0x160a23&&_0x160a23[_0x8aab('0x55')]===0x0){return db[_0x8aab('0x56')][_0x8aab('0x4f')]({'name':_0x549224[_0x8aab('0x34')],'resourceId':_0x549224['id'],'type':_0x160a23[_0x8aab('0x34')],'sectionId':_0x160a23['id']},{})[_0x8aab('0x27')](function(){return _0x37e5cf;});}else{return _0x37e5cf;}})['catch'](function(_0x559136){logger[_0x8aab('0x2a')](_0x8aab('0x57'),_0x559136);throw _0x559136;});}return _0x37e5cf;})['then'](respondWithResult(_0x3b456e,0xc9))[_0x8aab('0x4b')](handleError(_0x3b456e,null));};exports[_0x8aab('0x26')]=function(_0x5ad0b1,_0x32cd40){if(_0x5ad0b1[_0x8aab('0x50')]['id']){delete _0x5ad0b1[_0x8aab('0x50')]['id'];}return db['Variable'][_0x8aab('0x4e')]({'where':{'id':_0x5ad0b1[_0x8aab('0x4d')]['id']}})['then'](handleEntityNotFound(_0x32cd40,null))[_0x8aab('0x27')](saveUpdates(_0x5ad0b1[_0x8aab('0x50')],null))[_0x8aab('0x27')](respondWithResult(_0x32cd40,null))[_0x8aab('0x4b')](handleError(_0x32cd40,null));};exports[_0x8aab('0x58')]=function(_0x1c3e19,_0x377e1c){return db[_0x8aab('0x2f')][_0x8aab('0x4e')]({'where':{'id':_0x1c3e19[_0x8aab('0x4d')]['id']}})['then'](handleEntityNotFound(_0x377e1c,null))[_0x8aab('0x27')](removeEntity(_0x377e1c,null))[_0x8aab('0x4b')](handleError(_0x377e1c,null));};