From 52280c4fa7ab0e0d92a9038280d5ebd55edcb49e Mon Sep 17 00:00:00 2001 From: Michael Hayes Date: Wed, 14 May 2014 11:58:31 -0700 Subject: [PATCH] fallback --- lib/config.json | 3 ++- lib/controllers/get_package.js | 12 +++++++++++- lib/models/Package.js | 19 ------------------- package.json | 6 +++--- 4 files changed, 16 insertions(+), 24 deletions(-) diff --git a/lib/config.json b/lib/config.json index a47c931..83f2d0b 100644 --- a/lib/config.json +++ b/lib/config.json @@ -16,5 +16,6 @@ "auth" : { "authenticated_gets": false, "whitelist": ["/_session", "/-/user/org.couchdb.user:*"] - } + }, + "fallback": false } diff --git a/lib/controllers/get_package.js b/lib/controllers/get_package.js index b55a969..d17aeb9 100644 --- a/lib/controllers/get_package.js +++ b/lib/controllers/get_package.js @@ -25,7 +25,7 @@ function get_package(context, route, respond) { } if(!meta) { - return respond.not_found() + return not_found() } if(!version) { @@ -44,4 +44,14 @@ function get_package(context, route, respond) { return base_url + '/' + name + '/-/' + name + '-' + version + '.tgz' } + function not_found() { + if(!context.config.fallback) { + return respond.not_found() + } + + context.res.writeHead(302, { + Location: context.config.fallback + context.route.path + }) + context.res.end() + } } diff --git a/lib/models/Package.js b/lib/models/Package.js index 6a9e03f..74f7801 100644 --- a/lib/models/Package.js +++ b/lib/models/Package.js @@ -1,6 +1,5 @@ var guard = require('../utils/guard') , context = require('../context') - , request = require('request') , semver = require('semver') , path = require('path') , Package = {} @@ -12,7 +11,6 @@ Package.removeVersion = remove_version Package.getVersions = get_versions Package.publish = publish Package.remove = remove -Package.add = add var methods = [ 'getMeta' @@ -202,20 +200,3 @@ function save_meta(name, version, tags, meta, done) { }) }) } - -function add(name, version, tags, meta, tarball, done) { - var req - - try { - req = request(tarball) - req.pipe(Package.setTarball(name, version)) - req.on('error', function(err) { - done(err) - }) - req.on('end', function() { - save_meta(name, version, tags, meta, done) - }) - } catch(err) { - done(err) - } -} diff --git a/package.json b/package.json index f71c50c..936093f 100644 --- a/package.json +++ b/package.json @@ -17,10 +17,9 @@ "concat-stream": "1.4.1", "mkdirp": "0.3.5", "password-hash": "1.2.1", - "request": "2.33.0", "semver": "2.2.1", "nopt": "2.2.0", - "unpm-router": "0.0.3", + "unpm-router": "0.0.4", "continuation-local-storage": "3.0.0", "unpm-fs-backend": "0.0.7", "unpm-auth": "0.1.3", @@ -34,7 +33,8 @@ "coveralls": "2.8.0", "mocha-lcov-reporter": "0.0.1", "unpm-mem-backend": "0.4.1", - "jsl": "0.1.1" + "jsl": "0.1.1", + "request": "^2.34.0" }, "repository": { "type": "git",