Problem
We should add an API.Gateway which simply has a request method that calls HTTPosion. Response parsing can be done in this module. We can then mock the gateway in tests, and mock %HTTPoison.Response{} so that we can include the headers (e.g. for pagination).
We'll need to refactor GitHub.API.EagerAPI to make use of this in marshall_response
- check if the headers contains a
"Links" key
- if it does, it calls the code which makes additional requests for further pages
Problem
We should add an
API.Gatewaywhich simply has a request method that callsHTTPosion. Response parsing can be done in this module. We can then mock the gateway in tests, and mock%HTTPoison.Response{}so that we can include the headers (e.g. for pagination).We'll need to refactor
GitHub.API.EagerAPIto make use of this inmarshall_response"Links"key