From d3a7c77a3c4b720dadc4db3860fef13ef845f145 Mon Sep 17 00:00:00 2001 From: Frank Mitchell Date: Fri, 20 May 2016 16:02:14 -0400 Subject: [PATCH] Handles requests for specific nested properties. --- lib/control/v1/conqueso.js | 9 +++++---- test/conqueso-api-v1.js | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/control/v1/conqueso.js b/lib/control/v1/conqueso.js index c8f4847..41297d5 100644 --- a/lib/control/v1/conqueso.js +++ b/lib/control/v1/conqueso.js @@ -100,7 +100,7 @@ function makeConquesoProperties(properties) { results = translateConquesoAddresses(results); results = flatten(results); - return makeJavaProperties(results); + return results; } /** @@ -113,12 +113,13 @@ function Conqueso(app, storage) { // Conqueso compatible APIs are defined before the generic catch all route. app.get('/v1/conqueso/api/roles/:role/properties/:property', (req, res) => { const property = req.params.property; + const properties = makeConquesoProperties(storage.properties); res.set('Content-Type', 'text/plain'); res.status(HTTP_OK); - if (property && (property in storage.properties)) { - res.end(String(storage.properties[property])); + if (property && (properties.hasOwnProperty(property))) { + res.end(String(properties[property])); } else { res.end(); } @@ -137,7 +138,7 @@ function Conqueso(app, storage) { route.get((req, res) => { res.set('Content-Type', 'text/plain'); res.status(HTTP_OK); - res.end(makeConquesoProperties(storage.properties)); + res.end(makeJavaProperties(makeConquesoProperties(storage.properties))); }); // Express defaults to using the GET route for HEAD requests. diff --git a/test/conqueso-api-v1.js b/test/conqueso-api-v1.js index 6113597..10ae6d4 100644 --- a/test/conqueso-api-v1.js +++ b/test/conqueso-api-v1.js @@ -150,15 +150,15 @@ describe('Conqueso API v1', () => { it('retrieves a specific property if it exists', (done) => { request(server) - .get('/v1/conqueso/api/roles/global/properties/name') + .get('/v1/conqueso/api/roles/global/properties/food.name') .set('Accept', 'text/plain') .expect('Content-Type', 'text/plain; charset=utf-8') - .expect(HTTP_OK, 'hipster-mode-enabled', done); + .expect(HTTP_OK, 'tacos', done); }); it('returns no data if a specific property does not exist', (done) => { request(server) - .get('/v1/conqueso/api/roles/global/properties/bogus') + .get('/v1/conqueso/api/roles/global/properties/food.gluten') .set('Accept', 'text/plain') .expect('Content-Type', 'text/plain; charset=utf-8') .expect(HTTP_OK, '', done);