mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-12-16 21:56:25 -05:00
upstream error handling
This commit is contained in:
parent
e92e582b88
commit
f0f1f76286
3 changed files with 20 additions and 8 deletions
13
lib/index.js
13
lib/index.js
|
@ -109,16 +109,25 @@ module.exports = function(config_hash) {
|
|||
if (req.params.argument.split(':')[0] !== 'org.couchdb.user') return next('route');
|
||||
res.status(200);
|
||||
return res.send({
|
||||
ok: 'hello there'
|
||||
ok: 'you are authenticated as "' + req.user + '"',
|
||||
});
|
||||
});
|
||||
|
||||
app.put('/-/user/:argument', function(req, res, next) {
|
||||
// can't put 'org.couchdb.user' in route address for some reason
|
||||
if (req.params.argument.split(':')[0] !== 'org.couchdb.user') return next('route');
|
||||
res.status(409);
|
||||
return res.send({
|
||||
error: 'registration is not implemented',
|
||||
});
|
||||
});
|
||||
|
||||
app.put('/-/user/:argument/-rev/*', function(req, res, next) {
|
||||
// can't put 'org.couchdb.user' in route address for some reason
|
||||
if (req.params.argument.split(':')[0] !== 'org.couchdb.user') return next('route');
|
||||
res.status(201);
|
||||
return res.send({
|
||||
ok: 'we don\'t accept new users, but pretend that we do...',
|
||||
ok: 'you are authenticated as "' + req.user + '"',
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -23,6 +23,9 @@ Storage.prototype.get_package = function(name, callback) {
|
|||
ca: this.ca,
|
||||
}, function(err, res, body) {
|
||||
if (err) return callback(err);
|
||||
if (!(res.statusCode >= 200 && res.statusCode < 300)) {
|
||||
return callback(new Error('bad status code: ' + res.statusCode));
|
||||
}
|
||||
callback(null, body);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -53,18 +53,18 @@ Storage.prototype.get_package = function(name, callback) {
|
|||
up.get_package(name, function(err, up_res) {
|
||||
if (err) return cb();
|
||||
|
||||
var this_version = up_res['dist-tags'].latest;
|
||||
if (!semver.gt(latest, this_version) && this_version) {
|
||||
latest = this_version;
|
||||
var is_latest = true;
|
||||
}
|
||||
|
||||
try {
|
||||
utils.validate_metadata(up_res, name);
|
||||
} catch(err) {
|
||||
return cb();
|
||||
}
|
||||
|
||||
var this_version = up_res['dist-tags'].latest;
|
||||
if (!semver.gt(latest, this_version) && this_version) {
|
||||
latest = this_version;
|
||||
var is_latest = true;
|
||||
}
|
||||
|
||||
['versions', 'dist-tags'].forEach(function(key) {
|
||||
for (var i in up_res[key]) {
|
||||
if (!result[key][i] || is_latest) {
|
||||
|
|
Loading…
Reference in a new issue