From f849f21493d98b4901c485f3d8733c3cf7bbbdaa Mon Sep 17 00:00:00 2001 From: LinXiaoHuChong Date: Thu, 14 Jan 2021 10:01:16 +0800 Subject: [PATCH 1/2] add xp-total --- .../afrozaar/wordpress/wpapi/v2/Strings.java | 1 + .../wpapi/v2/response/PagedResponse.java | 39 +++++++++++++++++-- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/afrozaar/wordpress/wpapi/v2/Strings.java b/src/main/java/com/afrozaar/wordpress/wpapi/v2/Strings.java index 1431e5b..7ac139e 100644 --- a/src/main/java/com/afrozaar/wordpress/wpapi/v2/Strings.java +++ b/src/main/java/com/afrozaar/wordpress/wpapi/v2/Strings.java @@ -3,6 +3,7 @@ public interface Strings { String HEADER_TOTAL_PAGES = "X-WP-TotalPages"; String HEADER_LINK = "Link"; + String HEADER_TOTAL = "x-wp-total"; String NEXT = "next"; String PREV = "prev"; } \ No newline at end of file diff --git a/src/main/java/com/afrozaar/wordpress/wpapi/v2/response/PagedResponse.java b/src/main/java/com/afrozaar/wordpress/wpapi/v2/response/PagedResponse.java index dea3dcf..178720f 100644 --- a/src/main/java/com/afrozaar/wordpress/wpapi/v2/response/PagedResponse.java +++ b/src/main/java/com/afrozaar/wordpress/wpapi/v2/response/PagedResponse.java @@ -30,14 +30,33 @@ public class PagedResponse { final String previous; final int pages; final List list; + final int total; - public PagedResponse(Class clazz, String self, String next, String previous, int pages, List list) { + public int getPages() { + return pages; + } + + public int getTotal() { + return total; + } + +// public PagedResponse(Class clazz, String self, String next, String previous, int pages, List list) { +// this.clazz = clazz; +// this.self = self; +// this.next = next; +// this.previous = previous; +// this.pages = pages; +// this.list = list; +// } + + public PagedResponse(Class clazz, String self, String next, String previous, int pages, List list, int total) { this.clazz = clazz; this.self = self; this.next = next; this.previous = previous; this.pages = pages; this.list = list; + this.total = total; } public boolean hasNext() { @@ -88,6 +107,7 @@ public static class Builder { private List posts; private int pages; private Class t1; + private int total; private Builder(Class t1) { this.t1 = t1; @@ -118,7 +138,7 @@ public Builder withPosts(List posts) { } public PagedResponse build() { - return new PagedResponse<>(t1, self, next, previous, pages, posts); + return new PagedResponse<>(t1, self, next, previous, pages, posts, total); } public Builder withPages(int pages) { @@ -126,11 +146,22 @@ public Builder withPages(int pages) { return this; } + public Builder withPages(int pages, int total) { + this.pages = pages; + this.total = total; + return this; + } + public Builder withPages(HttpHeaders headers) { Optional totalPages = headers.keySet().stream().filter(x -> Strings.HEADER_TOTAL_PAGES.compareToIgnoreCase(x) == 0).findFirst(); - LOG.debug("found pages {} from headers {}", totalPages, headers); + Optional totalOptional = headers.keySet().stream().filter(x -> Strings.HEADER_TOTAL.compareToIgnoreCase(x) == 0).findFirst(); + LOG.debug("found pages {}, total {} from headers {}", totalPages, totalOptional, headers); Stream totalPageHeader = totalPages.map(x -> headers.get(x)).map(x -> x.stream()).orElse(Stream.empty()); - totalPageHeader.findFirst().ifPresent(pages -> Builder.this.withPages(Integer.valueOf(pages))); + int page = Integer.valueOf(totalPageHeader.findFirst().get()); + + Stream totalHeader = totalOptional.map(x -> headers.get(x)).map(x -> x.stream()).orElse(Stream.empty()); + totalHeader.findFirst().ifPresent(total -> Builder.this.withPages(page, Integer.valueOf(total))); + return this; } From 948e9c47934d34a26795047d49a42eb0a179c2b5 Mon Sep 17 00:00:00 2001 From: LinXiaoHuChong Date: Thu, 14 Jan 2021 10:02:00 +0800 Subject: [PATCH 2/2] add xp-total --- .../wordpress/wpapi/v2/response/PagedResponse.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/main/java/com/afrozaar/wordpress/wpapi/v2/response/PagedResponse.java b/src/main/java/com/afrozaar/wordpress/wpapi/v2/response/PagedResponse.java index 178720f..6884e0c 100644 --- a/src/main/java/com/afrozaar/wordpress/wpapi/v2/response/PagedResponse.java +++ b/src/main/java/com/afrozaar/wordpress/wpapi/v2/response/PagedResponse.java @@ -40,15 +40,6 @@ public int getTotal() { return total; } -// public PagedResponse(Class clazz, String self, String next, String previous, int pages, List list) { -// this.clazz = clazz; -// this.self = self; -// this.next = next; -// this.previous = previous; -// this.pages = pages; -// this.list = list; -// } - public PagedResponse(Class clazz, String self, String next, String previous, int pages, List list, int total) { this.clazz = clazz; this.self = self;