|
5 | 5 | import com.amadeus.exceptions.NetworkException; |
6 | 6 | import com.amadeus.exceptions.ResponseException; |
7 | 7 | import com.amadeus.resources.Resource; |
| 8 | +import com.google.gson.JsonElement; |
8 | 9 | import com.google.gson.JsonObject; |
9 | 10 | import java.io.BufferedWriter; |
10 | 11 | import java.io.IOException; |
@@ -420,23 +421,25 @@ private void write(Request request) throws IOException { |
420 | 421 | * @hide as ony used internally |
421 | 422 | */ |
422 | 423 | protected Response page(String pageName, Response response) throws ResponseException { |
423 | | - try { |
424 | | - String[] parts = response.getResult().get("meta").getAsJsonObject() |
425 | | - .get("links").getAsJsonObject().get(pageName).getAsString() |
426 | | - .split("page%5Boffset%5D="); |
427 | | - |
428 | | - String pageNumber = parts[1].split("&")[0]; |
| 424 | + JsonObject metaLinks = response.getResult().get("meta") |
| 425 | + .getAsJsonObject().get("links").getAsJsonObject(); |
| 426 | + JsonElement pageElement = metaLinks.get(pageName); |
429 | 427 |
|
430 | | - Request request = response.getRequest(); |
431 | | - Params params = (Params) request.getParams().clone(); |
432 | | - params.put("page[offset]", pageNumber); |
433 | | - |
434 | | - return request(request.getVerb(), request.getPath(), params, "emptyBody"); |
435 | | - } catch (NullPointerException e) { |
| 428 | + if (pageElement == null) { |
436 | 429 | return null; |
437 | 430 | } |
| 431 | + |
| 432 | + String[] parts = pageElement.getAsString().split("page%5Boffset%5D="); |
| 433 | + String pageNumber = parts[1].split("&")[0]; |
| 434 | + |
| 435 | + Request request = response.getRequest(); |
| 436 | + Params params = (Params) request.getParams().clone(); |
| 437 | + params.put("page[offset]", pageNumber); |
| 438 | + |
| 439 | + return request(request.getVerb(), request.getPath(), params, "emptyBody"); |
438 | 440 | } |
439 | 441 |
|
| 442 | + |
440 | 443 | /** |
441 | 444 | * Fetches the response for another page. |
442 | 445 | * @hide as ony used internally |
|
0 commit comments