From 6df43c8c1c3d56c9823b91a004d9e6a13af97ea5 Mon Sep 17 00:00:00 2001 From: Ethan Kromhout Date: Wed, 17 Apr 2019 14:54:19 -0400 Subject: [PATCH] Correct multiple page loop --- .../wordpress/WordpressRestConnector.java | 62 +++++++++++-------- 1 file changed, 37 insertions(+), 25 deletions(-) diff --git a/connector-rest-wordpress/src/main/java/edu/unc/polygon/connector/wordpress/WordpressRestConnector.java b/connector-rest-wordpress/src/main/java/edu/unc/polygon/connector/wordpress/WordpressRestConnector.java index 8860b04..8a053c0 100644 --- a/connector-rest-wordpress/src/main/java/edu/unc/polygon/connector/wordpress/WordpressRestConnector.java +++ b/connector-rest-wordpress/src/main/java/edu/unc/polygon/connector/wordpress/WordpressRestConnector.java @@ -277,21 +277,27 @@ else if (filter != null && filter.byName != null) { nameSearchJson.put("search",searchName); nameSearchJson.put("context","edit"); String pagedResultsOffset = String.valueOf(oo.getPagedResultsOffset()); + boolean morePages = true; if ( pagedResultsOffset != null && !StringUtil.isEmpty(pagedResultsOffset) ) { jsonObject.put("page",pagedResultsOffset); } request = new HttpGetWithBody(configuration.getWordpressRestUrl() + "/wp/v2/users/"); - try { - JSONArray nameSearchResponseJson = callRequestArray(request, nameSearchJson); - //builder.setUid(new Uid(String.valueOf(uidSearchResponseJson.getInt(ATTR_ID)))); - for ( int i = 0; i < nameSearchResponseJson.length(); i++ ) { - JSONObject userJson = nameSearchResponseJson.getJSONObject(i); - if ( userJson.get("username").equals(searchName) ) { - handleUserId( handler, userJson ); + while ( morePages ) { + try { + JSONArray nameSearchResponseJson = callRequestArray(request, nameSearchJson); + //builder.setUid(new Uid(String.valueOf(uidSearchResponseJson.getInt(ATTR_ID)))); + for ( int i = 0; i < nameSearchResponseJson.length(); i++ ) { + JSONObject userJson = nameSearchResponseJson.getJSONObject(i); + if ( userJson.get("username").equals(searchName) ) { + handleUserId( handler, userJson ); + } + } + if ( nameSearchResponseJson.length() < 9 ) { + morePages = false; } + } catch (IOException IOE) { + throw new ConnectorIOException(IOE.getMessage(), IOE); } - } catch (IOException IOE) { - throw new ConnectorIOException(IOE.getMessage(), IOE); } } else if (filter != null && filter.byEmailAddress != null) { @@ -318,26 +324,32 @@ else if (filter != null && filter.byEmailAddress != null) { JSONObject jsonObject = new JSONObject(); jsonObject.put("context","edit"); String pagedResultsOffset = String.valueOf(oo.getPagedResultsOffset()); + boolean morePages = true; if ( pagedResultsOffset != null && !StringUtil.isEmpty(pagedResultsOffset) ) { jsonObject.put("page",pagedResultsOffset); } - try { - HttpEntityEnclosingRequestBase request; - request = new HttpGetWithBody(configuration.getWordpressRestUrl() + "/wp/v2/users"); - searchResponseJson = callRequestArray(request, jsonObject); - FileWriter file9 = new FileWriter("/tmp/file9.txt"); - file9.write(searchResponseJson.toString()); - System.out.println("Successfully Copied JSON Object to File..."); - System.out.println("\nJSON Object: " + searchResponseJson); - file9.flush(); - file9.close(); - for ( int i = 0; i < searchResponseJson.length(); i++ ) { - JSONObject uidSearchResponseJson = searchResponseJson.getJSONObject(i); - LOG.info(">>> processing ID " + i); - handleUserId( handler, uidSearchResponseJson ); + while ( morePages ) { + try { + HttpEntityEnclosingRequestBase request; + request = new HttpGetWithBody(configuration.getWordpressRestUrl() + "/wp/v2/users"); + searchResponseJson = callRequestArray(request, jsonObject); + FileWriter file9 = new FileWriter("/tmp/file9.txt"); + file9.write(searchResponseJson.toString()); + System.out.println("Successfully Copied JSON Object to File..."); + System.out.println("\nJSON Object: " + searchResponseJson); + file9.flush(); + file9.close(); + if ( searchResponseJson.length() < 9 ) { + morePages = false; + } + for ( int i = 0; i < searchResponseJson.length(); i++ ) { + JSONObject uidSearchResponseJson = searchResponseJson.getJSONObject(i); + LOG.info(">>> processing ID " + i); + handleUserId( handler, uidSearchResponseJson ); + } + } catch (IOException IOE) { + throw new ConnectorIOException(IOE.getMessage(), IOE); } - } catch (IOException IOE) { - throw new ConnectorIOException(IOE.getMessage(), IOE); } } }