forked from TrueCloudLab/frostfs-s3-gw
Refactoring getAPIErrorResponse method
should receive base error type instead of custom errors Signed-off-by: Evgeniy Kulikov <kim@nspcc.ru>
This commit is contained in:
parent
0b533e189e
commit
d2d54cbdaa
1 changed files with 22 additions and 3 deletions
|
@ -1626,14 +1626,23 @@ func GetAPIError(code ErrorCode) Error {
|
||||||
|
|
||||||
// getErrorResponse gets in standard error and resource value and
|
// getErrorResponse gets in standard error and resource value and
|
||||||
// provides a encodable populated response values
|
// provides a encodable populated response values
|
||||||
func getAPIErrorResponse(ctx context.Context, err Error, resource, requestID, hostID string) ErrorResponse {
|
func getAPIErrorResponse(ctx context.Context, err error, resource, requestID, hostID string) ErrorResponse {
|
||||||
|
code := "BadRequest"
|
||||||
|
desc := err.Error()
|
||||||
|
|
||||||
info := GetReqInfo(ctx)
|
info := GetReqInfo(ctx)
|
||||||
if info == nil {
|
if info == nil {
|
||||||
info = &ReqInfo{}
|
info = &ReqInfo{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if e, ok := err.(Error); ok {
|
||||||
|
code = e.Code
|
||||||
|
desc = e.Description
|
||||||
|
}
|
||||||
|
|
||||||
return ErrorResponse{
|
return ErrorResponse{
|
||||||
Code: err.Code,
|
Code: code,
|
||||||
Message: err.Description,
|
Message: desc,
|
||||||
BucketName: info.BucketName,
|
BucketName: info.BucketName,
|
||||||
Key: info.ObjectName,
|
Key: info.ObjectName,
|
||||||
Resource: resource,
|
Resource: resource,
|
||||||
|
@ -2000,3 +2009,13 @@ type PreConditionFailed struct{}
|
||||||
func (e PreConditionFailed) Error() string {
|
func (e PreConditionFailed) Error() string {
|
||||||
return "At least one of the pre-conditions you specified did not hold"
|
return "At least one of the pre-conditions you specified did not hold"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeleteError - returns when cant remove object
|
||||||
|
type DeleteError struct {
|
||||||
|
Err error
|
||||||
|
Object string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e DeleteError) Error() string {
|
||||||
|
return fmt.Sprintf("%s (%s)", e.Err, e.Object)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue