Built motion from commit 3c2ce842.|2.6.31
[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 _0x04eb=['create','body','user','role','UserProfileSection','userProfileId','autoAssociation','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','crypto','jsforce','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','status','end','json','offset','undefined','limit','count','Content-Range','apply','save','update','get','Variables','UserProfileResource','destroy','then','error','stack','name','send','index','map','Variable','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','include','findAll','catch','show','params','length','includeAll','find'];(function(_0x1e7b16,_0x4607a1){var _0x37fadc=function(_0x1fc9ce){while(--_0x1fc9ce){_0x1e7b16['push'](_0x1e7b16['shift']());}};_0x37fadc(++_0x4607a1);}(_0x04eb,0x14f));var _0xb04e=function(_0x2aff23,_0xaeeb2d){_0x2aff23=_0x2aff23-0x0;var _0x42663c=_0x04eb[_0x2aff23];return _0x42663c;};'use strict';var emlformat=require(_0xb04e('0x0'));var rimraf=require(_0xb04e('0x1'));var zipdir=require(_0xb04e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb04e('0x3'));var moment=require(_0xb04e('0x4'));var BPromise=require(_0xb04e('0x5'));var Mustache=require(_0xb04e('0x6'));var util=require(_0xb04e('0x7'));var path=require(_0xb04e('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xb04e('0x9'));var fs=require('fs');var fs_extra=require(_0xb04e('0xa'));var _=require(_0xb04e('0xb'));var squel=require('squel');var crypto=require(_0xb04e('0xc'));var jsforce=require(_0xb04e('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xb04e('0xe'));var querystring=require(_0xb04e('0xf'));var Papa=require(_0xb04e('0x10'));var Redis=require('ioredis');var authService=require(_0xb04e('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xb04e('0x12'));var hardwareService=require(_0xb04e('0x13'));var logger=require(_0xb04e('0x14'))('api');var utils=require(_0xb04e('0x15'));var config=require(_0xb04e('0x16'));var licenseUtil=require(_0xb04e('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4f96f6,_0x3f1b51){_0x3f1b51=_0x3f1b51||0xcc;return function(_0xa90e0e){if(_0xa90e0e){return _0x4f96f6['sendStatus'](_0x3f1b51);}return _0x4f96f6[_0xb04e('0x18')](_0x3f1b51)[_0xb04e('0x19')]();};}function respondWithResult(_0x42e120,_0x59df49){_0x59df49=_0x59df49||0xc8;return function(_0x4e0516){if(_0x4e0516){return _0x42e120['status'](_0x59df49)[_0xb04e('0x1a')](_0x4e0516);}};}function respondWithFilteredResult(_0x57b90f,_0x292529){return function(_0x14198d){if(_0x14198d){var _0x423831=typeof _0x292529[_0xb04e('0x1b')]===_0xb04e('0x1c')&&typeof _0x292529[_0xb04e('0x1d')]===_0xb04e('0x1c');var _0x1a50ea=_0x14198d[_0xb04e('0x1e')];var _0xeae156=_0x423831?0x0:_0x292529[_0xb04e('0x1b')];var _0x4b63b6=_0x423831?_0x14198d[_0xb04e('0x1e')]:_0x292529[_0xb04e('0x1b')]+_0x292529['limit'];var _0x44c17e;if(_0x4b63b6>=_0x1a50ea){_0x4b63b6=_0x1a50ea;_0x44c17e=0xc8;}else{_0x44c17e=0xce;}_0x57b90f[_0xb04e('0x18')](_0x44c17e);return _0x57b90f['set'](_0xb04e('0x1f'),_0xeae156+'-'+_0x4b63b6+'/'+_0x1a50ea)[_0xb04e('0x1a')](_0x14198d);}return null;};}function patchUpdates(_0x390bcb){return function(_0x50f334){try{jsonpatch[_0xb04e('0x20')](_0x50f334,_0x390bcb,!![]);}catch(_0x478ac2){return BPromise['reject'](_0x478ac2);}return _0x50f334[_0xb04e('0x21')]();};}function saveUpdates(_0x5d01d6,_0x368dfc){return function(_0x487710){if(_0x487710){return _0x487710[_0xb04e('0x22')](_0x5d01d6)['then'](function(_0x53a50e){return _0x53a50e;});}return null;};}function removeEntity(_0x55e826,_0x20ea96){return function(_0x3a7dd3){if(_0x3a7dd3){return _0x3a7dd3['destroy']()['then'](function(){var _0x76669a=_0x3a7dd3[_0xb04e('0x23')]({'plain':!![]});var _0x571b5e=_0xb04e('0x24');return db[_0xb04e('0x25')][_0xb04e('0x26')]({'where':{'type':_0x571b5e,'resourceId':_0x76669a['id']}})[_0xb04e('0x27')](function(){return _0x3a7dd3;});})[_0xb04e('0x27')](function(){_0x55e826[_0xb04e('0x18')](0xcc)[_0xb04e('0x19')]();});}};}function handleEntityNotFound(_0x427cd7,_0x12d5a3){return function(_0xa93a5a){if(!_0xa93a5a){_0x427cd7['sendStatus'](0x194);}return _0xa93a5a;};}function handleError(_0x1a58db,_0x49cd80){_0x49cd80=_0x49cd80||0x1f4;return function(_0x5ecacd){logger[_0xb04e('0x28')](_0x5ecacd[_0xb04e('0x29')]);if(_0x5ecacd[_0xb04e('0x2a')]){delete _0x5ecacd['name'];}_0x1a58db[_0xb04e('0x18')](_0x49cd80)[_0xb04e('0x2b')](_0x5ecacd);};}exports[_0xb04e('0x2c')]=function(_0x43e9cb,_0x7e78da){var _0xebb127={},_0x18f70a={},_0x48f028={'count':0x0,'rows':[]};var _0x146f85=_[_0xb04e('0x2d')](db[_0xb04e('0x2e')][_0xb04e('0x2f')],function(_0x4dc4f8){return{'name':_0x4dc4f8['fieldName'],'type':_0x4dc4f8[_0xb04e('0x30')][_0xb04e('0x31')]};});_0x18f70a[_0xb04e('0x32')]=_['map'](_0x146f85,'name');_0x18f70a['query']=_[_0xb04e('0x33')](_0x43e9cb[_0xb04e('0x34')]);_0x18f70a[_0xb04e('0x35')]=_[_0xb04e('0x36')](_0x18f70a[_0xb04e('0x32')],_0x18f70a[_0xb04e('0x34')]);_0xebb127[_0xb04e('0x37')]=_['intersection'](_0x18f70a[_0xb04e('0x32')],qs[_0xb04e('0x38')](_0x43e9cb[_0xb04e('0x34')][_0xb04e('0x38')]));_0xebb127[_0xb04e('0x37')]=_0xebb127[_0xb04e('0x37')]['length']?_0xebb127[_0xb04e('0x37')]:_0x18f70a['model'];if(!_0x43e9cb['query'][_0xb04e('0x39')](_0xb04e('0x3a'))){_0xebb127[_0xb04e('0x1d')]=qs['limit'](_0x43e9cb[_0xb04e('0x34')]['limit']);_0xebb127[_0xb04e('0x1b')]=qs[_0xb04e('0x1b')](_0x43e9cb['query']['offset']);}_0xebb127[_0xb04e('0x3b')]=qs[_0xb04e('0x3c')](_0x43e9cb[_0xb04e('0x34')][_0xb04e('0x3c')]);_0xebb127[_0xb04e('0x3d')]=qs[_0xb04e('0x35')](_[_0xb04e('0x3e')](_0x43e9cb[_0xb04e('0x34')],_0x18f70a[_0xb04e('0x35')]),_0x146f85);if(_0x43e9cb[_0xb04e('0x34')][_0xb04e('0x3f')]){_0xebb127[_0xb04e('0x3d')]=_['merge'](_0xebb127[_0xb04e('0x3d')],{'$or':_[_0xb04e('0x2d')](_0x146f85,function(_0x3119ec){if(_0x3119ec[_0xb04e('0x30')]!==_0xb04e('0x40')){var _0x30d2cd={};_0x30d2cd[_0x3119ec[_0xb04e('0x2a')]]={'$like':'%'+_0x43e9cb[_0xb04e('0x34')][_0xb04e('0x3f')]+'%'};return _0x30d2cd;}})});}_0xebb127=_[_0xb04e('0x41')]({},_0xebb127,_0x43e9cb[_0xb04e('0x42')]);var _0x51b799={'where':_0xebb127[_0xb04e('0x3d')]};return db[_0xb04e('0x2e')]['count'](_0x51b799)[_0xb04e('0x27')](function(_0x1acce8){_0x48f028[_0xb04e('0x1e')]=_0x1acce8;if(_0x43e9cb['query']['includeAll']){_0xebb127[_0xb04e('0x43')]=[{'all':!![]}];}return db[_0xb04e('0x2e')][_0xb04e('0x44')](_0xebb127);})[_0xb04e('0x27')](function(_0xd2e2ce){_0x48f028['rows']=_0xd2e2ce;return _0x48f028;})[_0xb04e('0x27')](respondWithFilteredResult(_0x7e78da,_0xebb127))[_0xb04e('0x45')](handleError(_0x7e78da,null));};exports[_0xb04e('0x46')]=function(_0xf12315,_0x4d27b1){var _0x1e33a0={'raw':!![],'where':{'id':_0xf12315[_0xb04e('0x47')]['id']}},_0x4ea970={};_0x4ea970[_0xb04e('0x32')]=_['keys'](db[_0xb04e('0x2e')][_0xb04e('0x2f')]);_0x4ea970[_0xb04e('0x34')]=_[_0xb04e('0x33')](_0xf12315['query']);_0x4ea970[_0xb04e('0x35')]=_[_0xb04e('0x36')](_0x4ea970[_0xb04e('0x32')],_0x4ea970[_0xb04e('0x34')]);_0x1e33a0[_0xb04e('0x37')]=_[_0xb04e('0x36')](_0x4ea970[_0xb04e('0x32')],qs[_0xb04e('0x38')](_0xf12315[_0xb04e('0x34')]['fields']));_0x1e33a0[_0xb04e('0x37')]=_0x1e33a0[_0xb04e('0x37')][_0xb04e('0x48')]?_0x1e33a0[_0xb04e('0x37')]:_0x4ea970['model'];if(_0xf12315[_0xb04e('0x34')][_0xb04e('0x49')]){_0x1e33a0[_0xb04e('0x43')]=[{'all':!![]}];}_0x1e33a0=_['merge']({},_0x1e33a0,_0xf12315[_0xb04e('0x42')]);return db[_0xb04e('0x2e')][_0xb04e('0x4a')](_0x1e33a0)[_0xb04e('0x27')](handleEntityNotFound(_0x4d27b1,null))[_0xb04e('0x27')](respondWithResult(_0x4d27b1,null))[_0xb04e('0x45')](handleError(_0x4d27b1,null));};exports['create']=function(_0x301d81,_0x155fc5){return db[_0xb04e('0x2e')][_0xb04e('0x4b')](_0x301d81[_0xb04e('0x4c')],{})[_0xb04e('0x27')](function(_0x32181d){var _0x498e52=_0x301d81[_0xb04e('0x4d')]['get']({'plain':!![]});if(!_0x498e52)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x498e52[_0xb04e('0x4e')]==='user'){var _0x49bea1=_0x32181d['get']({'plain':!![]});var _0x540ce8='Variables';return db[_0xb04e('0x4f')][_0xb04e('0x4a')]({'where':{'name':_0x540ce8,'userProfileId':_0x498e52[_0xb04e('0x50')]},'raw':!![]})[_0xb04e('0x27')](function(_0x4fd068){if(_0x4fd068&&_0x4fd068[_0xb04e('0x51')]===0x0){return db[_0xb04e('0x25')][_0xb04e('0x4b')]({'name':_0x49bea1[_0xb04e('0x2a')],'resourceId':_0x49bea1['id'],'type':_0x4fd068[_0xb04e('0x2a')],'sectionId':_0x4fd068['id']},{})[_0xb04e('0x27')](function(){return _0x32181d;});}else{return _0x32181d;}})['catch'](function(_0x525621){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x525621);throw _0x525621;});}return _0x32181d;})[_0xb04e('0x27')](respondWithResult(_0x155fc5,0xc9))[_0xb04e('0x45')](handleError(_0x155fc5,null));};exports[_0xb04e('0x22')]=function(_0x362445,_0xc44c90){if(_0x362445['body']['id']){delete _0x362445[_0xb04e('0x4c')]['id'];}return db[_0xb04e('0x2e')]['find']({'where':{'id':_0x362445[_0xb04e('0x47')]['id']}})[_0xb04e('0x27')](handleEntityNotFound(_0xc44c90,null))[_0xb04e('0x27')](saveUpdates(_0x362445[_0xb04e('0x4c')],null))[_0xb04e('0x27')](respondWithResult(_0xc44c90,null))[_0xb04e('0x45')](handleError(_0xc44c90,null));};exports['destroy']=function(_0x23f250,_0x2b6416){return db['Variable'][_0xb04e('0x4a')]({'where':{'id':_0x23f250[_0xb04e('0x47')]['id']}})[_0xb04e('0x27')](handleEntityNotFound(_0x2b6416,null))[_0xb04e('0x27')](removeEntity(_0x2b6416,null))[_0xb04e('0x45')](handleError(_0x2b6416,null));};