mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-02 02:59:00 -05:00
70 lines
1.5 KiB
Go
70 lines
1.5 KiB
Go
package godata
|
|
|
|
import "fmt"
|
|
|
|
type GoDataError struct {
|
|
ResponseCode int
|
|
Message string
|
|
Cause error
|
|
}
|
|
|
|
func (err *GoDataError) Error() string {
|
|
if err.Cause != nil {
|
|
return fmt.Sprintf("%s. Cause: %s", err.Message, err.Cause.Error())
|
|
}
|
|
return err.Message
|
|
}
|
|
|
|
func (err *GoDataError) Unwrap() error {
|
|
return err.Cause
|
|
}
|
|
|
|
func (err *GoDataError) SetCause(e error) *GoDataError {
|
|
err.Cause = e
|
|
return err
|
|
}
|
|
|
|
func BadRequestError(message string) *GoDataError {
|
|
return &GoDataError{400, message, nil}
|
|
}
|
|
|
|
func NotFoundError(message string) *GoDataError {
|
|
return &GoDataError{404, message, nil}
|
|
}
|
|
|
|
func MethodNotAllowedError(message string) *GoDataError {
|
|
return &GoDataError{405, message, nil}
|
|
}
|
|
|
|
func GoneError(message string) *GoDataError {
|
|
return &GoDataError{410, message, nil}
|
|
}
|
|
|
|
func PreconditionFailedError(message string) *GoDataError {
|
|
return &GoDataError{412, message, nil}
|
|
}
|
|
|
|
func InternalServerError(message string) *GoDataError {
|
|
return &GoDataError{500, message, nil}
|
|
}
|
|
|
|
func NotImplementedError(message string) *GoDataError {
|
|
return &GoDataError{501, message, nil}
|
|
}
|
|
|
|
type UnsupportedQueryParameterError struct {
|
|
Parameter string
|
|
}
|
|
|
|
func (err *UnsupportedQueryParameterError) Error() string {
|
|
return fmt.Sprintf("Query parameter '%s' is not supported", err.Parameter)
|
|
}
|
|
|
|
type DuplicateQueryParameterError struct {
|
|
Parameter string
|
|
}
|
|
|
|
func (err *DuplicateQueryParameterError) Error() string {
|
|
return fmt.Sprintf("Query parameter '%s' cannot be specified more than once", err.Parameter)
|
|
}
|