Screenshot resizing works in the UI now. Still missing rate limiting.

This commit is contained in:
Simo Kinnunen
2014-05-21 14:07:53 +09:00
parent e56d757cde
commit c0d02c4e3a
8 changed files with 43 additions and 47 deletions

View File

@@ -7,11 +7,10 @@ var formidable = require('formidable')
var Promise = require('bluebird')
var logger = require('../../util/logger')
var requtil = require('../../util/requtil')
var Storage = require('../../util/storage')
module.exports = function(options) {
var log = logger.createLogger('storage-temp')
var log = logger.createLogger('storage:temp')
, app = express()
, server = http.createServer(app)
, storage = new Storage()
@@ -24,7 +23,7 @@ module.exports = function(options) {
log.info('Cleaning up inactive resource "%s"', id)
})
app.post('/api/v1/resources', function(req, res) {
app.post('/api/v1/s/:type', function(req, res) {
var form = new formidable.IncomingForm()
Promise.promisify(form.parse, form)(req)
.spread(function(fields, files) {
@@ -45,10 +44,12 @@ module.exports = function(options) {
storedFiles.forEach(function(file) {
mapped[file.field] = {
date: new Date()
, url: util.format(
'http://%s:%s/api/v1/resources/%s%s'
, options.publicIp
, options.port
, type: req.params.type
, id: file.id
, name: file.name
, href: util.format(
'/api/v1/s/%s/%s%s'
, req.params.type
, file.id
, file.name
? util.format('/%s', path.basename(file.name))
@@ -60,14 +61,6 @@ module.exports = function(options) {
})()
})
})
.catch(requtil.ValidationError, function(err) {
res.status(400)
.json({
success: false
, error: 'ValidationError'
, validationErrors: err.errors
})
})
.catch(function(err) {
log.error('Error storing resource', err.stack)
res.status(500)
@@ -78,18 +71,7 @@ module.exports = function(options) {
})
})
app.get('/api/v1/resources/:id', function(req, res) {
var file = storage.retrieve(req.params.id)
if (file) {
res.set('Content-Type', file.type)
res.sendfile(file.path)
}
else {
res.send(404)
}
})
app.get('/api/v1/resources/:id/*', function(req, res) {
app.get('/api/v1/s/:type/:id/*', function(req, res) {
var file = storage.retrieve(req.params.id)
if (file) {
res.set('Content-Type', file.type)