summaryrefslogtreecommitdiff
path: root/internal/paging
diff options
context:
space:
mode:
Diffstat (limited to 'internal/paging')
-rw-r--r--internal/paging/page.go17
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()
+ }
}