@@ -146,19 +146,23 @@ func (svr *Server) Health(w http.ResponseWriter, _ *http.Request) error {
146
146
return nil
147
147
}
148
148
149
+ // HandleGet handles the GET request for commitments.
150
+ // Note: even when an error is returned, the commitment meta is still returned,
151
+ // because it is needed for metrics (see the WithMetrics middleware).
152
+ // TODO: we should change this behavior and instead use a custom error that contains the commitment meta.
149
153
func (svr * Server ) HandleGet (w http.ResponseWriter , r * http.Request ) (commitments.CommitmentMeta , error ) {
150
154
meta , err := ReadCommitmentMeta (r )
151
155
if err != nil {
152
156
err = fmt .Errorf ("invalid commitment mode: %w" , err )
153
157
svr .WriteBadRequest (w , err )
154
- return commitments. CommitmentMeta {} , err
158
+ return meta , err
155
159
}
156
160
key := path .Base (r .URL .Path )
157
161
comm , err := commitments .StringToDecodedCommitment (key , meta .Mode )
158
162
if err != nil {
159
163
err = fmt .Errorf ("failed to decode commitment from key %v (commitment mode %v): %w" , key , meta .Mode , err )
160
164
svr .WriteBadRequest (w , err )
161
- return commitments. CommitmentMeta {} , err
165
+ return meta , err
162
166
}
163
167
164
168
input , err := svr .router .Get (r .Context (), comm , meta .Mode )
@@ -169,26 +173,30 @@ func (svr *Server) HandleGet(w http.ResponseWriter, r *http.Request) (commitment
169
173
} else {
170
174
svr .WriteInternalError (w , err )
171
175
}
172
- return commitments. CommitmentMeta {} , err
176
+ return meta , err
173
177
}
174
178
175
179
svr .WriteResponse (w , input )
176
180
return meta , nil
177
181
}
178
182
183
+ // HandlePut handles the PUT request for commitments.
184
+ // Note: even when an error is returned, the commitment meta is still returned,
185
+ // because it is needed for metrics (see the WithMetrics middleware).
186
+ // TODO: we should change this behavior and instead use a custom error that contains the commitment meta.
179
187
func (svr * Server ) HandlePut (w http.ResponseWriter , r * http.Request ) (commitments.CommitmentMeta , error ) {
180
188
meta , err := ReadCommitmentMeta (r )
181
189
if err != nil {
182
190
err = fmt .Errorf ("invalid commitment mode: %w" , err )
183
191
svr .WriteBadRequest (w , err )
184
- return commitments. CommitmentMeta {} , err
192
+ return meta , err
185
193
}
186
194
187
195
input , err := io .ReadAll (r .Body )
188
196
if err != nil {
189
197
err = fmt .Errorf ("failed to read request body: %w" , err )
190
198
svr .WriteBadRequest (w , err )
191
- return commitments. CommitmentMeta {} , err
199
+ return meta , err
192
200
}
193
201
194
202
key := path .Base (r .URL .Path )
@@ -199,7 +207,7 @@ func (svr *Server) HandlePut(w http.ResponseWriter, r *http.Request) (commitment
199
207
if err != nil {
200
208
err = fmt .Errorf ("failed to decode commitment from key %v (commitment mode %v): %w" , key , meta .Mode , err )
201
209
svr .WriteBadRequest (w , err )
202
- return commitments. CommitmentMeta {} , err
210
+ return meta , err
203
211
}
204
212
}
205
213
@@ -214,7 +222,7 @@ func (svr *Server) HandlePut(w http.ResponseWriter, r *http.Request) (commitment
214
222
if err != nil {
215
223
err = fmt .Errorf ("failed to encode commitment %v (commitment mode %v): %w" , commitment , meta .Mode , err )
216
224
svr .WriteInternalError (w , err )
217
- return commitments. CommitmentMeta {} , err
225
+ return meta , err
218
226
}
219
227
220
228
svr .log .Info (fmt .Sprintf ("write commitment: %x\n " , comm ))
0 commit comments