New API route to retrieve a screenshot

This commit is contained in:
Gaël Métais
2015-02-05 17:27:21 +01:00
parent 55dc387d3c
commit efa4151850
4 changed files with 114 additions and 7 deletions
+19 -5
View File
@@ -27,7 +27,7 @@ var ApiController = function(app) {
url: req.body.url,
waitForResponse: req.body.waitForResponse !== false && req.body.waitForResponse !== 'false' && req.body.waitForResponse !== 0,
partialResult: req.body.partialResult || null,
screenshot: req.body.screenshot !== false && req.body.screenshot !== 'false' && req.body.screenshot !== 0
screenshot: req.body.screenshot || false
}
};
@@ -78,7 +78,7 @@ var ApiController = function(app) {
if (run.params.screenshot) {
// Replace the empty promise created earlier with Q.resolve()
screenshotPromise = screenshot.toThumbnail(640)
screenshotPromise = screenshot.toThumbnail(600)
// Read screenshot
.then(function(screenshotBuffer) {
@@ -88,11 +88,9 @@ var ApiController = function(app) {
data.screenshotBuffer = screenshotBuffer;
// Official path to get the image
data.screenshotUrl = '/result/' + data.runId + '/screenshot.jpg';
data.screenshotUrl = '/api/results/' + data.runId + '/screenshot.jpg';
}
delete data.params.options.screenshot;
})
// Delete screenshot temporary file
.then(screenshot.deleteTmpFile);
@@ -104,6 +102,7 @@ var ApiController = function(app) {
// Save results
.then(function() {
delete data.params.options.screenshot;
return resultsDatastore.saveResult(data);
})
@@ -270,6 +269,21 @@ var ApiController = function(app) {
});
}
// Retrive one result by id
app.get('/api/results/:id/screenshot.jpg', function(req, res) {
var runId = req.params.id;
resultsDatastore.getScreenshot(runId)
.then(function(screenshotBuffer) {
res.setHeader('Content-Type', 'image/jpeg');
res.send(screenshotBuffer);
}).fail(function() {
res.status(404).send('Not found');
});
});
};
module.exports = ApiController;