Skip to content

Commit 48c36ca

Browse files
committed
encode user social data urls
1 parent 5c608d5 commit 48c36ca

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

intercom-java/src/main/java/io/intercom/api/SocialProfile.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44
import com.fasterxml.jackson.annotation.JsonInclude;
55
import com.fasterxml.jackson.annotation.JsonProperty;
6+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
67

78
import java.net.URI;
89

@@ -24,6 +25,7 @@ public class SocialProfile extends TypedData {
2425
private String username;
2526

2627
@JsonProperty("url")
28+
@JsonDeserialize(using = URIDeserializer.class)
2729
private URI url;
2830

2931
public SocialProfile() {
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package io.intercom.api;
2+
3+
import com.fasterxml.jackson.core.JsonParser;
4+
import com.fasterxml.jackson.databind.DeserializationContext;
5+
import com.fasterxml.jackson.databind.ObjectMapper;
6+
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
7+
import com.fasterxml.jackson.databind.node.ValueNode;
8+
9+
import java.io.IOException;
10+
import java.net.URI;
11+
import java.net.URISyntaxException;
12+
import java.net.URL;
13+
14+
class URIDeserializer extends StdDeserializer<URI> {
15+
16+
17+
public URIDeserializer() {
18+
super(URI.class);
19+
}
20+
21+
@Override
22+
public URI deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
23+
final ObjectMapper mapper = (ObjectMapper) jp.getCodec();
24+
final ValueNode vNode = mapper.readTree(jp);
25+
try {
26+
final URL url = new URL(vNode.asText());
27+
return new URI(url.getProtocol(), url.getHost(), url.getPath(), url.getQuery(), url.getRef());
28+
} catch (URISyntaxException e) {
29+
throw new RuntimeException(e);
30+
}
31+
}
32+
}

0 commit comments

Comments
 (0)