Skip to content

Commit

Permalink
mozillascience#26 lint and clean up the codes
Browse files Browse the repository at this point in the history
  • Loading branch information
aid29 committed Jul 7, 2015
1 parent e1eec8a commit c6815b8
Show file tree
Hide file tree
Showing 4 changed files with 96 additions and 87 deletions.
46 changes: 29 additions & 17 deletions src/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,27 @@ module.exports = function () {
var express = require('express'),
helpers = require('./helpers'),
app = express(),
path = require('path');
path = require('path');

app.set('view engine', 'jade');
app.use(express.static(path.join(__dirname, '..', '/public')));

function returnBadges(getBadges, httpRequest, httpResponse) {
getBadges(function (error, badges) {
if (error !== null) {
console.log("Get error from return Badges " + error);
console.log('Get error from return Badges ' + error);
httpResponse.send(error);
} else {
if (httpRequest.query.pretty) {
httpResponse.render(path.join(__dirname, '..', '/public/code.jade'), {
data: JSON.stringify(badges, null, 2)
});
} else {
} else {
httpResponse.json(badges);
}
}
});
};
}

// Set the client credentials and the OAuth2 server
var credentials = {
Expand Down Expand Up @@ -81,10 +81,7 @@ module.exports = function () {
});
});

var auth = {
key: env.get('BADGES_KEY'),
secret: env.get('BADGES_SECRET')
};
/* Get all badges from system */

app.get('/badges', function (request, response) {
returnBadges(badgerService.getAllBadges(), request, response);
Expand All @@ -102,8 +99,8 @@ module.exports = function () {
if (!orcid) {
response.status(400).end();
return;
}
returnBadges(badgerService.getBadges(orcid), request, response);
}
returnBadges(badgerService.getBadges(orcid), request, response);
});

// Get all badge instances of a certain badge earned by a user
Expand All @@ -121,21 +118,27 @@ module.exports = function () {

// THIS DOES NOT WORK!!
// Get all badge instances for a paper.
app.get('/papers/:doi1/:doi2/badges', function (request, response) {
app.get('/papers/:doi1/:doi2/badges', function (request, response) {
if (!request.params.doi1 || !request.params.doi2) {
response.status(400).end();
return;
}
returnBadges(badgerService.getBadges(null, null, {'_1':request.params.doi1 , '_2':request.params.doi2}), request, response);
returnBadges(badgerService.getBadges(null, null, {
'_1': request.params.doi1,
'_2': request.params.doi2
}), request, response);
});

// Get all badge instances of a certain badge for a paper. NOTE: inefficiently filters for doi afterwards
app.get('/papers/:doi1/:doi2/badges/:badge', function (request, response) {
app.get('/papers/:doi1/:doi2/badges/:badge', function (request, response) {
if (!request.params.doi1 || !request.params.doi2) {
response.status(400).end();
return;
}
returnBadges(badgerService.getBadges(null, request.params.badge, {'_1':request.params.doi1 , '_2':request.params.doi2}), request, response);
returnBadges(badgerService.getBadges(null, request.params.badge, {
'_1': request.params.doi1,
'_2': request.params.doi2
}), request, response);
});

// Get all badge instances earned by a user for a paper.
Expand All @@ -144,7 +147,10 @@ module.exports = function () {
response.status(400).end();
return;
}
returnBadges(badgerService.getBadges(request.params.orcid, null, {'_1':request.params.doi1 , '_2':request.params.doi2}), request, response);
returnBadges(badgerService.getBadges(request.params.orcid, null, {
'_1': request.params.doi1,
'_2': request.params.doi2
}), request, response);
});

// Get all badge instances of a certain badge earned by a user for a paper.
Expand All @@ -153,7 +159,10 @@ module.exports = function () {
response.status(400).end();
return;
}
returnBadges(badgerService.getBadges(request.params.orcid, request.params.badge, {'_1':request.params.doi1 , '_2':request.params.doi2}), request, response);
returnBadges(badgerService.getBadges(request.params.orcid, request.params.badge, {
'_1': request.params.doi1,
'_2': request.params.doi2
}), request, response);
});

// Create a badge instance -- need to add auth around this
Expand All @@ -162,7 +171,10 @@ module.exports = function () {
response.status(400).end();
return;
}
returnBadges(badgerService.createBadge(request.params.orcid, request.params.badge, {'_1':request.params.doi1 , '_2':request.params.doi2}), request, response);
returnBadges(badgerService.createBadge(request.params.orcid, request.params.badge, {
'_1': request.params.doi1,
'_2': request.params.doi2
}), request, response);
});

app.get('*', function (request, response) {
Expand Down
2 changes: 1 addition & 1 deletion src/badgeClient.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ module.exports = function (config) {
};

return new ApiClient(config.get('BADGES_ENDPOINT'), auth);
}
};
25 changes: 12 additions & 13 deletions src/badgeService.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
module.exports = function (apiClient, config) {
var system = config.get('BADGES_SYSTEM');
var helpers = require('./helpers');
var helpers = require('./helpers');

function _createBadge(orcid, badge, dois) {
return function (callback) {
var evidence = helpers.urlFromDOI(dois._1 + '/' + dois._2);
return function (callback) {
var evidence = helpers.urlFromDOI(dois._1 + '/' + dois._2);
var context = {
system: system,
badge: badge,
Expand All @@ -19,16 +19,16 @@ module.exports = function (apiClient, config) {
console.error(err);
return callback(err);
}
helpers.modEntry(badgeResult, orcid);
helpers.modEntry(badgeResult, orcid);

callback(null, badgeResult);
callback(null, badgeResult);
});
};
}

function _getBadges(orcid, badge, dois) {
return function (callback) {
var evidenceUrl = dois ? helpers.urlFromDOI(dois._1 + '/' + dois._2) : null;
return function (callback) {
var evidenceUrl = dois ? helpers.urlFromDOI(dois._1 + '/' + dois._2) : null;

var clientCallback = function (err, badges) {
if (err) {
Expand All @@ -37,9 +37,9 @@ module.exports = function (apiClient, config) {
}

// filter for the badge
if (badges) {
if (badges) {
filtered = badges.filter(function (entry) {
var goodBadge = (!badge || entry.badge.slug === badge);
var goodBadge = (!badge || entry.badge.slug === badge);
var goodDoi = (!dois || entry.evidenceUrl === evidenceUrl);
return goodBadge && goodDoi;
});
Expand All @@ -52,24 +52,23 @@ module.exports = function (apiClient, config) {

if (filtered && filtered.length === 0) {
callback('client return empty result');
} else {
} else {
callback(null, filtered);
}
}
};

if (orcid) {
var filtered;
apiClient.getBadgeInstances({
system: system
}, helpers.emailFromORCID(orcid), clientCallback);
} else {
} else {
var filtered;
apiClient.getBadgeInstances({
system: system,
badge: badge
}, clientCallback);
}

};
}

Expand Down
110 changes: 54 additions & 56 deletions test/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,13 @@ var testEnv = Habitat.load('.env');
var badgeClient = require('../src/badgeClient.js')(testEnv);
var badgeService = require('../src/badgeService.js')(badgeClient, testEnv);
var app = require('../src/app.js')(badgeService);

describe("Intergration test against the real Badge server", function () {

describe('Intergration test against the real Badge server', function () {
it('get all the badges', function (done) {
request(app)
.get('/badges')
.expect('Content-Type', /json/)
.expect(function (res) {
assert.ok(res.body[0].slug, "not find badge slug in json");
assert.ok(res.body[0].slug, 'not find badge slug in json');
})
.expect(200, done);
});
Expand All @@ -31,79 +29,79 @@ describe("Intergration test against the real Badge server", function () {
request(app)
.get('/badges/formal_analysis')
.expect('Content-Type', /json/)
.expect(function (res) {
assert.ok(res.body[0].slug, "not find badge slug in json");
assert.equal(res.body[0].badge.name, "Formal analysis");
//assert.equal(res.body[0].email, null); ?? bug??
})
.expect(function (res) {
assert.ok(res.body[0].slug, 'not find badge slug in json');
assert.equal(res.body[0].badge.name, 'Formal analysis');
// assert.equal(res.body[0].email, null); ?? bug??
})
.expect(200, done);
});

it('get all badge instances earned by a user', function (done) {
request(app)
.get('/users/0000-0003-4959-3049/badges')
.expect('Content-Type', /json/)
.expect(function (res) {
assert.ok(res.body[0].slug, "not find one badge slug in json");
assert.equal(res.body[0].orcid, "0000-0003-4959-3049");
})
.expect(200, done);
.get('/users/0000-0003-4959-3049/badges')
.expect('Content-Type', /json/)
.expect(function (res) {
assert.ok(res.body[0].slug, 'not find one badge slug in json');
assert.equal(res.body[0].orcid, '0000-0003-4959-3049');
})
.expect(200, done);
});

it('get all badge instances of a certain badge earned by a user', function (done) {
request(app)
.get('/users/0000-0003-4959-3049/badges/writing_review')
.expect(function (res) {
assert.ok(res.body[0].slug, "not find one badge slug in json");
assert.equal(res.body[0].badge.name, 'Writing - review & editing');
assert.equal(res.body[0].orcid, '0000-0003-4959-3049');
})
.expect(200, done);
.get('/users/0000-0003-4959-3049/badges/writing_review')
.expect(function (res) {
assert.ok(res.body[0].slug, 'not find one badge slug in json');
assert.equal(res.body[0].badge.name, 'Writing - review & editing');
assert.equal(res.body[0].orcid, '0000-0003-4959-3049');
})
.expect(200, done);
});

it('get all badge instances of a certain badge for a paper.', function (done) {
request(app)
.get('/papers/10.1371/journal.pbio.1002126/badges/investigation')
.expect(function (res) {
assert.ok(res.body[0].slug, "not find one badge slug in json");
assert.equal(res.body[0].badge.name, 'Investigation');
assert.equal(res.body[0].evidenceUrl, 'http://dx.doi.org/10.1371/journal.pbio.1002126');
})
.expect(200, done);
.get('/papers/10.1371/journal.pbio.1002126/badges/investigation')
.expect(function (res) {
assert.ok(res.body[0].slug, 'not find one badge slug in json');
assert.equal(res.body[0].badge.name, 'Investigation');
assert.equal(res.body[0].evidenceUrl, 'http://dx.doi.org/10.1371/journal.pbio.1002126');
})
.expect(200, done);
});

it('get all badge instances earned by a user for a paper.', function (done) {
request(app)
.get('/papers/10.1371/journal.pbio.1002126/users/0000-0003-4959-3049/badges')
.expect(function (res) {
assert.ok(res.body[0].slug, "not find one badge slug in json");
assert.equal(res.body[0].orcid, '0000-0003-4959-3049');
assert.equal(res.body[0].evidenceUrl, 'http://dx.doi.org/10.1371/journal.pbio.1002126');
})
.expect(200, done);
.get('/papers/10.1371/journal.pbio.1002126/users/0000-0003-4959-3049/badges')
.expect(function (res) {
assert.ok(res.body[0].slug, 'not find one badge slug in json');
assert.equal(res.body[0].orcid, '0000-0003-4959-3049');
assert.equal(res.body[0].evidenceUrl, 'http://dx.doi.org/10.1371/journal.pbio.1002126');
})
.expect(200, done);
});

it('get all badge instances of a certain badge earned by a user for a paper.', function (done) {
request(app)
.get('/papers/10.1371/journal.pbio.1002126/users/0000-0003-4959-3049/badges/investigation')
.expect(function (res) {
assert.ok(res.body[0].slug, "not find one badge slug in json");
assert.equal(res.body[0].badge.name, 'Investigation');
assert.equal(res.body[0].orcid, '0000-0003-4959-3049');
assert.equal(res.body[0].evidenceUrl, 'http://dx.doi.org/10.1371/journal.pbio.1002126');
})
.expect(200, done);
.get('/papers/10.1371/journal.pbio.1002126/users/0000-0003-4959-3049/badges/investigation')
.expect(function (res) {
assert.ok(res.body[0].slug, 'not find one badge slug in json');
assert.equal(res.body[0].badge.name, 'Investigation');
assert.equal(res.body[0].orcid, '0000-0003-4959-3049');
assert.equal(res.body[0].evidenceUrl, 'http://dx.doi.org/10.1371/journal.pbio.1002126');
})
.expect(200, done);
});

// it('Create a badge instance', function (done) {
// var newOrcid = '0000-0003-4959' + Math.floor(Math.random()*1000) + '-test';
// request(app)
// .post('/papers/10.1371/journal.pbio.1002126/users/' + newOrcid + '/badges/investigation')
// .expect(function (res) {
// assert.ok(res.body[0].slug, "not find one badge slug in json");
// assert.equal(res.body[0].badge.name, 'Investigation');
// assert.equal(res.body[0].orcid, newOrcid);
// })
// .expect(200, done);
// });
// it('Create a badge instance', function (done) {
// var newOrcid = '0000-0003-4959' + Math.floor(Math.random() * 1000) + '-test';
// request(app)
// .post('/papers/10.1371/journal.pbio.1002126/users/' + newOrcid + '/badges/investigation')
// .expect(function (res) {
// assert.ok(res.body[0].slug, 'not find one badge slug in json');
// assert.equal(res.body[0].badge.name, 'Investigation');
// assert.equal(res.body[0].orcid, newOrcid);
// })
// .expect(200, done);
// });
});

0 comments on commit c6815b8

Please sign in to comment.