Skip to content

Commit 158818f

Browse files
thewheatchoran
authored andcommitted
Add support for updating avatars for Users and Contacts/Leads (#174)
1 parent 9f44782 commit 158818f

File tree

5 files changed

+42
-4
lines changed

5 files changed

+42
-4
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class Avatar extends TypedData {
1818
@JsonProperty("image_url")
1919
private URI imageURL;
2020

21-
Avatar() {
21+
public Avatar() {
2222
}
2323

2424
public String getType() {
@@ -29,6 +29,11 @@ public URI getImageURL() {
2929
return imageURL;
3030
}
3131

32+
public Avatar setImageURL(String imageURL) {
33+
this.imageURL = URI.create(imageURL);
34+
return this;
35+
}
36+
3237
@Override
3338
public boolean equals(Object o) {
3439
if (this == o) return true;

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ static ContactUpdate buildFrom(Contact c) {
192192
contactUpdate.name = c.getName();
193193
contactUpdate.lastSeenIP = c.getLastSeenIP();
194194
contactUpdate.customAttributes = c.getCustomAttributes();
195+
contactUpdate.avatar = c.getAvatar();
195196
contactUpdate.lastRequestAt = c.getLastRequestAt();
196197
contactUpdate.unsubscribedFromEmails = c.getUnsubscribedFromEmails();
197198
return contactUpdate;
@@ -219,6 +220,9 @@ static ContactUpdate buildFrom(Contact c) {
219220
@JsonProperty("last_seen_ip")
220221
private String lastSeenIP;
221222

223+
@JsonProperty("avatar")
224+
private Avatar avatar;
225+
222226
@JsonIgnoreProperties(ignoreUnknown = false)
223227
@JsonProperty("custom_attributes")
224228
private Map<String, CustomAttribute> customAttributes = Maps.newHashMap();
@@ -457,6 +461,11 @@ public Avatar getAvatar() {
457461
return avatar;
458462
}
459463

464+
public Contact setAvatar(Avatar avatar) {
465+
this.avatar = avatar;
466+
return this;
467+
}
468+
460469
public long getCreatedAt() {
461470
return createdAt;
462471
}

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ static UserUpdate buildFrom(User user) {
118118
userUpdate.companyCollection = buildUserUpdateCompanies(user);
119119
}
120120

121+
userUpdate.avatar = user.getAvatar();
121122
userUpdate.lastRequestAt = user.getLastRequestAt();
122123
userUpdate.signedUpAt = user.getSignedUpAt();
123124
userUpdate.unsubscribedFromEmails = user.getUnsubscribedFromEmails();
@@ -162,6 +163,9 @@ static List<JobItem<UserUpdate>> validateAndConvertJobItems(List<JobItem<User>>
162163
@JsonProperty("last_seen_ip")
163164
private String lastSeenIp;
164165

166+
@JsonProperty("avatar")
167+
private Avatar avatar;
168+
165169
@JsonIgnoreProperties(ignoreUnknown = false)
166170
@JsonProperty("custom_attributes")
167171
private Map<String, CustomAttribute> customAttributes = Maps.newHashMap();
@@ -271,6 +275,11 @@ public Boolean isUpdateLastRequestAt() {
271275
public Boolean isNewSession() {
272276
return newSession;
273277
}
278+
279+
public Avatar getAvatar() {
280+
return avatar;
281+
}
282+
274283
}
275284

276285
@JsonProperty("type")
@@ -429,6 +438,11 @@ public Avatar getAvatar() {
429438
return avatar;
430439
}
431440

441+
public User setAvatar(Avatar avatar) {
442+
this.avatar = avatar;
443+
return this;
444+
}
445+
432446
public long getCreatedAt() {
433447
return createdAt;
434448
}

intercom-java/src/test/java/io/intercom/api/UserTest.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public void TestUserUpdateEmptyCompanies() throws Exception {
2929

3030
@Test
3131
public void TestUserUpdate() throws Exception {
32+
final Avatar avatar = new Avatar()
33+
.setImageURL("http://example.com/256Wash.jpg");
3234

3335
final long now = System.currentTimeMillis() / 1000;
3436
final User user = new User()
@@ -41,7 +43,8 @@ public void TestUserUpdate() throws Exception {
4143
.setUnsubscribedFromEmails(true)
4244
.setUpdateLastRequestAt(true)
4345
.setNewSession(true)
44-
.setUserAgentData("user-agent");
46+
.setUserAgentData("user-agent")
47+
.setAvatar(avatar);
4548

4649
final User.UserUpdate userUpdate = User.UserUpdate.buildFrom(user);
4750

@@ -56,6 +59,7 @@ public void TestUserUpdate() throws Exception {
5659
assertEquals(true, userUpdate.isNewSession());
5760
assertEquals("user-agent", userUpdate.getLastSeenUserAgent());
5861
assertEquals(null, userUpdate.getType());
62+
assertEquals("http://example.com/256Wash.jpg", userUpdate.getAvatar().getImageURL().toString());
5963
}
6064

6165
@Test
@@ -179,9 +183,14 @@ public void TestSerdes() throws Exception {
179183
assertEquals("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9", user.getUserAgentData());
180184
assertEquals(1397574667L, user.getLastRequestAt());
181185
assertEquals(1392731331L, user.getRemoteCreatedAt());
186+
assertEquals(1392731331L, user.getSignedUpAt());
182187
assertEquals(1392734388L, user.getCreatedAt());
183188
assertEquals(1392734388L, user.getUpdatedAt());
184189

190+
final Avatar avatar = user.getAvatar();
191+
assertEquals("avatar", avatar.getType());
192+
assertEquals("http://example.org/128Wash.jpg", avatar.getImageURL().toString());
193+
185194
final SegmentCollection segmentCollection = user.getSegmentCollection();
186195
assertEquals("segment.list", segmentCollection.getType());
187196
final List<Segment> items = segmentCollection.getPage();
@@ -250,4 +259,4 @@ public void testBulkValidation() {
250259
assertTrue(e.getFirstError() != null);
251260
}
252261
}
253-
}
262+
}

intercom-java/src/test/resources/user.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"phone": "+1234567890",
77
"name": "Hoban Washburne",
88
"remote_created_at": 1392731331,
9+
"signed_up_at": 1392731331,
910
"updated_at": 1392734388,
1011
"session_count": 0,
1112
"last_seen_ip": "1.2.3.4",
@@ -73,4 +74,4 @@
7374
}
7475
]
7576
}
76-
}
77+
}

0 commit comments

Comments
 (0)