Skip to content

Commit

Permalink
[Feature #159068263] Add /GET/:id entries endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
olusoladavid committed Jul 19, 2018
1 parent d983b34 commit 6ac052c
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 2 deletions.
12 changes: 12 additions & 0 deletions server/controllers/getEntry.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import entries from '../db/entries';

const getEntry = (req, res) => {
const found = entries.find(entry => entry.id === Number(req.params.id));
if (found) {
res.status(200).json(found);
} else {
res.status(404).json({ error: 'Entry does not exist.' });
}
};

export default getEntry;
4 changes: 4 additions & 0 deletions server/routes/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import express from 'express';
import getAllEntries from '../controllers/getAllEntries';
import getEntry from '../controllers/getEntry';

const router = express.Router();

Expand All @@ -11,4 +12,7 @@ router.get('/', (req, res) => {
/* GET all user entries */
router.get('/entries', getAllEntries);

/* GET a single entry */
router.get('/entries/:id', getEntry);

export default router;
33 changes: 31 additions & 2 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ describe('/GET API base', () => {
});
});

describe('/GET entry', () => {
it('it should GET all entries', (done) => {
describe('/GET entries', () => {
it('should return all user entries', (done) => {
chai
.request(app)
.get('/api/v1/entries')
Expand All @@ -32,3 +32,32 @@ describe('/GET entry', () => {
});
});
});

describe('/GET/:id entries', () => {
it('should return a single entry by id', (done) => {
chai
.request(app)
.get('/api/v1/entries/1')
.end((err, res) => {
expect(res).to.have.status(200);
expect(res.body).to.be.an('object');
expect(res.body.id).to.be.eql(1);
expect(res.body).to.have.property('timestamp');
expect(res.body).to.have.property('title');
expect(res.body).to.have.property('content');
done();
});
});

it('should not return an entry', (done) => {
chai
.request(app)
.get('/api/v1/entries/0')
.end((err, res) => {
expect(res).to.have.status(404);
expect(res.body).to.be.an('object');
expect(res.body).to.have.property('error');
done();
});
});
});

0 comments on commit 6ac052c

Please sign in to comment.