enbas/internal/client/errors.go
Dan Anglin dd6c21afe8
All checks were successful
REUSE Compliance Check / check (push) Successful in 6s
refactor: clean up errors
- Created generic Error types to remove the need to import the errors
  package.
- Used the generic Error types in place of the single use custom Error
  types that have no fields.
- Created new Error types where necessary.

PR: #50
2024-08-17 11:31:06 +01:00

51 lines
923 B
Go

package client
import "fmt"
type ResponseError struct {
StatusCode int
Message string
MessageDecodeErr error
}
func (e ResponseError) Error() string {
if e.MessageDecodeErr != nil {
return fmt.Sprintf(
"received HTTP code %d from the instance but was unable to decode the error message: %v",
e.StatusCode,
e.MessageDecodeErr,
)
}
if e.Message == "" {
return fmt.Sprintf(
"received HTTP code %d from the instance but no error message was provided",
e.StatusCode,
)
}
return fmt.Sprintf(
"message received from the instance: (%d) %q",
e.StatusCode,
e.Message,
)
}
type BadStatusCodeError struct {
statusCode int
}
func (e BadStatusCodeError) Error() string {
return fmt.Sprintf(
"did not receive an OK response from the GoToSocial server: got %d",
e.statusCode,
)
}
type Error struct {
message string
}
func (e Error) Error() string {
return e.message
}