Skip to content

Commit 5c8687d

Browse files
committed
Cater for author being a Long or Array ... in some cases we are getting an array. Strange but true. This now caters for both
1 parent 4ac0573 commit 5c8687d

2 files changed

Lines changed: 24 additions & 57 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<groupId>com.afrozaar.wordpress</groupId>
55
<artifactId>wp-api-v2-client-java</artifactId>
6-
<version>4.11.1</version>
6+
<version>4.11.2-SNAPSHOT</version>
77

88
<packaging>jar</packaging>
99

src/main/java/com/afrozaar/wordpress/wpapi/v2/Client.java

Lines changed: 23 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,27 @@
11
package com.afrozaar.wordpress.wpapi.v2;
22

3-
import static com.afrozaar.wordpress.wpapi.v2.util.FieldExtractor.extractField;
4-
import static com.afrozaar.wordpress.wpapi.v2.util.Tuples.tuple;
5-
import static java.lang.String.format;
6-
import static java.net.URLDecoder.decode;
7-
import static java.util.Objects.isNull;
8-
import static java.util.Objects.nonNull;
9-
import static java.util.Optional.ofNullable;
10-
113
import com.afrozaar.wordpress.wpapi.v2.api.Contexts;
12-
import com.afrozaar.wordpress.wpapi.v2.exception.ExceptionCodes;
13-
import com.afrozaar.wordpress.wpapi.v2.exception.InvalidParameterException;
14-
import com.afrozaar.wordpress.wpapi.v2.exception.PageNotFoundException;
15-
import com.afrozaar.wordpress.wpapi.v2.exception.ParsedRestException;
16-
import com.afrozaar.wordpress.wpapi.v2.exception.PostCreateException;
17-
import com.afrozaar.wordpress.wpapi.v2.exception.PostNotFoundException;
18-
import com.afrozaar.wordpress.wpapi.v2.exception.TermNotFoundException;
19-
import com.afrozaar.wordpress.wpapi.v2.exception.UserEmailAlreadyExistsException;
20-
import com.afrozaar.wordpress.wpapi.v2.exception.UserNotFoundException;
21-
import com.afrozaar.wordpress.wpapi.v2.exception.UsernameAlreadyExistsException;
22-
import com.afrozaar.wordpress.wpapi.v2.exception.WpApiParsedException;
23-
import com.afrozaar.wordpress.wpapi.v2.model.DeleteResponse;
24-
import com.afrozaar.wordpress.wpapi.v2.model.Link;
25-
import com.afrozaar.wordpress.wpapi.v2.model.Media;
26-
import com.afrozaar.wordpress.wpapi.v2.model.Page;
27-
import com.afrozaar.wordpress.wpapi.v2.model.Post;
28-
import com.afrozaar.wordpress.wpapi.v2.model.PostMeta;
29-
import com.afrozaar.wordpress.wpapi.v2.model.PostStatus;
30-
import com.afrozaar.wordpress.wpapi.v2.model.RenderableField;
31-
import com.afrozaar.wordpress.wpapi.v2.model.Taxonomy;
32-
import com.afrozaar.wordpress.wpapi.v2.model.Term;
33-
import com.afrozaar.wordpress.wpapi.v2.model.User;
4+
import com.afrozaar.wordpress.wpapi.v2.exception.*;
5+
import com.afrozaar.wordpress.wpapi.v2.model.*;
346
import com.afrozaar.wordpress.wpapi.v2.request.Request;
357
import com.afrozaar.wordpress.wpapi.v2.request.SearchRequest;
368
import com.afrozaar.wordpress.wpapi.v2.response.CustomRenderableParser;
379
import com.afrozaar.wordpress.wpapi.v2.response.PagedResponse;
3810
import com.afrozaar.wordpress.wpapi.v2.util.AuthUtil;
3911
import com.afrozaar.wordpress.wpapi.v2.util.MavenProperties;
4012
import com.afrozaar.wordpress.wpapi.v2.util.Tuples.Tuple2;
41-
13+
import com.fasterxml.jackson.annotation.JsonProperty;
14+
import com.fasterxml.jackson.databind.DeserializationFeature;
15+
import com.fasterxml.jackson.databind.JsonMappingException;
16+
import com.fasterxml.jackson.databind.ObjectMapper;
4217
import com.google.common.base.Preconditions;
4318
import com.google.common.collect.ImmutableMap;
44-
19+
import org.apache.commons.beanutils.BeanUtils;
20+
import org.assertj.core.util.VisibleForTesting;
21+
import org.slf4j.Logger;
22+
import org.slf4j.LoggerFactory;
4523
import org.springframework.core.io.Resource;
46-
import org.springframework.http.HttpHeaders;
47-
import org.springframework.http.HttpMethod;
48-
import org.springframework.http.MediaType;
49-
import org.springframework.http.RequestEntity;
50-
import org.springframework.http.ResponseEntity;
24+
import org.springframework.http.*;
5125
import org.springframework.http.client.ClientHttpRequestFactory;
5226
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
5327
import org.springframework.http.converter.HttpMessageConverter;
@@ -66,36 +40,27 @@
6640
import org.springframework.web.util.UriComponents;
6741
import org.springframework.web.util.UriComponentsBuilder;
6842

69-
import com.fasterxml.jackson.annotation.JsonProperty;
70-
import com.fasterxml.jackson.databind.DeserializationFeature;
71-
import com.fasterxml.jackson.databind.JsonMappingException;
72-
import com.fasterxml.jackson.databind.ObjectMapper;
73-
import org.apache.commons.beanutils.BeanUtils;
74-
import org.assertj.core.util.VisibleForTesting;
75-
import org.slf4j.Logger;
76-
import org.slf4j.LoggerFactory;
77-
7843
import javax.annotation.Nullable;
7944
import javax.xml.transform.Source;
80-
8145
import java.lang.reflect.InvocationTargetException;
8246
import java.net.URI;
8347
import java.net.URLDecoder;
84-
import java.util.ArrayList;
85-
import java.util.Arrays;
86-
import java.util.Collections;
87-
import java.util.List;
88-
import java.util.Map;
89-
import java.util.Objects;
90-
import java.util.Optional;
91-
import java.util.Properties;
48+
import java.util.*;
9249
import java.util.function.BiConsumer;
9350
import java.util.function.BiFunction;
9451
import java.util.function.Function;
9552
import java.util.function.Predicate;
9653
import java.util.stream.Collectors;
9754
import java.util.stream.Stream;
9855

56+
import static com.afrozaar.wordpress.wpapi.v2.util.FieldExtractor.extractField;
57+
import static com.afrozaar.wordpress.wpapi.v2.util.Tuples.tuple;
58+
import static java.lang.String.format;
59+
import static java.net.URLDecoder.decode;
60+
import static java.util.Objects.isNull;
61+
import static java.util.Objects.nonNull;
62+
import static java.util.Optional.ofNullable;
63+
9964
public class Client implements Wordpress {
10065
private static final String DEFAULT_CONTEXT = "/wp-json/wp/v2";
10166
private static final Logger LOG = LoggerFactory.getLogger(Client.class);
@@ -148,7 +113,9 @@ public Client(String context, String baseUrl, String username, String password,
148113
this.debug = debug;
149114
this.permalinkEndpoint = usePermalinkEndpoint;
150115

151-
final ObjectMapper emptyArrayAsNullObjectMapper = Jackson2ObjectMapperBuilder.json().featuresToEnable(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT).build();
116+
final ObjectMapper emptyArrayAsNullObjectMapper = Jackson2ObjectMapperBuilder.json()
117+
.featuresToEnable(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT)
118+
.featuresToEnable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY).build();
152119

153120
List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
154121
messageConverters.add(new ByteArrayHttpMessageConverter());

0 commit comments

Comments
 (0)