// SetPaginator defines values of the JSONLD Collection according to pagination request. func (j *CollectionResource) SetPaginator(r *http.Request, paginator *api.Pagination) { j.TotalItems = paginator.Count() if paginator.HasOtherPages() { j.Type = "PagedCollection" j.ItemPerPage = paginator.PerPage j.CurrentPage = paginator.Page } q := r.URL.Query() if paginator.HasOtherPages() { q.Set("page", fmt.Sprintf("%d", 1)) r.URL.RawQuery = q.Encode() j.FirstPage = r.URL.String() } if paginator.HasPrev() { q.Set("page", fmt.Sprintf("%d", paginator.Page-1)) r.URL.RawQuery = q.Encode() j.PreviousPage = r.URL.String() } if paginator.HasNext() { q.Set("page", fmt.Sprintf("%d", paginator.Page+1)) r.URL.RawQuery = q.Encode() j.NextPage = r.URL.String() } if paginator.HasOtherPages() { q.Set("page", fmt.Sprintf("%d", paginator.NumPages())) r.URL.RawQuery = q.Encode() j.LastPage = r.URL.String() } }