summaryrefslogtreecommitdiff
path: root/internal/util/timeline.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/util/timeline.go')
-rw-r--r--internal/util/timeline.go23
1 files changed, 18 insertions, 5 deletions
diff --git a/internal/util/timeline.go b/internal/util/timeline.go
index 929464add..bdb0f3f03 100644
--- a/internal/util/timeline.go
+++ b/internal/util/timeline.go
@@ -61,12 +61,15 @@ func PackageTimelineableResponse(params TimelineableResponseParams) (*apimodel.T
Items: params.Items,
}
- // prepare the next and previous links
if len(params.Items) != 0 {
protocol := config.GetProtocol()
host := config.GetHost()
- nextRaw := fmt.Sprintf("limit=%d&%s=%s", params.Limit, params.NextMaxIDKey, params.NextMaxIDValue)
+ // next
+ nextRaw := params.NextMaxIDKey + "=" + params.NextMaxIDValue
+ if params.Limit != 0 {
+ nextRaw = fmt.Sprintf("limit=%d&", params.Limit) + nextRaw
+ }
for _, p := range params.ExtraQueryParams {
nextRaw = nextRaw + "&" + p
}
@@ -76,9 +79,14 @@ func PackageTimelineableResponse(params TimelineableResponseParams) (*apimodel.T
Path: params.Path,
RawQuery: nextRaw,
}
- next := fmt.Sprintf("<%s>; rel=\"next\"", nextLink.String())
+ nextLinkString := nextLink.String()
+ timelineResponse.NextLink = nextLinkString
- prevRaw := fmt.Sprintf("limit=%d&%s=%s", params.Limit, params.PrevMinIDKey, params.PrevMinIDValue)
+ // prev
+ prevRaw := params.PrevMinIDKey + "=" + params.PrevMinIDValue
+ if params.Limit != 0 {
+ prevRaw = fmt.Sprintf("limit=%d&", params.Limit) + prevRaw
+ }
for _, p := range params.ExtraQueryParams {
prevRaw = prevRaw + "&" + p
}
@@ -88,7 +96,12 @@ func PackageTimelineableResponse(params TimelineableResponseParams) (*apimodel.T
Path: params.Path,
RawQuery: prevRaw,
}
- prev := fmt.Sprintf("<%s>; rel=\"prev\"", prevLink.String())
+ prevLinkString := prevLink.String()
+ timelineResponse.PrevLink = prevLinkString
+
+ // link header
+ next := fmt.Sprintf("<%s>; rel=\"next\"", nextLinkString)
+ prev := fmt.Sprintf("<%s>; rel=\"prev\"", prevLinkString)
timelineResponse.LinkHeader = next + ", " + prev
}