Files
kopia/internal/server/api_error.go
Jarek Kowalski a8e4d50600 build(deps): upgraded linter to v1.55.2, fixed warnings (#3611)
* build(deps): upgraded linter to v1.55.2, fixed warnings

* removed unsafe hacks with better equivalents

* test fixes
2024-02-02 23:34:34 -08:00

41 lines
1.0 KiB
Go

package server
import (
"fmt"
"net/http"
"github.com/pkg/errors"
"github.com/kopia/kopia/internal/serverapi"
)
type apiError struct {
httpErrorCode int
apiErrorCode serverapi.APIErrorCode
message string
}
func requestError(apiErrorCode serverapi.APIErrorCode, message string) *apiError {
return &apiError{http.StatusBadRequest, apiErrorCode, message}
}
func unableToDecodeRequest(err error) *apiError {
return requestError(serverapi.ErrorMalformedRequest, "unable to decode request: "+err.Error())
}
func notFoundError(message string) *apiError {
return &apiError{http.StatusNotFound, serverapi.ErrorNotFound, message}
}
func accessDeniedError() *apiError {
return &apiError{http.StatusForbidden, serverapi.ErrorAccessDenied, "access is denied"}
}
func repositoryNotWritableError() *apiError {
return internalServerError(errors.Errorf("repository is not writable"))
}
func internalServerError(err error) *apiError {
return &apiError{http.StatusInternalServerError, serverapi.ErrorInternal, fmt.Sprintf("internal server error: %v", err)}
}