(requestFn func(int) (*http.Response, error), page int)
| 164 | } |
| 165 | |
| 166 | func fetchPage[T any](requestFn func(int) (*http.Response, error), page int) (*response, []*T, error) { |
| 167 | pageResp, err := requestFn(page) |
| 168 | if err != nil { |
| 169 | return nil, nil, errors.Wrap(err, "REST request failed") |
| 170 | } |
| 171 | defer pageResp.Body.Close() |
| 172 | if pageResp.StatusCode == http.StatusOK { |
| 173 | envelope, err := parseResponseEnvelope(pageResp.Body) |
| 174 | if err != nil { |
| 175 | return nil, nil, err |
| 176 | } |
| 177 | var parsedRspBody []*T |
| 178 | return envelope, parsedRspBody, parseResponseBody(envelope, &parsedRspBody) |
| 179 | } |
| 180 | return nil, nil, errors.New(fmt.Sprintf("Failed to fetch page. Server returned: %d", pageResp.StatusCode)) |
| 181 | } |
| 182 | |
| 183 | type response struct { |
| 184 | Success bool `json:"success,omitempty"` |
nothing calls this directly
no test coverage detected