@@ -43,6 +43,9 @@ class APIError < OpenAI::Errors::Error
43
43
# @return [Integer, nil]
44
44
attr_accessor :status
45
45
46
+ # @return [Hash{String=>String}, nil]
47
+ attr_accessor :headers
48
+
46
49
# @return [Object, nil]
47
50
attr_accessor :body
48
51
@@ -59,13 +62,15 @@ class APIError < OpenAI::Errors::Error
59
62
#
60
63
# @param url [URI::Generic]
61
64
# @param status [Integer, nil]
65
+ # @param headers [Hash{String=>String}, nil]
62
66
# @param body [Object, nil]
63
67
# @param request [nil]
64
68
# @param response [nil]
65
69
# @param message [String, nil]
66
- def initialize ( url :, status : nil , body : nil , request : nil , response : nil , message : nil )
70
+ def initialize ( url :, status : nil , headers : nil , body : nil , request : nil , response : nil , message : nil )
67
71
@url = url
68
72
@status = status
73
+ @headers = headers
69
74
@body = body
70
75
@request = request
71
76
@response = response
@@ -98,13 +103,15 @@ class APIConnectionError < OpenAI::Errors::APIError
98
103
#
99
104
# @param url [URI::Generic]
100
105
# @param status [nil]
106
+ # @param headers [Hash{String=>String}, nil]
101
107
# @param body [nil]
102
108
# @param request [nil]
103
109
# @param response [nil]
104
110
# @param message [String, nil]
105
111
def initialize (
106
112
url :,
107
113
status : nil ,
114
+ headers : nil ,
108
115
body : nil ,
109
116
request : nil ,
110
117
response : nil ,
@@ -119,13 +126,15 @@ class APITimeoutError < OpenAI::Errors::APIConnectionError
119
126
#
120
127
# @param url [URI::Generic]
121
128
# @param status [nil]
129
+ # @param headers [Hash{String=>String}, nil]
122
130
# @param body [nil]
123
131
# @param request [nil]
124
132
# @param response [nil]
125
133
# @param message [String, nil]
126
134
def initialize (
127
135
url :,
128
136
status : nil ,
137
+ headers : nil ,
129
138
body : nil ,
130
139
request : nil ,
131
140
response : nil ,
@@ -140,21 +149,24 @@ class APIStatusError < OpenAI::Errors::APIError
140
149
#
141
150
# @param url [URI::Generic]
142
151
# @param status [Integer]
152
+ # @param headers [Hash{String=>String}, nil]
143
153
# @param body [Object, nil]
144
154
# @param request [nil]
145
155
# @param response [nil]
146
156
# @param message [String, nil]
147
157
#
148
158
# @return [self]
149
- def self . for ( url :, status :, body :, request :, response :, message : nil )
150
- kwargs = {
151
- url : url ,
152
- status : status ,
153
- body : body ,
154
- request : request ,
155
- response : response ,
156
- message : message
157
- }
159
+ def self . for ( url :, status :, headers :, body :, request :, response :, message : nil )
160
+ kwargs =
161
+ {
162
+ url : url ,
163
+ status : status ,
164
+ headers : headers ,
165
+ body : body ,
166
+ request : request ,
167
+ response : response ,
168
+ message : message
169
+ }
158
170
159
171
case status
160
172
in 400
@@ -198,18 +210,20 @@ def self.for(url:, status:, body:, request:, response:, message: nil)
198
210
#
199
211
# @param url [URI::Generic]
200
212
# @param status [Integer]
213
+ # @param headers [Hash{String=>String}, nil]
201
214
# @param body [Object, nil]
202
215
# @param request [nil]
203
216
# @param response [nil]
204
217
# @param message [String, nil]
205
- def initialize ( url :, status :, body :, request :, response :, message : nil )
218
+ def initialize ( url :, status :, headers : , body :, request :, response :, message : nil )
206
219
message ||= OpenAI ::Internal ::Util . dig ( body , :message ) { { url : url . to_s , status : status , body : body } }
207
220
@code = OpenAI ::Internal ::Type ::Converter . coerce ( String , OpenAI ::Internal ::Util . dig ( body , :code ) )
208
221
@param = OpenAI ::Internal ::Type ::Converter . coerce ( String , OpenAI ::Internal ::Util . dig ( body , :param ) )
209
222
@type = OpenAI ::Internal ::Type ::Converter . coerce ( String , OpenAI ::Internal ::Util . dig ( body , :type ) )
210
223
super (
211
224
url : url ,
212
225
status : status ,
226
+ headers : headers ,
213
227
body : body ,
214
228
request : request ,
215
229
response : response ,
0 commit comments