Skip to content

Commit ccea0c1

Browse files
committed
Add support for User Identity
1 parent 28e211d commit ccea0c1

File tree

4 files changed

+221
-29
lines changed

4 files changed

+221
-29
lines changed

src/main/java/org/zendesk/client/v2/ZenDesk.java

Lines changed: 101 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.zendesk.client.v2.model.Attachment;
1919
import org.zendesk.client.v2.model.Audit;
2020
import org.zendesk.client.v2.model.Field;
21+
import org.zendesk.client.v2.model.Identity;
2122
import org.zendesk.client.v2.model.Ticket;
2223
import org.zendesk.client.v2.model.User;
2324

@@ -362,13 +363,106 @@ public void resetUserPassword(int id, String password) {
362363

363364
public void changeUserPassword(User user, String oldPassword, String newPassword) {
364365
checkHasId(user);
365-
Map<String,String> req = new HashMap<String,String>();
366+
Map<String, String> req = new HashMap<String, String>();
366367
req.put("previous_password", oldPassword);
367368
req.put("password", newPassword);
368369
complete(submit(req("PUT", tmpl("/users/{id}/password.json").set("id", user.getId()), JSON,
369370
json(req)), handleStatus()));
370371
}
371372

373+
public List<Identity> getUserIdentities(User user) {
374+
checkHasId(user);
375+
return getUserIdentities(user.getId());
376+
}
377+
378+
public List<Identity> getUserIdentities(int userId) {
379+
return complete(submit(req("GET", tmpl("/users/{id}/identities.json").set("id", userId)),
380+
handleList(Identity.class, "identities")));
381+
}
382+
383+
public Identity getUserIdentity(User user, Identity identity) {
384+
checkHasId(identity);
385+
return getUserIdentity(user, identity.getId());
386+
}
387+
388+
public Identity getUserIdentity(User user, int identityId) {
389+
checkHasId(user);
390+
return getUserIdentity(user.getId(), identityId);
391+
}
392+
393+
public Identity getUserIdentity(int userId, int identityId) {
394+
return complete(submit(req("GET", tmpl("/users/{userId}/identities/{identityId}.json").set("userId", userId)
395+
.set("identityId", identityId)), handle(
396+
Identity.class, "identity")));
397+
}
398+
399+
public List<Identity> setUserPrimaryIdentity(User user, Identity identity) {
400+
checkHasId(identity);
401+
return setUserPrimaryIdentity(user, identity.getId());
402+
}
403+
404+
public List<Identity> setUserPrimaryIdentity(User user, int identityId) {
405+
checkHasId(user);
406+
return setUserPrimaryIdentity(user.getId(), identityId);
407+
}
408+
409+
public List<Identity> setUserPrimaryIdentity(int userId, int identityId) {
410+
return complete(submit(req("PUT",
411+
tmpl("/users/{userId}/identities/{identityId}/make_primary").set("userId", userId)
412+
.set("identityId", identityId)),
413+
handleList(Identity.class, "identities")));
414+
}
415+
416+
public Identity verifyUserIdentity(User user, Identity identity) {
417+
checkHasId(identity);
418+
return verifyUserIdentity(user, identity.getId());
419+
}
420+
421+
public Identity verifyUserIdentity(User user, int identityId) {
422+
checkHasId(user);
423+
return verifyUserIdentity(user.getId(), identityId);
424+
}
425+
426+
public Identity verifyUserIdentity(int userId, int identityId) {
427+
return complete(submit(req("PUT", tmpl("/users/{userId}/identities/{identityId}/verify")
428+
.set("userId",userId)
429+
.set("identityId", identityId)), handle(Identity.class, "identity")));
430+
}
431+
432+
public Identity requestVerifyUserIdentity(User user, Identity identity) {
433+
checkHasId(identity);
434+
return requestVerifyUserIdentity(user, identity.getId());
435+
}
436+
437+
public Identity requestVerifyUserIdentity(User user, int identityId) {
438+
checkHasId(user);
439+
return requestVerifyUserIdentity(user.getId(), identityId);
440+
}
441+
442+
public Identity requestVerifyUserIdentity(int userId, int identityId) {
443+
return complete(submit(req("PUT", tmpl("/users/{userId}/identities/{identityId}/request_verification")
444+
.set("userId",userId)
445+
.set("identityId", identityId)), handle(Identity.class, "identity")));
446+
}
447+
448+
public void deleteUserIdentity(User user, Identity identity) {
449+
checkHasId(identity);
450+
deleteUserIdentity(user, identity.getId());
451+
}
452+
453+
public void deleteUserIdentity(User user, int identityId) {
454+
checkHasId(user);
455+
deleteUserIdentity(user.getId(), identityId);
456+
}
457+
458+
public void deleteUserIdentity(int userId, int identityId) {
459+
complete(submit(req("DELETE", tmpl("/users/{userId}/identities/{identityId}.json")
460+
.set("userId", userId)
461+
.set("identityId", identityId)
462+
), handleStatus()));
463+
}
464+
465+
372466
//////////////////////////////////////////////////////////////////////
373467
// Helper methods
374468
//////////////////////////////////////////////////////////////////////
@@ -566,6 +660,12 @@ private static void checkHasId(User user) {
566660
}
567661
}
568662

663+
private static void checkHasId(Identity identity) {
664+
if (identity.getId() == null) {
665+
throw new IllegalArgumentException("Identity requires id");
666+
}
667+
}
668+
569669
private static void checkHasToken(Attachment.Upload upload) {
570670
if (upload.getToken() == null) {
571671
throw new IllegalArgumentException("Upload requires token");
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
package org.zendesk.client.v2.model;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
5+
import java.util.Date;
6+
7+
/**
8+
* @author stephenc
9+
* @since 09/04/2013 14:37
10+
*/
11+
public class Identity {
12+
private Integer id;
13+
private String url;
14+
private Integer userId;
15+
private String type;
16+
private String value;
17+
private Boolean verified;
18+
private Boolean primary;
19+
private Date createdAt;
20+
private Date updatedAt;
21+
22+
public Identity() {
23+
}
24+
25+
public Identity(String type, String value) {
26+
this.type = type;
27+
this.value = value;
28+
}
29+
30+
public String getType() {
31+
return type;
32+
}
33+
34+
public void setType(String type) {
35+
this.type = type;
36+
}
37+
38+
public String getValue() {
39+
return value;
40+
}
41+
42+
public void setValue(String value) {
43+
this.value = value;
44+
}
45+
46+
public Integer getId() {
47+
return id;
48+
}
49+
50+
public void setId(Integer id) {
51+
this.id = id;
52+
}
53+
54+
public String getUrl() {
55+
return url;
56+
}
57+
58+
public void setUrl(String url) {
59+
this.url = url;
60+
}
61+
62+
@JsonProperty("user_id")
63+
public Integer getUserId() {
64+
return userId;
65+
}
66+
67+
public void setUserId(Integer userId) {
68+
this.userId = userId;
69+
}
70+
71+
public Boolean getVerified() {
72+
return verified;
73+
}
74+
75+
public void setVerified(Boolean verified) {
76+
this.verified = verified;
77+
}
78+
79+
public Boolean getPrimary() {
80+
return primary;
81+
}
82+
83+
public void setPrimary(Boolean primary) {
84+
this.primary = primary;
85+
}
86+
87+
@JsonProperty("created_at")
88+
public Date getCreatedAt() {
89+
return createdAt;
90+
}
91+
92+
public void setCreatedAt(Date createdAt) {
93+
this.createdAt = createdAt;
94+
}
95+
96+
@JsonProperty("updated_at")
97+
public Date getUpdatedAt() {
98+
return updatedAt;
99+
}
100+
101+
public void setUpdatedAt(Date updatedAt) {
102+
this.updatedAt = updatedAt;
103+
}
104+
}

src/main/java/org/zendesk/client/v2/model/User.java

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -350,32 +350,4 @@ public String toString() {
350350
}
351351
}
352352

353-
public static class Identity {
354-
private String type;
355-
private String value;
356-
357-
public Identity() {
358-
}
359-
360-
public Identity(String type, String value) {
361-
this.type = type;
362-
this.value = value;
363-
}
364-
365-
public String getType() {
366-
return type;
367-
}
368-
369-
public void setType(String type) {
370-
this.type = type;
371-
}
372-
373-
public String getValue() {
374-
return value;
375-
}
376-
377-
public void setValue(String value) {
378-
this.value = value;
379-
}
380-
}
381353
}

src/test/java/org/zendesk/client/v2/RealSmokeTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.junit.Test;
99
import org.zendesk.client.v2.model.Audit;
1010
import org.zendesk.client.v2.model.Field;
11+
import org.zendesk.client.v2.model.Identity;
1112
import org.zendesk.client.v2.model.Ticket;
1213
import org.zendesk.client.v2.model.User;
1314
import org.zendesk.client.v2.model.events.Event;
@@ -184,4 +185,19 @@ public void lookupUserByEmail() throws Exception {
184185
assertThat(user.getEmail(), is(requesterEmail));
185186
}
186187
}
188+
189+
@Test
190+
public void lookupUserIdentities() throws Exception {
191+
createClientWithToken();
192+
String requesterEmail = config.getProperty("requester.email");
193+
assumeThat("Must have a requester email", requesterEmail, notNullValue());
194+
User user = instance.getCurrentUser();
195+
for (Identity i: instance.getUserIdentities(user)) {
196+
assertThat(i.getId(), notNullValue());
197+
Identity j = instance.getUserIdentity(user, i);
198+
assertThat(j.getId(), is(i.getId()));
199+
assertThat(j.getType(), is(i.getType()));
200+
assertThat(j.getValue(), is(i.getValue()));
201+
}
202+
}
187203
}

0 commit comments

Comments
 (0)