diff options
Diffstat (limited to 'internal/paging')
-rw-r--r-- | internal/paging/page.go | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/internal/paging/page.go b/internal/paging/page.go index 0a9bc71b1..a56f674dd 100644 --- a/internal/paging/page.go +++ b/internal/paging/page.go @@ -205,12 +205,21 @@ func (p *Page) Prev(lo, hi string) *Page { return p2 } +// ToLink performs ToLinkURL() and calls .String() on the resulting URL. +func (p *Page) ToLink(proto, host, path string, queryParams url.Values) string { + u := p.ToLinkURL(proto, host, path, queryParams) + if u == nil { + return "" + } + return u.String() +} + // ToLink builds a URL link for given endpoint information and extra query parameters, // appending this Page's minimum / maximum boundaries and available limit (if any). -func (p *Page) ToLink(proto, host, path string, queryParams url.Values) string { +func (p *Page) ToLinkURL(proto, host, path string, queryParams url.Values) *url.URL { if p == nil { // no paging. - return "" + return nil } if queryParams == nil { @@ -234,10 +243,10 @@ func (p *Page) ToLink(proto, host, path string, queryParams url.Values) string { } // Build URL string. - return (&url.URL{ + return &url.URL{ Scheme: proto, Host: host, Path: path, RawQuery: queryParams.Encode(), - }).String() + } } |