From 2b1ed1a467134533dae7010516828337427e2aec Mon Sep 17 00:00:00 2001 From: Swizec Teller Date: Fri, 30 Oct 2015 16:21:22 -0700 Subject: [PATCH 1/2] Enable access to full request/response body --- lib/shift_planning/api_error.rb | 6 +++++- lib/shift_planning/client.rb | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/shift_planning/api_error.rb b/lib/shift_planning/api_error.rb index 20a7f49..003933d 100644 --- a/lib/shift_planning/api_error.rb +++ b/lib/shift_planning/api_error.rb @@ -1,9 +1,13 @@ module ShiftPlanning class ApiError < Exception attr_accessor :message + attr_accessor :request_body + attr_accessor :response_body - def initialize(response) + def initialize(response, request_body, response_body) @message = message_for_status(response["status"]) + @request_body = request_body + @repsonse_body = response_body end def message_for_status(status) diff --git a/lib/shift_planning/client.rb b/lib/shift_planning/client.rb index a42b361..abadbf0 100644 --- a/lib/shift_planning/client.rb +++ b/lib/shift_planning/client.rb @@ -52,7 +52,7 @@ def request(method, api_module, request) }) response = HTTP.with(@headers).post(@url, body) result = JSON.parse(response) - raise ApiError.new(result) if @strict && is_error_response?(result) + raise ApiError.new(result, body, response) if @strict && is_error_response?(result) result end From 969feed158929231a5ff6ebc305e6673145d1ed7 Mon Sep 17 00:00:00 2001 From: Swizec Teller Date: Fri, 30 Oct 2015 16:33:54 -0700 Subject: [PATCH 2/2] Typo fix --- lib/shift_planning/api_error.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/shift_planning/api_error.rb b/lib/shift_planning/api_error.rb index 003933d..8d33d9d 100644 --- a/lib/shift_planning/api_error.rb +++ b/lib/shift_planning/api_error.rb @@ -7,7 +7,7 @@ class ApiError < Exception def initialize(response, request_body, response_body) @message = message_for_status(response["status"]) @request_body = request_body - @repsonse_body = response_body + @response_body = response_body end def message_for_status(status)