drone/internal/api/render/errors.go
Johannes Batzill b7b9f53b0d Improve error handling to match go standards - don't wrap and rethrow, but log and return. Also adds some more validations for path creation and resource moving. Add accesslogging for git and api router (#14)
This commit contains the following:
- Improve and simplify error handling (remove unnecessary wrappers, make it feel like go)
- Add extra validation for path creation and resource moving (path has to be within same top space, no top space alias allowed)
- Add access logging for rest api and git api
2022-09-09 22:08:46 -07:00

58 lines
2.0 KiB
Go

// Copyright 2021 Harness Inc. All rights reserved.
// Use of this source code is governed by the Polyform Free Trial License
// that can be found in the LICENSE.md file for this repository.
package render
var (
// ErrInternal is returned when an internal error occured.
ErrInternal = New("Internal error occured")
// ErrInvalidToken is returned when the api request token is invalid.
ErrInvalidToken = New("Invalid or missing token")
// ErrBadRequest is returned when there was an issue with the user input.
ErrBadRequest = New("Bad Request")
// ErrUnauthorized is returned when the user is not authorized.
ErrUnauthorized = New("Unauthorized")
// ErrForbidden is returned when user access is forbidden.
ErrForbidden = New("Forbidden")
// ErrNotFound is returned when a resource is not found.
ErrNotFound = New("Not Found")
// ErrNoChange is returned when no change was found based on the request.
ErrNoChange = New("No Change")
// ErrDuplicate is returned when a resource already exits.
ErrDuplicate = New("Resource already exists")
// ErrPrimaryPathCantBeDeleted is returned when the user is trying to delete a primary path.
ErrPrimaryPathCantBeDeleted = New("The primary path of an object can't be deleted")
// ErrPathTooLong is returned if user action would lead to a path that is too long.
ErrPathTooLong = New("The resource path is too long")
// ErrCyclicHierarchy is returned if the user action would create a cyclic dependency between spaces
ErrCyclicHierarchy = New(("Unable to perform the action as it would lead to a cyclic dependency."))
// ErrSpaceWithChildsCantBeDeleted is returned if the user is trying to delete a space that still has child resources
ErrSpaceWithChildsCantBeDeleted = New("Space can't be deleted as it still contains child resources.")
)
// Error represents a json-encoded API error.
type Error struct {
Message string `json:"message"`
}
func (e *Error) Error() string {
return e.Message
}
// New returns a new error message.
func New(text string) *Error {
return &Error{Message: text}
}