Skip to content

Commit

Permalink
Merge pull request #100 from e-ucm/fixremove
Browse files Browse the repository at this point in the history
Added fix in delete data sessions uris
  • Loading branch information
Dan Cristian, Rotaru authored Apr 4, 2017
2 parents de235d1 + fa3d831 commit cb5fd20
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 22 deletions.
9 changes: 9 additions & 0 deletions a-backend-roles.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,15 @@ exports.app = {
{
roles: 'teacher',
allows: [
{
resources: [
'/sessions/data/:sessionId',
'/sessions/data/:sessionId/:user'
],
permissions: [
'delete'
]
},
{
resources: [
'/analysis/:id',
Expand Down
39 changes: 20 additions & 19 deletions lib/sessions.js
Original file line number Diff line number Diff line change
Expand Up @@ -399,40 +399,41 @@ module.exports = (function () {
return Q.all(promises);
};

var getAnalysisIndicesReplace = function(versionId, sessionId, user) {
var getAnalysisIndicesReplace = function(defaultConfig, versionId, sessionId, user) {
return analysis.findById(versionId, true).then(function(result) {
if (!result) {
throw {
message: 'versionId not found',
status: 404
};
// Use the default analysis files
result = {};
result.indicesPath = defaultConfig.analysisFolder + '/indices.json';
}
var data = fs.readFileSync(result.indicesPath, 'utf8');
var returnObject = {indices: []};
var obj = JSON.parse(data);
obj.indices.forEach(function(indice) {
returnObject.indices.push(indice.replace(obj.sessionKey, sessionId));
});
if (user && obj.userKey && obj.query) {
if (obj.userKey) {
var string = JSON.stringify(obj.query);
var stringWithUser = string.replace(obj.userKey, user);
returnObject.query = JSON.parse(stringWithUser);
if (obj.indices) {
obj.indices.forEach(function(indice) {
returnObject.indices.push(indice.replace(obj.sessionKey, sessionId));
});
if (user && obj.userKey && obj.query) {
if (obj.userKey) {
var string = JSON.stringify(obj.query);
var stringWithUser = string.replace(obj.userKey, user);
returnObject.query = JSON.parse(stringWithUser);
}
}
}
return returnObject;
});
};

sessions.deleteAnalysisData = function (sessionId, esClient) {
return sessions.find({_id: sessionId}, true).then(function(result) {
sessions.deleteAnalysisData = function (defaultConfig, sessionId, esClient) {
return sessions.findById(sessionId, true).then(function(result) {
if (!result) {
throw {
message: 'Session not found',
status: 404
};
}
return getAnalysisIndicesReplace(result.versionId, sessionId).then(function (result) {
return getAnalysisIndicesReplace(defaultConfig, result.versionId, sessionId).then(function (result) {
var deferred = Q.defer();
esClient.indices.delete({
index: result.indices
Expand All @@ -449,15 +450,15 @@ module.exports = (function () {
});
};

sessions.deleteUserData = function (sessionId, userData, esClient) {
return sessions.find({_id: sessionId}, true).then(function(result) {
sessions.deleteUserData = function (defaultConfig, sessionId, userData, esClient) {
return sessions.findById(sessionId, true).then(function(result) {
if (!result) {
throw {
message: 'Session not found',
status: 404
};
}
return getAnalysisIndicesReplace(result.versionId, sessionId, userData).then(function(result) {
return getAnalysisIndicesReplace(defaultConfig, result.versionId, sessionId, userData).then(function(result) {
var deferred = Q.defer();

if (!result.query) {
Expand Down
6 changes: 3 additions & 3 deletions routes/sessions.js
Original file line number Diff line number Diff line change
Expand Up @@ -543,7 +543,7 @@ module.exports = function (kafkaService, stormService) {
});

/**
* @api {delete} /sessions/data/:versionId/:sessionId Remove the session analysis data with the id sessionId.
* @api {delete} /sessions/data/:sessionId Remove the session analysis data with the id sessionId.
* @apiName deleteSessions
* @apiGroup Sessions
*
Expand All @@ -559,7 +559,7 @@ module.exports = function (kafkaService, stormService) {
*
*/
router.delete('/data/:sessionId/', function (req, res) {
restUtils.processResponse(sessions.deleteAnalysisData(req.params.sessionId, req.app.esClient), res);
restUtils.processResponse(sessions.deleteAnalysisData(req.app.config.storm, req.params.sessionId, req.app.esClient), res);
});

/**
Expand All @@ -579,7 +579,7 @@ module.exports = function (kafkaService, stormService) {
*
*/
router.delete('/data/:sessionId/:user', function (req, res) {
restUtils.processResponse(sessions.deleteUserData(req.params.sessionId, req.params.user, req.app.esClient), res);
restUtils.processResponse(sessions.deleteUserData(req.app.config.storm, req.params.sessionId, req.params.user, req.app.esClient), res);
});

return router;
Expand Down

0 comments on commit cb5fd20

Please sign in to comment.