|
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