307bf6772d7d824e2f897eafdb94aa135956b737
[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 _0x7fdc=['mustache','util','path','to-csv','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','set','Content-Range','reject','save','update','then','get','Variables','UserProfileResource','error','stack','name','send','index','map','Variable','rawAttributes','type','model','query','filters','intersection','attributes','fields','nolimit','limit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','keys','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','eml-format','rimraf','fast-json-patch','request-promise','bluebird'];(function(_0x62b95,_0x5e3d0a){var _0x155531=function(_0x59e1e3){while(--_0x59e1e3){_0x62b95['push'](_0x62b95['shift']());}};_0x155531(++_0x5e3d0a);}(_0x7fdc,0x181));var _0xc7fd=function(_0xd6277,_0x424dd7){_0xd6277=_0xd6277-0x0;var _0x251ac1=_0x7fdc[_0xd6277];return _0x251ac1;};'use strict';var emlformat=require(_0xc7fd('0x0'));var rimraf=require(_0xc7fd('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc7fd('0x2'));var rp=require(_0xc7fd('0x3'));var moment=require('moment');var BPromise=require(_0xc7fd('0x4'));var Mustache=require(_0xc7fd('0x5'));var util=require(_0xc7fd('0x6'));var path=require(_0xc7fd('0x7'));var sox=require('sox');var csv=require(_0xc7fd('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xc7fd('0x9'));var toCsv=require('to-csv');var querystring=require(_0xc7fd('0xa'));var Papa=require(_0xc7fd('0xb'));var Redis=require(_0xc7fd('0xc'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xc7fd('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xc7fd('0xe'));var config=require(_0xc7fd('0xf'));var licenseUtil=require(_0xc7fd('0x10'));var db=require(_0xc7fd('0x11'))['db'];function respondWithStatusCode(_0x324a30,_0x26af30){_0x26af30=_0x26af30||0xcc;return function(_0x3a9074){if(_0x3a9074){return _0x324a30['sendStatus'](_0x26af30);}return _0x324a30[_0xc7fd('0x12')](_0x26af30)[_0xc7fd('0x13')]();};}function respondWithResult(_0x54dba3,_0x391d18){_0x391d18=_0x391d18||0xc8;return function(_0x4a012f){if(_0x4a012f){return _0x54dba3[_0xc7fd('0x12')](_0x391d18)[_0xc7fd('0x14')](_0x4a012f);}};}function respondWithFilteredResult(_0x26a857,_0x3bdab5){return function(_0x37ba07){if(_0x37ba07){var _0x33ce5b=typeof _0x3bdab5[_0xc7fd('0x15')]===_0xc7fd('0x16')&&typeof _0x3bdab5['limit']==='undefined';var _0x1a2a47=_0x37ba07[_0xc7fd('0x17')];var _0x318df5=_0x33ce5b?0x0:_0x3bdab5['offset'];var _0x264443=_0x33ce5b?_0x37ba07[_0xc7fd('0x17')]:_0x3bdab5[_0xc7fd('0x15')]+_0x3bdab5['limit'];var _0x29067f;if(_0x264443>=_0x1a2a47){_0x264443=_0x1a2a47;_0x29067f=0xc8;}else{_0x29067f=0xce;}_0x26a857[_0xc7fd('0x12')](_0x29067f);return _0x26a857[_0xc7fd('0x18')](_0xc7fd('0x19'),_0x318df5+'-'+_0x264443+'/'+_0x1a2a47)['json'](_0x37ba07);}return null;};}function patchUpdates(_0x4d18e3){return function(_0x3021f2){try{jsonpatch['apply'](_0x3021f2,_0x4d18e3,!![]);}catch(_0x5beb65){return BPromise[_0xc7fd('0x1a')](_0x5beb65);}return _0x3021f2[_0xc7fd('0x1b')]();};}function saveUpdates(_0x465155,_0x2a1273){return function(_0x250ad3){if(_0x250ad3){return _0x250ad3[_0xc7fd('0x1c')](_0x465155)['then'](function(_0x1ceb33){return _0x1ceb33;});}return null;};}function removeEntity(_0x545ad4,_0x146e82){return function(_0x1f0660){if(_0x1f0660){return _0x1f0660['destroy']()[_0xc7fd('0x1d')](function(){var _0x295a93=_0x1f0660[_0xc7fd('0x1e')]({'plain':!![]});var _0x2651fd=_0xc7fd('0x1f');return db[_0xc7fd('0x20')]['destroy']({'where':{'type':_0x2651fd,'resourceId':_0x295a93['id']}})[_0xc7fd('0x1d')](function(){return _0x1f0660;});})[_0xc7fd('0x1d')](function(){_0x545ad4[_0xc7fd('0x12')](0xcc)[_0xc7fd('0x13')]();});}};}function handleEntityNotFound(_0x3c5e05,_0x9e4ca4){return function(_0x146f42){if(!_0x146f42){_0x3c5e05['sendStatus'](0x194);}return _0x146f42;};}function handleError(_0x41cf8f,_0x5ca7fb){_0x5ca7fb=_0x5ca7fb||0x1f4;return function(_0x5d2efe){logger[_0xc7fd('0x21')](_0x5d2efe[_0xc7fd('0x22')]);if(_0x5d2efe[_0xc7fd('0x23')]){delete _0x5d2efe[_0xc7fd('0x23')];}_0x41cf8f[_0xc7fd('0x12')](_0x5ca7fb)[_0xc7fd('0x24')](_0x5d2efe);};}exports[_0xc7fd('0x25')]=function(_0x24df56,_0x5ac653){var _0xef8c41={},_0x304b24={},_0x238648={'count':0x0,'rows':[]};var _0x19d048=_[_0xc7fd('0x26')](db[_0xc7fd('0x27')][_0xc7fd('0x28')],function(_0x4c0175){return{'name':_0x4c0175['fieldName'],'type':_0x4c0175[_0xc7fd('0x29')]['key']};});_0x304b24[_0xc7fd('0x2a')]=_[_0xc7fd('0x26')](_0x19d048,_0xc7fd('0x23'));_0x304b24[_0xc7fd('0x2b')]=_['keys'](_0x24df56['query']);_0x304b24[_0xc7fd('0x2c')]=_[_0xc7fd('0x2d')](_0x304b24['model'],_0x304b24[_0xc7fd('0x2b')]);_0xef8c41[_0xc7fd('0x2e')]=_['intersection'](_0x304b24[_0xc7fd('0x2a')],qs[_0xc7fd('0x2f')](_0x24df56[_0xc7fd('0x2b')][_0xc7fd('0x2f')]));_0xef8c41[_0xc7fd('0x2e')]=_0xef8c41[_0xc7fd('0x2e')]['length']?_0xef8c41[_0xc7fd('0x2e')]:_0x304b24[_0xc7fd('0x2a')];if(!_0x24df56['query']['hasOwnProperty'](_0xc7fd('0x30'))){_0xef8c41[_0xc7fd('0x31')]=qs[_0xc7fd('0x31')](_0x24df56[_0xc7fd('0x2b')][_0xc7fd('0x31')]);_0xef8c41[_0xc7fd('0x15')]=qs[_0xc7fd('0x15')](_0x24df56[_0xc7fd('0x2b')][_0xc7fd('0x15')]);}_0xef8c41[_0xc7fd('0x32')]=qs[_0xc7fd('0x33')](_0x24df56[_0xc7fd('0x2b')]['sort']);_0xef8c41[_0xc7fd('0x34')]=qs['filters'](_[_0xc7fd('0x35')](_0x24df56[_0xc7fd('0x2b')],_0x304b24['filters']),_0x19d048);if(_0x24df56[_0xc7fd('0x2b')][_0xc7fd('0x36')]){_0xef8c41[_0xc7fd('0x34')]=_['merge'](_0xef8c41['where'],{'$or':_[_0xc7fd('0x26')](_0x19d048,function(_0xa8752d){if(_0xa8752d[_0xc7fd('0x29')]!==_0xc7fd('0x37')){var _0x33227f={};_0x33227f[_0xa8752d[_0xc7fd('0x23')]]={'$like':'%'+_0x24df56['query'][_0xc7fd('0x36')]+'%'};return _0x33227f;}})});}_0xef8c41=_[_0xc7fd('0x38')]({},_0xef8c41,_0x24df56[_0xc7fd('0x39')]);var _0x2c5db5={'where':_0xef8c41['where']};return db[_0xc7fd('0x27')]['count'](_0x2c5db5)[_0xc7fd('0x1d')](function(_0x23a3ca){_0x238648[_0xc7fd('0x17')]=_0x23a3ca;if(_0x24df56[_0xc7fd('0x2b')][_0xc7fd('0x3a')]){_0xef8c41[_0xc7fd('0x3b')]=[{'all':!![]}];}return db[_0xc7fd('0x27')][_0xc7fd('0x3c')](_0xef8c41);})[_0xc7fd('0x1d')](function(_0x13df08){_0x238648[_0xc7fd('0x3d')]=_0x13df08;return _0x238648;})['then'](respondWithFilteredResult(_0x5ac653,_0xef8c41))[_0xc7fd('0x3e')](handleError(_0x5ac653,null));};exports[_0xc7fd('0x3f')]=function(_0x3f18af,_0x38096b){var _0x511d21={'raw':!![],'where':{'id':_0x3f18af[_0xc7fd('0x40')]['id']}},_0x6b9f3c={};_0x6b9f3c[_0xc7fd('0x2a')]=_['keys'](db['Variable']['rawAttributes']);_0x6b9f3c[_0xc7fd('0x2b')]=_[_0xc7fd('0x41')](_0x3f18af[_0xc7fd('0x2b')]);_0x6b9f3c[_0xc7fd('0x2c')]=_[_0xc7fd('0x2d')](_0x6b9f3c['model'],_0x6b9f3c[_0xc7fd('0x2b')]);_0x511d21[_0xc7fd('0x2e')]=_['intersection'](_0x6b9f3c[_0xc7fd('0x2a')],qs[_0xc7fd('0x2f')](_0x3f18af[_0xc7fd('0x2b')][_0xc7fd('0x2f')]));_0x511d21[_0xc7fd('0x2e')]=_0x511d21['attributes'][_0xc7fd('0x42')]?_0x511d21[_0xc7fd('0x2e')]:_0x6b9f3c[_0xc7fd('0x2a')];if(_0x3f18af['query'][_0xc7fd('0x3a')]){_0x511d21[_0xc7fd('0x3b')]=[{'all':!![]}];}_0x511d21=_[_0xc7fd('0x38')]({},_0x511d21,_0x3f18af[_0xc7fd('0x39')]);return db['Variable'][_0xc7fd('0x43')](_0x511d21)[_0xc7fd('0x1d')](handleEntityNotFound(_0x38096b,null))[_0xc7fd('0x1d')](respondWithResult(_0x38096b,null))['catch'](handleError(_0x38096b,null));};exports[_0xc7fd('0x44')]=function(_0x3dc0cb,_0x2f700b){return db[_0xc7fd('0x27')][_0xc7fd('0x44')](_0x3dc0cb[_0xc7fd('0x45')],{})[_0xc7fd('0x1d')](function(_0xe02159){var _0x172728=_0x3dc0cb[_0xc7fd('0x46')][_0xc7fd('0x1e')]({'plain':!![]});if(!_0x172728)throw new Error(_0xc7fd('0x47'));if(_0x172728[_0xc7fd('0x48')]===_0xc7fd('0x46')){var _0x54c568=_0xe02159['get']({'plain':!![]});var _0x4c53de=_0xc7fd('0x1f');return db[_0xc7fd('0x49')][_0xc7fd('0x43')]({'where':{'name':_0x4c53de,'userProfileId':_0x172728[_0xc7fd('0x4a')]},'raw':!![]})['then'](function(_0xadec3d){if(_0xadec3d&&_0xadec3d[_0xc7fd('0x4b')]===0x0){return db['UserProfileResource'][_0xc7fd('0x44')]({'name':_0x54c568['name'],'resourceId':_0x54c568['id'],'type':_0xadec3d[_0xc7fd('0x23')],'sectionId':_0xadec3d['id']},{})['then'](function(){return _0xe02159;});}else{return _0xe02159;}})[_0xc7fd('0x3e')](function(_0x54f634){logger['error'](_0xc7fd('0x4c'),_0x54f634);throw _0x54f634;});}return _0xe02159;})['then'](respondWithResult(_0x2f700b,0xc9))['catch'](handleError(_0x2f700b,null));};exports['update']=function(_0x27f7c4,_0x43b8cf){if(_0x27f7c4['body']['id']){delete _0x27f7c4[_0xc7fd('0x45')]['id'];}return db['Variable'][_0xc7fd('0x43')]({'where':{'id':_0x27f7c4[_0xc7fd('0x40')]['id']}})[_0xc7fd('0x1d')](handleEntityNotFound(_0x43b8cf,null))[_0xc7fd('0x1d')](saveUpdates(_0x27f7c4[_0xc7fd('0x45')],null))[_0xc7fd('0x1d')](respondWithResult(_0x43b8cf,null))['catch'](handleError(_0x43b8cf,null));};exports[_0xc7fd('0x4d')]=function(_0x587469,_0x587f74){return db[_0xc7fd('0x27')][_0xc7fd('0x43')]({'where':{'id':_0x587469[_0xc7fd('0x40')]['id']}})['then'](handleEntityNotFound(_0x587f74,null))[_0xc7fd('0x1d')](removeEntity(_0x587f74,null))[_0xc7fd('0x3e')](handleError(_0x587f74,null));};