Skip to content

Commit 4f347da

Browse files
kalpeshonespanjohn
authored andcommitted
PB-7099. Add support to search by group name
1 parent d664259 commit 4f347da

3 files changed

Lines changed: 42 additions & 13 deletions

File tree

sdk/src/main/java/com/silanis/esl/sdk/examples/GroupManagementExample.java

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
public class GroupManagementExample extends SDKSample {
2323
public List<String> groupMemberEmailsAfterUpdate;
2424

25+
public static final String GROUP_NAME_PREFIX = "GROUP_";
26+
public static final String EMAIL = "bob@aol.com";
27+
2528
public Group createdGroup1;
2629
public Group retrievedGroup1;
2730
public Group createdGroup2;
@@ -30,6 +33,9 @@ public class GroupManagementExample extends SDKSample {
3033
public Group retrievedGroup3;
3134
public Group createdGroup3Updated;
3235

36+
public List<Group> retrievedGroupByName1;
37+
public List<Group> retrievedByNamePrefix;
38+
3339
public static void main( String... args ) {
3440
new GroupManagementExample().run();
3541
}
@@ -84,15 +90,18 @@ public void execute() {
8490
inviteAccountMember( email4 );
8591

8692
// Let's create and manage some groups
87-
Group group1 = GroupBuilder.newGroup( UUID.randomUUID().toString() )
93+
String groupName = UUID.randomUUID().toString();
94+
Group group1 = GroupBuilder.newGroup( GROUP_NAME_PREFIX + groupName )
8895
.withId( new GroupId( UUID.randomUUID().toString() ) )
8996
.withMember( GroupMemberBuilder.newGroupMember( email1 )
9097
.as( GroupMemberType.MANAGER ) )
91-
.withEmail( "bob@aol.com" )
98+
.withEmail( EMAIL )
9299
.withIndividualMemberEmailing()
93100
.build();
94101
createdGroup1 = eslClient.getGroupService().createGroup( group1 );
95102
retrievedGroup1 = eslClient.getGroupService().getGroup(createdGroup1.getId());
103+
// Retrieve by group name
104+
retrievedGroupByName1 = eslClient.getGroupService().getMyGroups(groupName);
96105

97106
// Inviting members with the two different calls
98107
// addMember returns the group member while inviteMember returns the group itself
@@ -103,28 +112,29 @@ public void execute() {
103112
.as(GroupMemberType.MANAGER)
104113
.build());
105114

106-
Group group2 = GroupBuilder.newGroup( UUID.randomUUID().toString() )
115+
groupName = UUID.randomUUID().toString();
116+
Group group2 = GroupBuilder.newGroup( GROUP_NAME_PREFIX + groupName )
107117
.withMember( GroupMemberBuilder.newGroupMember( email2 )
108118
.as( GroupMemberType.MANAGER ) )
109-
.withEmail( "bob@aol.com" )
119+
.withEmail( EMAIL )
110120
.withIndividualMemberEmailing()
111121
.build();
112122

113123
createdGroup2 = eslClient.getGroupService().createGroup( group2 );
114124
retrievedGroup2 = eslClient.getGroupService().getGroup(createdGroup2.getId());
115125

116-
Group group3 = GroupBuilder.newGroup( UUID.randomUUID().toString() )
126+
groupName = UUID.randomUUID().toString();
127+
Group group3 = GroupBuilder.newGroup( GROUP_NAME_PREFIX + groupName )
117128
.withMember( GroupMemberBuilder.newGroupMember( email3 )
118129
.as( GroupMemberType.MANAGER ) )
119-
.withEmail( "bob@aol.com" )
130+
.withEmail( EMAIL )
120131
.withIndividualMemberEmailing()
121132
.build();
122133

123134
createdGroup3 = eslClient.getGroupService().createGroup( group3 );
124135
retrievedGroup3 = eslClient.getGroupService().getGroup(createdGroup3.getId());
136+
retrievedByNamePrefix = eslClient.getGroupService().getMyGroups(GROUP_NAME_PREFIX);
125137

126-
// Here is how we delete group 2
127-
eslClient.getGroupService().deleteGroup( createdGroup2.getId() );
128138

129139
// This shows up how to update group 3
130140
Group groupUpdated = GroupBuilder.newGroup( UUID.randomUUID().toString() )
@@ -134,7 +144,7 @@ public void execute() {
134144
.as( GroupMemberType.REGULAR ))
135145
.withMember( GroupMemberBuilder.newGroupMember( email4 )
136146
.as( GroupMemberType.REGULAR ))
137-
.withEmail( "bob@aol.com" )
147+
.withEmail( EMAIL )
138148
.withIndividualMemberEmailing()
139149
.build();
140150

@@ -160,5 +170,10 @@ public void execute() {
160170
eslClient.getPackageService().notifySigner( packageId, createdGroup1.getId() );
161171

162172
DocumentPackage result = eslClient.getPackage( packageId );
173+
174+
// Here is how to delete groups
175+
eslClient.getGroupService().deleteGroup(createdGroup1.getId());
176+
eslClient.getGroupService().deleteGroup(createdGroup2.getId());
177+
eslClient.getGroupService().deleteGroup(createdGroup3.getId());
163178
}
164179
}

sdk/src/main/java/com/silanis/esl/sdk/service/GroupService.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
import com.fasterxml.jackson.core.type.TypeReference;
44
import com.silanis.esl.api.model.Result;
55
import com.silanis.esl.api.util.JacksonUtil;
6-
import com.silanis.esl.sdk.EslException;
7-
import com.silanis.esl.sdk.Group;
8-
import com.silanis.esl.sdk.GroupId;
9-
import com.silanis.esl.sdk.GroupMember;
6+
import com.silanis.esl.sdk.*;
107
import com.silanis.esl.sdk.internal.*;
118
import com.silanis.esl.sdk.internal.converter.GroupConverter;
129
import com.silanis.esl.sdk.internal.converter.GroupMemberConverter;
@@ -31,6 +28,21 @@ public GroupService( RestClient client, String baseUrl ) {
3128
*/
3229
public List<Group> getMyGroups() {
3330
String path = template.urlFor( UrlTemplate.GROUPS_PATH ).build();
31+
return getGroups(path);
32+
}
33+
34+
/**
35+
* Retrieve group(s) belonging to the account by specifying complete (or part of) GroupName.
36+
*
37+
* @param groupName
38+
* @return
39+
*/
40+
public List<Group> getMyGroups( String groupName ) {
41+
String path = template.urlFor( UrlTemplate.GROUPS_PATH).addParam("name", groupName ).build();
42+
return getGroups(path);
43+
}
44+
45+
private List<Group> getGroups(String path) {
3446
try {
3547
String stringResponse = client.get( path );
3648
Result<com.silanis.esl.api.model.Group> apiResponse = JacksonUtil.deserialize( stringResponse, new TypeReference<Result<com.silanis.esl.api.model.Group>>() {

tester/src/test/java/com/silanis/esl/sdk/examples/GroupManagementExampleTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public void verifyResult() {
2929
assertThat("Group 1 was not added properly", example.createdGroup1.getId(), is(example.retrievedGroup1.getId()));
3030
assertThat("Group 2 was not added properly", example.createdGroup2.getId(), is(example.retrievedGroup2.getId()));
3131
assertThat("Group 3 was not added properly", example.createdGroup3.getId(), is(example.retrievedGroup3.getId()));
32+
assertThat("Group retrieval by name failed", example.createdGroup1.getName(), is(example.retrievedGroupByName1.get(0).getName()));
33+
assertThat("Group retrieval by name prefix failed", example.retrievedByNamePrefix.get(0).getName().startsWith(GroupManagementExample.GROUP_NAME_PREFIX));
3234

3335
exception.expect(EslServerException.class);
3436
example.getEslClient().getGroupService().getGroup(example.createdGroup2.getId());

0 commit comments

Comments
 (0)