@@ -70,7 +70,7 @@ func (p paginationQueryParams) isValid() bool {
7070}
7171
7272func (p paginationQueryParams ) getLinks (r * http.Request , count uint , info information ) (result jsonapi.Links , err error ) {
73- result = jsonapi.Links {}
73+ result = make ( jsonapi.Links )
7474
7575 params := r .URL .Query ()
7676 prefix := ""
@@ -91,11 +91,11 @@ func (p paginationQueryParams) getLinks(r *http.Request, count uint, info inform
9191 if p .number != "1" {
9292 params .Set ("page[number]" , "1" )
9393 query , _ := url .QueryUnescape (params .Encode ())
94- result . First = fmt .Sprintf ("%s?%s" , requestURL , query )
94+ result [ "first" ] = jsonapi. Link { Href : fmt .Sprintf ("%s?%s" , requestURL , query )}
9595
9696 params .Set ("page[number]" , strconv .FormatUint (number - 1 , 10 ))
9797 query , _ = url .QueryUnescape (params .Encode ())
98- result . Previous = fmt .Sprintf ("%s?%s" , requestURL , query )
98+ result [ "prev" ] = jsonapi. Link { Href : fmt .Sprintf ("%s?%s" , requestURL , query )}
9999 }
100100
101101 // calculate last page number
@@ -113,11 +113,11 @@ func (p paginationQueryParams) getLinks(r *http.Request, count uint, info inform
113113 if number != totalPages {
114114 params .Set ("page[number]" , strconv .FormatUint (number + 1 , 10 ))
115115 query , _ := url .QueryUnescape (params .Encode ())
116- result . Next = fmt .Sprintf ("%s?%s" , requestURL , query )
116+ result [ "next" ] = jsonapi. Link { Href : fmt .Sprintf ("%s?%s" , requestURL , query )}
117117
118118 params .Set ("page[number]" , strconv .FormatUint (totalPages , 10 ))
119119 query , _ = url .QueryUnescape (params .Encode ())
120- result . Last = fmt .Sprintf ("%s?%s" , requestURL , query )
120+ result [ "last" ] = jsonapi. Link { Href : fmt .Sprintf ("%s?%s" , requestURL , query )}
121121 }
122122 } else {
123123 // we have offset & limit params
@@ -134,7 +134,7 @@ func (p paginationQueryParams) getLinks(r *http.Request, count uint, info inform
134134 if p .offset != "0" {
135135 params .Set ("page[offset]" , "0" )
136136 query , _ := url .QueryUnescape (params .Encode ())
137- result . First = fmt .Sprintf ("%s?%s" , requestURL , query )
137+ result [ "first" ] = jsonapi. Link { Href : fmt .Sprintf ("%s?%s" , requestURL , query )}
138138
139139 var prevOffset uint64
140140 if limit > offset {
@@ -144,18 +144,18 @@ func (p paginationQueryParams) getLinks(r *http.Request, count uint, info inform
144144 }
145145 params .Set ("page[offset]" , strconv .FormatUint (prevOffset , 10 ))
146146 query , _ = url .QueryUnescape (params .Encode ())
147- result . Previous = fmt .Sprintf ("%s?%s" , requestURL , query )
147+ result [ "prev" ] = jsonapi. Link { Href : fmt .Sprintf ("%s?%s" , requestURL , query )}
148148 }
149149
150150 // check if there are more entries to be loaded
151151 if (offset + limit ) < uint64 (count ) {
152152 params .Set ("page[offset]" , strconv .FormatUint (offset + limit , 10 ))
153153 query , _ := url .QueryUnescape (params .Encode ())
154- result . Next = fmt .Sprintf ("%s?%s" , requestURL , query )
154+ result [ "next" ] = jsonapi. Link { Href : fmt .Sprintf ("%s?%s" , requestURL , query )}
155155
156156 params .Set ("page[offset]" , strconv .FormatUint (uint64 (count )- limit , 10 ))
157157 query , _ = url .QueryUnescape (params .Encode ())
158- result . Last = fmt .Sprintf ("%s?%s" , requestURL , query )
158+ result [ "last" ] = jsonapi. Link { Href : fmt .Sprintf ("%s?%s" , requestURL , query )}
159159 }
160160 }
161161
@@ -926,7 +926,7 @@ func (res *resource) respondWithPagination(obj Responder, info information, stat
926926 return err
927927 }
928928
929- data .Links = & links
929+ data .Links = links
930930 meta := obj .Metadata ()
931931 if len (meta ) > 0 {
932932 data .Meta = meta
0 commit comments