From d5a8bc17ebc7b164a25fc8022be92506386046e3 Mon Sep 17 00:00:00 2001 From: Lucas Holmquist Date: Thu, 1 Mar 2018 08:47:38 -0500 Subject: [PATCH] fix: creating a item should return the newly created value. (#81) fixes #79 --- lib/api/fruits.js | 2 +- lib/routes/fruits.js | 5 +++-- test/fruits-test.js | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/api/fruits.js b/lib/api/fruits.js index 6e9566f3..0734b688 100644 --- a/lib/api/fruits.js +++ b/lib/api/fruits.js @@ -11,7 +11,7 @@ function findAll () { } function create (name, stock) { - return db.query('INSERT INTO products (name, stock) VALUES ($1, $2)', [name, stock]); + return db.query('INSERT INTO products (name, stock) VALUES ($1, $2) RETURNING *', [name, stock]); } function update (options = {}) { diff --git a/lib/routes/fruits.js b/lib/routes/fruits.js index a715ebaf..935b61f3 100644 --- a/lib/routes/fruits.js +++ b/lib/routes/fruits.js @@ -29,8 +29,9 @@ router.get('/fruits', (request, response) => { router.post('/fruits', validations.validateCreate, (request, response) => { const {name, stock} = request.body; - return fruits.create(name, stock).then(() => { - response.sendStatus(201); + return fruits.create(name, stock).then((result) => { + response.status(201); + return response.send(result.rows[0]); }).catch((err) => { response.status(400); response.send(err); diff --git a/test/fruits-test.js b/test/fruits-test.js index c873147d..d1664be9 100644 --- a/test/fruits-test.js +++ b/test/fruits-test.js @@ -145,7 +145,7 @@ test('test POST fruit', (t) => { create: (name, stock) => { t.equal(name, fruitData.name, `respone.body.name should be ${fruitData.name}`); t.equal(stock, fruitData.stock, `respone.body.stock should be ${fruitData.stock}`); - return Promise.resolve(); + return Promise.resolve({rows: []}); } };