Skip to content

Commit 7df4572

Browse files
Add validation_errors prop and get_validation_error_messages method to SeamHttpInvalidInputError
1 parent 0e79fcc commit 7df4572

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

lib/seam/errors.rb

+7
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,16 @@ def initialize(request_id)
2222
end
2323

2424
class SeamHttpInvalidInputError < SeamHttpApiError
25+
attr_reader :validation_errors
26+
2527
def initialize(error, status_code, request_id)
2628
super(error, status_code, request_id)
2729
@code = "invalid_input"
30+
@validation_errors = error["validation_errors"] || {}
31+
end
32+
33+
def get_validation_error_messages(param_name)
34+
@validation_errors.dig(param_name, "_errors") || []
2835
end
2936
end
3037

lib/seam/request.rb

+7-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,13 @@ def handle_error_response(response, _method, _uri)
4444
data: error["data"]
4545
}
4646

47-
raise Errors::SeamHttpInvalidInputError.new(error_details, status_code, request_id) if error_type == "invalid_input"
47+
if error_type == "invalid_input"
48+
error_details["validation_errors"] = error["validation_errors"]
49+
50+
raise Errors::SeamHttpInvalidInputError.new(
51+
error_details, status_code, request_id
52+
)
53+
end
4854

4955
raise Errors::SeamHttpApiError.new(error_details, status_code, request_id)
5056
end

0 commit comments

Comments
 (0)