More sanity checking on passed IDs

This commit is contained in:
Jonathan Cremin 2014-12-05 18:08:40 +00:00
parent a33570e1d0
commit ff698cff14
4 changed files with 22 additions and 2 deletions

View file

@ -24,6 +24,7 @@ module.exports.match = function(url, type) {
module.exports.lookupId = function(id) {
var deferred = Q.defer();
if (id.substr(0,2) == "al") {
request.get(apiRoot + "/albums/" + id + "/images/default?size=medium&client_id=" + credentials.key).redirects(0).end(function(res) {
var artwork = res.headers.location;
@ -65,6 +66,10 @@ module.exports.lookupId = function(id) {
});
});
});
} else {
var error = new Error("Not Found");
error.status = 404;
deferred.reject(error);
}
return deferred.promise;
};

View file

@ -18,6 +18,12 @@ module.exports.lookupId = function(id, type) {
request.get(apiRoot + path, function(res) {
var result = res.body;
if (res.body.error) {
var error = new Error("Not Found");
error.status = 404;
deferred.reject(error);
return;
}
var cover = result.cover || result.album.cover;
request.get(cover).redirects(0).end(function(res) {
var artwork = res.headers.location.replace("120x120", "200x200");

View file

@ -19,8 +19,11 @@ module.exports.lookupId = function(id, type) {
request.get(apiRoot + path, function(res) {
var data = JSON.parse(res.text);
if (!data.results[0].collectionId) {
deferred.resolve({service: "itunes"});
if (!data.results || !data.results[0].collectionId) {
var error = new Error("Not Found");
error.status = 404;
deferred.reject(error);
return;
} else {
var result = data.results[0];

View file

@ -25,6 +25,12 @@ module.exports.lookupId = function(id) {
method: 'getObjectFromShortCode',
short_code: id,
}, function(err, results) {
if (err || !JSON.parse(results).result) {
var error = new Error("Not Found");
error.status = 404;
deferred.reject(error);
return;
}
var result = JSON.parse(results).result;
var parsed = parse(result.shortUrl)
var id = parsed.path.replace("/x/", "").replace("/", "");