dde4276ca7fb4f1b2bf2678ac6c6b271f673d958
[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 _0xf3e5=['autoAssociation','body','eml-format','zip-dir','fast-json-patch','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','Variables','UserProfileResource','sendStatus','error','stack','name','send','map','Variable','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','merge','VIRTUAL','filter','includeAll','include','show','params','options','find','catch','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId'];(function(_0x4e11d5,_0x1ce514){var _0x5e4e4c=function(_0xbee63d){while(--_0xbee63d){_0x4e11d5['push'](_0x4e11d5['shift']());}};_0x5e4e4c(++_0x1ce514);}(_0xf3e5,0x13e));var _0x5f3e=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0xf3e5[_0x2f5ac5];return _0x37c9a8;};'use strict';var emlformat=require(_0x5f3e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x5f3e('0x1'));var jsonpatch=require(_0x5f3e('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x5f3e('0x3'));var Mustache=require(_0x5f3e('0x4'));var util=require('util');var path=require(_0x5f3e('0x5'));var sox=require(_0x5f3e('0x6'));var csv=require(_0x5f3e('0x7'));var ejs=require(_0x5f3e('0x8'));var fs=require('fs');var fs_extra=require(_0x5f3e('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x5f3e('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x5f3e('0xb'));var toCsv=require('to-csv');var querystring=require(_0x5f3e('0xc'));var Papa=require('papaparse');var Redis=require(_0x5f3e('0xd'));var authService=require(_0x5f3e('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5f3e('0xf'));var logger=require(_0x5f3e('0x10'))(_0x5f3e('0x11'));var utils=require(_0x5f3e('0x12'));var config=require(_0x5f3e('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x5f3e('0x14'))['db'];function respondWithStatusCode(_0x27b0ae,_0x5e39f2){_0x5e39f2=_0x5e39f2||0xcc;return function(_0x97d962){if(_0x97d962){return _0x27b0ae['sendStatus'](_0x5e39f2);}return _0x27b0ae[_0x5f3e('0x15')](_0x5e39f2)[_0x5f3e('0x16')]();};}function respondWithResult(_0x5921a8,_0x55eb7e){_0x55eb7e=_0x55eb7e||0xc8;return function(_0x1682c7){if(_0x1682c7){return _0x5921a8[_0x5f3e('0x15')](_0x55eb7e)[_0x5f3e('0x17')](_0x1682c7);}};}function respondWithFilteredResult(_0x3c6058,_0x4e63f2){return function(_0x1eae77){if(_0x1eae77){var _0x2081cc=_0x1eae77[_0x5f3e('0x18')],_0x47d438=_0x4e63f2[_0x5f3e('0x19')],_0x28d83d=_0x4e63f2[_0x5f3e('0x19')]+_0x4e63f2[_0x5f3e('0x1a')],_0x36483d;if(_0x28d83d>=_0x2081cc){_0x28d83d=_0x2081cc;_0x36483d=0xc8;}else{_0x36483d=0xce;}_0x3c6058[_0x5f3e('0x15')](_0x36483d);return _0x3c6058[_0x5f3e('0x1b')](_0x5f3e('0x1c'),_0x47d438+'-'+_0x28d83d+'/'+_0x2081cc)[_0x5f3e('0x17')](_0x1eae77);}return null;};}function patchUpdates(_0x55ab0d){return function(_0x367d7d){try{jsonpatch[_0x5f3e('0x1d')](_0x367d7d,_0x55ab0d,!![]);}catch(_0x4fb07b){return BPromise[_0x5f3e('0x1e')](_0x4fb07b);}return _0x367d7d[_0x5f3e('0x1f')]();};}function saveUpdates(_0x3d27a9,_0x32f127){return function(_0x1fe625){if(_0x1fe625){return _0x1fe625[_0x5f3e('0x20')](_0x3d27a9)[_0x5f3e('0x21')](function(_0x64240a){return _0x64240a;});}return null;};}function removeEntity(_0x149ba8,_0xd42071){return function(_0x1eee25){if(_0x1eee25){return _0x1eee25[_0x5f3e('0x22')]()[_0x5f3e('0x21')](function(){var _0x111934=_0x1eee25['get']({'plain':!![]});var _0xd64bc3=_0x5f3e('0x23');return db[_0x5f3e('0x24')][_0x5f3e('0x22')]({'where':{'type':_0xd64bc3,'resourceId':_0x111934['id']}})[_0x5f3e('0x21')](function(){return _0x1eee25;});})[_0x5f3e('0x21')](function(){_0x149ba8[_0x5f3e('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x28b2cb,_0x218c41){return function(_0x3561b8){if(!_0x3561b8){_0x28b2cb[_0x5f3e('0x25')](0x194);}return _0x3561b8;};}function handleError(_0x59d526,_0x8fa662){_0x8fa662=_0x8fa662||0x1f4;return function(_0x1bf176){logger[_0x5f3e('0x26')](_0x1bf176[_0x5f3e('0x27')]);if(_0x1bf176[_0x5f3e('0x28')]){delete _0x1bf176['name'];}_0x59d526['status'](_0x8fa662)[_0x5f3e('0x29')](_0x1bf176);};}exports['index']=function(_0x49e89a,_0x3ec752){var _0x32254a={},_0x288aca={},_0x50ae0e={'count':0x0,'rows':[]};var _0x4f1556=_[_0x5f3e('0x2a')](db[_0x5f3e('0x2b')][_0x5f3e('0x2c')],function(_0x52cf3b){return{'name':_0x52cf3b[_0x5f3e('0x2d')],'type':_0x52cf3b['type'][_0x5f3e('0x2e')]};});_0x288aca[_0x5f3e('0x2f')]=_['map'](_0x4f1556,'name');_0x288aca[_0x5f3e('0x30')]=_[_0x5f3e('0x31')](_0x49e89a[_0x5f3e('0x30')]);_0x288aca[_0x5f3e('0x32')]=_[_0x5f3e('0x33')](_0x288aca[_0x5f3e('0x2f')],_0x288aca[_0x5f3e('0x30')]);_0x32254a[_0x5f3e('0x34')]=_[_0x5f3e('0x33')](_0x288aca[_0x5f3e('0x2f')],qs['fields'](_0x49e89a[_0x5f3e('0x30')][_0x5f3e('0x35')]));_0x32254a[_0x5f3e('0x34')]=_0x32254a[_0x5f3e('0x34')][_0x5f3e('0x36')]?_0x32254a[_0x5f3e('0x34')]:_0x288aca['model'];if(!_0x49e89a[_0x5f3e('0x30')][_0x5f3e('0x37')](_0x5f3e('0x38'))){_0x32254a[_0x5f3e('0x1a')]=qs[_0x5f3e('0x1a')](_0x49e89a[_0x5f3e('0x30')][_0x5f3e('0x1a')]);_0x32254a[_0x5f3e('0x19')]=qs[_0x5f3e('0x19')](_0x49e89a[_0x5f3e('0x30')][_0x5f3e('0x19')]);}_0x32254a[_0x5f3e('0x39')]=qs['sort'](_0x49e89a[_0x5f3e('0x30')]['sort']);_0x32254a[_0x5f3e('0x3a')]=qs[_0x5f3e('0x32')](_[_0x5f3e('0x3b')](_0x49e89a[_0x5f3e('0x30')],_0x288aca['filters']),_0x4f1556);if(_0x49e89a[_0x5f3e('0x30')]['filter']){_0x32254a[_0x5f3e('0x3a')]=_[_0x5f3e('0x3c')](_0x32254a['where'],{'$or':_[_0x5f3e('0x2a')](_0x4f1556,function(_0x350405){if(_0x350405['type']!==_0x5f3e('0x3d')){var _0x5c5c15={};_0x5c5c15[_0x350405['name']]={'$like':'%'+_0x49e89a[_0x5f3e('0x30')][_0x5f3e('0x3e')]+'%'};return _0x5c5c15;}})});}_0x32254a=_[_0x5f3e('0x3c')]({},_0x32254a,_0x49e89a['options']);var _0x26d8ab={'where':_0x32254a[_0x5f3e('0x3a')]};return db['Variable'][_0x5f3e('0x18')](_0x26d8ab)[_0x5f3e('0x21')](function(_0x1fba7b){_0x50ae0e[_0x5f3e('0x18')]=_0x1fba7b;if(_0x49e89a[_0x5f3e('0x30')][_0x5f3e('0x3f')]){_0x32254a[_0x5f3e('0x40')]=[{'all':!![]}];}return db[_0x5f3e('0x2b')]['findAll'](_0x32254a);})['then'](function(_0x18e8d6){_0x50ae0e['rows']=_0x18e8d6;return _0x50ae0e;})[_0x5f3e('0x21')](respondWithFilteredResult(_0x3ec752,_0x32254a))['catch'](handleError(_0x3ec752,null));};exports[_0x5f3e('0x41')]=function(_0x1524bc,_0xaaf0e0){var _0x185b20={'raw':!![],'where':{'id':_0x1524bc[_0x5f3e('0x42')]['id']}},_0x245ff7={};_0x245ff7['model']=_['keys'](db['Variable']['rawAttributes']);_0x245ff7[_0x5f3e('0x30')]=_[_0x5f3e('0x31')](_0x1524bc[_0x5f3e('0x30')]);_0x245ff7[_0x5f3e('0x32')]=_['intersection'](_0x245ff7['model'],_0x245ff7['query']);_0x185b20[_0x5f3e('0x34')]=_['intersection'](_0x245ff7[_0x5f3e('0x2f')],qs[_0x5f3e('0x35')](_0x1524bc[_0x5f3e('0x30')][_0x5f3e('0x35')]));_0x185b20[_0x5f3e('0x34')]=_0x185b20[_0x5f3e('0x34')][_0x5f3e('0x36')]?_0x185b20[_0x5f3e('0x34')]:_0x245ff7['model'];if(_0x1524bc[_0x5f3e('0x30')]['includeAll']){_0x185b20['include']=[{'all':!![]}];}_0x185b20=_['merge']({},_0x185b20,_0x1524bc[_0x5f3e('0x43')]);return db[_0x5f3e('0x2b')][_0x5f3e('0x44')](_0x185b20)[_0x5f3e('0x21')](handleEntityNotFound(_0xaaf0e0,null))[_0x5f3e('0x21')](respondWithResult(_0xaaf0e0,null))[_0x5f3e('0x45')](handleError(_0xaaf0e0,null));};exports[_0x5f3e('0x46')]=function(_0x449c8a,_0x412a03){return db[_0x5f3e('0x2b')][_0x5f3e('0x46')](_0x449c8a['body'],{})[_0x5f3e('0x21')](function(_0x2cc775){var _0x404fbd=_0x449c8a['user'][_0x5f3e('0x47')]({'plain':!![]});if(!_0x404fbd)throw new Error(_0x5f3e('0x48'));if(_0x404fbd[_0x5f3e('0x49')]===_0x5f3e('0x4a')){var _0x2a45de=_0x2cc775[_0x5f3e('0x47')]({'plain':!![]});var _0x512926='Variables';return db[_0x5f3e('0x4b')][_0x5f3e('0x44')]({'where':{'name':_0x512926,'userProfileId':_0x404fbd[_0x5f3e('0x4c')]},'raw':!![]})[_0x5f3e('0x21')](function(_0x2670a9){if(_0x2670a9&&_0x2670a9[_0x5f3e('0x4d')]===0x0){return db[_0x5f3e('0x24')][_0x5f3e('0x46')]({'name':_0x2a45de[_0x5f3e('0x28')],'resourceId':_0x2a45de['id'],'type':_0x2670a9[_0x5f3e('0x28')],'sectionId':_0x2670a9['id']},{})[_0x5f3e('0x21')](function(){return _0x2cc775;});}else{return _0x2cc775;}})[_0x5f3e('0x45')](function(_0x39a6ee){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x39a6ee);throw _0x39a6ee;});}return _0x2cc775;})['then'](respondWithResult(_0x412a03,0xc9))[_0x5f3e('0x45')](handleError(_0x412a03,null));};exports[_0x5f3e('0x20')]=function(_0x3ba905,_0x299fdc){if(_0x3ba905[_0x5f3e('0x4e')]['id']){delete _0x3ba905[_0x5f3e('0x4e')]['id'];}return db[_0x5f3e('0x2b')][_0x5f3e('0x44')]({'where':{'id':_0x3ba905[_0x5f3e('0x42')]['id']}})[_0x5f3e('0x21')](handleEntityNotFound(_0x299fdc,null))[_0x5f3e('0x21')](saveUpdates(_0x3ba905[_0x5f3e('0x4e')],null))[_0x5f3e('0x21')](respondWithResult(_0x299fdc,null))['catch'](handleError(_0x299fdc,null));};exports[_0x5f3e('0x22')]=function(_0x13c551,_0x1c5575){return db[_0x5f3e('0x2b')][_0x5f3e('0x44')]({'where':{'id':_0x13c551['params']['id']}})[_0x5f3e('0x21')](handleEntityNotFound(_0x1c5575,null))[_0x5f3e('0x21')](removeEntity(_0x1c5575,null))[_0x5f3e('0x45')](handleError(_0x1c5575,null));};