From 1a2119a1a3b3083f20bd0e00b1cd9f99080455f0 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes de Oliveira <lfo14@inf.ufpr.br> Date: Fri, 25 Aug 2017 09:48:15 -0300 Subject: [PATCH] Issue #28: Add error field in API error responses Signed-off-by: Lucas Fernandes de Oliveira <lfo14@inf.ufpr.br> --- src/api/controllers/data.spec.ts | 6 ++++++ src/api/controllers/data.ts | 14 ++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/api/controllers/data.spec.ts b/src/api/controllers/data.spec.ts index 4e1ca99c..429a0f27 100644 --- a/src/api/controllers/data.spec.ts +++ b/src/api/controllers/data.spec.ts @@ -52,9 +52,12 @@ describe("API data controller", () => { .expect((res: any) => { const message = "Query execution failed: " + "Could not construct query with the paramters given."; + const error = "The metric named met:-1 was not found"; expect(res.body).to.be.an("object"); expect(res.body).to.have.property("message"); + expect(res.body).to.have.property("error"); expect(res.body.message).to.be.eql(message); + expect(res.body.error).to.be.eql(error); }) .end(done); }); @@ -67,9 +70,12 @@ describe("API data controller", () => { .expect((res: any) => { const message = "Query execution failed: " + "Could not construct query with the paramters given."; + const error = "The dimension named dim:11 was not found"; expect(res.body).to.be.an("object"); expect(res.body).to.have.property("message"); + expect(res.body).to.have.property("error"); expect(res.body.message).to.be.eql(message); + expect(res.body.error).to.be.eql(error); }) .end(done); }); diff --git a/src/api/controllers/data.ts b/src/api/controllers/data.ts index 97b55a49..154adb99 100644 --- a/src/api/controllers/data.ts +++ b/src/api/controllers/data.ts @@ -48,15 +48,21 @@ export class DataCtrl { view = req.engine.query(query); } catch (e) { - res.status(500).json({ message: "Query execution failed: " + - "Could not construct query with the paramters given." }); + res.status(500).json({ + message: "Query execution failed: " + + "Could not construct query with the paramters given.", + error: e.message + }); return; } req.adapter.getDataFromView(view, (err: Error, result: any[]) => { if (err) { - res.status(500).json({ message: "Query execution failed " + - "failed on execute query on database." }); + res.status(500).json({ + message: "Query execution failed " + + "failed on execute query on database.", + error: err + }); return; } -- GitLab