StatusForNetworkError maps network-domain errors to transport statuses.
(err error)
| 596 | |
| 597 | // StatusForNetworkError maps network-domain errors to transport statuses. |
| 598 | func StatusForNetworkError(err error) int { |
| 599 | switch { |
| 600 | case err == nil: |
| 601 | return http.StatusOK |
| 602 | case errors.Is(err, ErrNetworkValidation): |
| 603 | return http.StatusBadRequest |
| 604 | case errors.Is(err, network.ErrLocalPeerNotFound), |
| 605 | errors.Is(err, network.ErrTargetPeerNotFound), |
| 606 | errors.Is(err, store.ErrNetworkConversationNotFound), |
| 607 | errors.Is(err, sql.ErrNoRows): |
| 608 | return http.StatusNotFound |
| 609 | case errors.Is(err, store.ErrNetworkDirectRoomCollision), |
| 610 | errors.Is(err, store.ErrNetworkWorkContainerMismatch), |
| 611 | errors.Is(err, store.ErrNetworkWorkClosed): |
| 612 | return http.StatusConflict |
| 613 | case errors.Is(err, network.ErrMissingField), |
| 614 | errors.Is(err, network.ErrInvalidField), |
| 615 | errors.Is(err, network.ErrInvalidKind), |
| 616 | errors.Is(err, network.ErrInvalidBody), |
| 617 | errors.Is(err, network.ErrExpired), |
| 618 | errors.Is(err, network.ErrReplayTooOld), |
| 619 | errors.Is(err, network.ErrLegacyFieldRejected): |
| 620 | return http.StatusBadRequest |
| 621 | default: |
| 622 | return http.StatusInternalServerError |
| 623 | } |
| 624 | } |
| 625 | |
| 626 | // NewModelCatalogValidationError wraps a model catalog request validation failure. |
| 627 | func NewModelCatalogValidationError(err error) error { |