all: encode hrefs, replace hrefs with path in public API

Closes: https://github.com/emersion/go-webdav/issues/14
Closes: https://github.com/emersion/go-webdav/issues/16
This commit is contained in:
Simon Ser
2020-01-22 11:07:30 +01:00
parent 72c96af206
commit 6eeeccb96e
11 changed files with 96 additions and 92 deletions

View File

@@ -42,16 +42,16 @@ func (c *Client) FindCurrentUserPrincipal() (string, error) {
return "", fmt.Errorf("webdav: unauthenticated")
}
return prop.Href, nil
return prop.Href.Path, nil
}
func fileInfoFromResponse(resp *internal.Response) (*FileInfo, error) {
href, err := resp.Href()
path, err := resp.Path()
if err != nil {
return nil, err
}
fi := &FileInfo{Href: href}
fi := &FileInfo{Path: path}
var resType internal.ResourceType
if err := resp.DecodeProp(&resType); err != nil {
@@ -193,12 +193,7 @@ func (c *Client) CopyAll(name, dest string, overwrite bool) error {
return err
}
dest, err = c.ic.ResolveHref(dest)
if err != nil {
return err
}
req.Header.Set("Destination", dest)
req.Header.Set("Destination", c.ic.ResolveHref(dest).String())
req.Header.Set("Overwrite", internal.FormatOverwrite(overwrite))
_, err = c.ic.Do(req)
@@ -211,12 +206,7 @@ func (c *Client) MoveAll(name, dest string, overwrite bool) error {
return err
}
dest, err = c.ic.ResolveHref(dest)
if err != nil {
return err
}
req.Header.Set("Destination", dest)
req.Header.Set("Destination", c.ic.ResolveHref(dest).String())
req.Header.Set("Overwrite", internal.FormatOverwrite(overwrite))
_, err = c.ic.Do(req)