MCPcopy Create free account
hub / github.com/compozy/agh / nativeHTTPStatusToolError

Function nativeHTTPStatusToolError

internal/daemon/native_bundle_resource_tools.go:472–505  ·  view source on GitHub ↗
(id toolspkg.ToolID, err error, status int)

Source from the content-addressed store, hash-verified

470}
471
472func nativeHTTPStatusToolError(id toolspkg.ToolID, err error, status int) error {
473 code := toolspkg.ErrorCodeBackendFailed
474 cause := toolspkg.ErrToolBackendFailed
475 reason := toolspkg.ReasonBackendUnhealthy
476 switch status {
477 case http.StatusBadRequest, http.StatusUnprocessableEntity, http.StatusRequestEntityTooLarge:
478 code = toolspkg.ErrorCodeInvalidInput
479 cause = toolspkg.ErrToolInvalidInput
480 reason = toolspkg.ReasonConfigValidationFailed
481 case http.StatusForbidden:
482 code = toolspkg.ErrorCodeDenied
483 cause = toolspkg.ErrToolDenied
484 reason = toolspkg.ReasonPolicyDenied
485 case http.StatusNotFound:
486 code = toolspkg.ErrorCodeNotFound
487 cause = toolspkg.ErrToolNotFound
488 reason = toolspkg.ReasonToolUnknown
489 case http.StatusConflict:
490 code = toolspkg.ErrorCodeConflict
491 cause = toolspkg.ErrToolConflict
492 reason = toolspkg.ReasonConflictedID
493 case http.StatusServiceUnavailable:
494 code = toolspkg.ErrorCodeUnavailable
495 cause = toolspkg.ErrToolUnavailable
496 reason = toolspkg.ReasonDependencyMissing
497 }
498 return toolspkg.NewToolError(
499 code,
500 id,
501 err.Error(),
502 fmt.Errorf("%w: %w", cause, err),
503 reason,
504 )
505}

Callers 2

nativeBundleToolErrorFunction · 0.85
nativeResourceToolErrorFunction · 0.85

Calls 1

ErrorMethod · 0.45

Tested by

no test coverage detected