mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-01-09 21:20:49 -06:00
47 lines
2.3 KiB
Go
47 lines
2.3 KiB
Go
package core
|
|
|
|
import (
|
|
"errors"
|
|
"net/http"
|
|
)
|
|
|
|
type Error struct {
|
|
Status int `json:"status"`
|
|
Code string `json:"code"`
|
|
Message string `json:"msg"`
|
|
}
|
|
|
|
func NewError(httpStatus int, code, msg string) error {
|
|
return &Error{
|
|
Status: httpStatus,
|
|
Code: code,
|
|
Message: msg,
|
|
}
|
|
}
|
|
|
|
func (e Error) Error() string {
|
|
return e.Message
|
|
}
|
|
|
|
func Is(err, target error) bool {
|
|
return errors.Is(err, target)
|
|
}
|
|
|
|
var (
|
|
ErrInsufficientPermissions = NewError(http.StatusUnauthorized, "insufficient_permissions", "Insufficient permissions")
|
|
ErrResourceNotFound = NewError(http.StatusNotFound, "resource_not_found", "No such file or directory")
|
|
ErrResourceNotCollection = NewError(http.StatusMethodNotAllowed, "resource_not_collection", "Cannot add a member to a non-collection resource")
|
|
ErrResourceCollection = NewError(http.StatusMethodNotAllowed, "resource_collection", "Cannot write contents to a collection resource")
|
|
ErrResourceIDConflict = NewError(http.StatusConflict, "resource_id_conflict", "Another resource with this ID already exists on the server")
|
|
ErrResourcePathInvalid = NewError(http.StatusBadRequest, "resource_path_invalid", "Resource path is invalid")
|
|
ErrResourceNameInvalid = NewError(http.StatusBadRequest, "resource_name_invalid", "Resource name is invalid")
|
|
ErrResourceNameConflict = NewError(http.StatusPreconditionFailed, "resource_name_conflict", "Another resource with this name already exists")
|
|
ErrResourceMoveTargetSubdirectory = NewError(http.StatusConflict, "move_target_subdirectory", "Cannot move a resource to its own subdirectory")
|
|
ErrResourceCopyTargetSelf = NewError(http.StatusConflict, "copy_target_self", "Cannot overwrite a resource with itself")
|
|
ErrResourceDeleted = NewError(http.StatusPreconditionFailed, "resource_deleted", "Resource is deleted")
|
|
ErrParentNotFound = NewError(http.StatusConflict, "parent_not_found", "Parent not found")
|
|
ErrParentDeleted = NewError(http.StatusConflict, "parent_deleted", "Parent deleted")
|
|
ErrPublinkNameConflict = NewError(http.StatusPreconditionFailed, "publink_name_conflict", "Another public share with this name already exists")
|
|
ErrVersionNotFound = NewError(http.StatusNotFound, "version_not_found", "Version Not Foud")
|
|
)
|