mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-12-07 15:58:07 -06:00
[feature] Add back/next buttons to profiles for paging through statuses (#708)
* add GetAccountWebStatuses to db * add WebStatusesGet func to processor * don't add limit to next/prev links if 0 * take query params for next/prev statuses * add separate next + prev links for convenience * show 'nothing here' message if no statuses exist * add back / next links to profiles * allow paging down only * go fmt ./... * 'recent public toots' -> 'latest public toots'
This commit is contained in:
parent
6934ae378a
commit
6418307c64
11 changed files with 183 additions and 36 deletions
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue