From ed5260885298fe4752182a8f1232b3327c252559 Mon Sep 17 00:00:00 2001 From: Apehaenger Date: Tue, 12 Jan 2021 12:57:28 +0100 Subject: [PATCH] Make Response.Path return the path on error --- internal/elements.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/internal/elements.go b/internal/elements.go index 11d04ad..f5df41d 100644 --- a/internal/elements.go +++ b/internal/elements.go @@ -135,13 +135,14 @@ func NewOKResponse(path string) *Response { } func (resp *Response) Path() (string, error) { - if err := resp.Status.Err(); err != nil { - return "", err + err := resp.Status.Err() + var path string + if len(resp.Hrefs) == 1 { + path = resp.Hrefs[0].Path + } else if err == nil { + err = fmt.Errorf("webdav: malformed response: expected exactly one href element, got %v", len(resp.Hrefs)) } - if len(resp.Hrefs) != 1 { - return "", fmt.Errorf("webdav: malformed response: expected exactly one href element, got %v", len(resp.Hrefs)) - } - return resp.Hrefs[0].Path, nil + return path, err } func (resp *Response) DecodeProp(values ...interface{}) error {