255
}
256
switch completion.State {
257
>
case nexus.OperationStateFailed, nexus.OperationStateCanceled:
completion.go
258
>
if !isMediaTypeJSON(request.Header.Get("Content-Type")) {
259
h.WriteFailure(writer, request, nexus.NewHandlerErrorf(nexus.HandlerErrorTypeBadRequest, "invalid request content type: %q", request.Header.Get("Content-Type")))
260
return
261
}
263
>
b, err := io.ReadAll(request.Body)
264
>
if err != nil {
265
h.WriteFailure(writer, request, nexus.NewHandlerErrorf(nexus.HandlerErrorTypeBadRequest, "failed to read Failure from request body"))
266
return
267
}
268
>
if err := json.Unmarshal(b, &failure); err != nil {
completion.go
269
h.WriteFailure(writer, request, nexus.NewHandlerErrorf(nexus.HandlerErrorTypeBadRequest, "failed to decode Failure from request body"))
270
return
271
}
272
>
completionErr, err := h.FailureConverter.FailureToError(failure)
completion.go
273
>
if err != nil {
274
h.WriteFailure(writer, request, nexus.NewHandlerErrorf(nexus.HandlerErrorTypeBadRequest, "failed to decode Failure from request body"))
275
return
276
}
277
>
opErr, ok := completionErr.(*nexus.OperationError)
completion.go
278
>
if !ok {
279
// Backwards compatibility: wrap non-OperationError errors in an OperationError with the appropriate state.
280
completion.Error = &nexus.OperationError{