Spaces:
Running
Running
// _ _ | |
// __ _____ __ ___ ___ __ _| |_ ___ | |
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ | |
// \ V V / __/ (_| |\ V /| | (_| | || __/ | |
// \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| | |
// | |
// Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. | |
// | |
// CONTACT: [email protected] | |
// | |
package objects | |
import ( | |
"fmt" | |
) | |
// objects status code | |
const ( | |
StatusForbidden = 403 | |
StatusBadRequest = 400 | |
StatusNotFound = 404 | |
StatusUnprocessableEntity = 422 | |
StatusInternalServerError = 500 | |
) | |
type Error struct { | |
Msg string | |
Code int | |
Err error | |
} | |
// Error implements error interface | |
func (e *Error) Error() string { | |
return fmt.Sprintf("msg:%s code:%v err:%v", e.Msg, e.Code, e.Err) | |
} | |
// Unwrap underlying error | |
func (e *Error) Unwrap() error { | |
return e.Err | |
} | |
func (e *Error) NotFound() bool { | |
return e.Code == StatusNotFound | |
} | |
func (e *Error) Forbidden() bool { | |
return e.Code == StatusForbidden | |
} | |
func (e *Error) BadRequest() bool { | |
return e.Code == StatusBadRequest | |
} | |
func (e *Error) UnprocessableEntity() bool { | |
return e.Code == StatusUnprocessableEntity | |
} | |
// ErrInvalidUserInput indicates a client-side error | |
type ErrInvalidUserInput struct { | |
msg string | |
} | |
func (e ErrInvalidUserInput) Error() string { | |
return e.msg | |
} | |
// NewErrInvalidUserInput with Errorf signature | |
func NewErrInvalidUserInput(format string, args ...interface{}) ErrInvalidUserInput { | |
return ErrInvalidUserInput{msg: fmt.Sprintf(format, args...)} | |
} | |
// ErrInternal indicates something went wrong during processing | |
type ErrInternal struct { | |
msg string | |
} | |
func (e ErrInternal) Error() string { | |
return e.msg | |
} | |
// NewErrInternal with Errorf signature | |
func NewErrInternal(format string, args ...interface{}) ErrInternal { | |
return ErrInternal{msg: fmt.Sprintf(format, args...)} | |
} | |
// ErrNotFound indicates the desired resource doesn't exist | |
type ErrNotFound struct { | |
msg string | |
} | |
func (e ErrNotFound) Error() string { | |
return e.msg | |
} | |
// NewErrNotFound with Errorf signature | |
func NewErrNotFound(format string, args ...interface{}) ErrNotFound { | |
return ErrNotFound{msg: fmt.Sprintf(format, args...)} | |
} | |
type ErrMultiTenancy struct { | |
err error | |
} | |
func (e ErrMultiTenancy) Error() string { | |
return e.err.Error() | |
} | |
// NewErrMultiTenancy with error signature | |
func NewErrMultiTenancy(err error) ErrMultiTenancy { | |
return ErrMultiTenancy{err} | |
} | |