Skip to content

Commit d1e0cac

Browse files
committed
Added changes to support nested folders
1 parent 7697d96 commit d1e0cac

File tree

2 files changed

+32
-6
lines changed

2 files changed

+32
-6
lines changed

src/main/java/com/docusign/controller/eSignature/examples/EG045ControllerDeleteRestoreEnvelope.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,12 @@ protected Object doWork(WorkArguments args, ModelMap model,
6262
null);
6363

6464
DoneExample.createDefault(getTextForCodeExampleByApiType().ExampleName)
65-
.withMessage(getTextForCodeExampleByApiType().AdditionalPage.get(0).ResultsPageText)
65+
.withMessage(
66+
MessageFormat.format(
67+
getTextForCodeExampleByApiType().AdditionalPage.get(0).ResultsPageText,
68+
envelopeId
69+
)
70+
)
6671
.withRedirect(EXAMPLE_NUMBER + RESTORE_ENVELOPE)
6772
.addToModel(model, config);
6873

@@ -94,14 +99,16 @@ public String postRestoreEnvelope(WorkArguments args, ModelMap model) throws Exc
9499
ApiClient apiClient = createApiClient(session.getBasePath(), user.getAccessToken());
95100

96101
FoldersResponse availableFolders = DeleteRestoreEnvelopeService.getFolders(apiClient, accountId);
97-
Folder folder = availableFolders.getFolders().stream()
98-
.filter(f -> f.getName().equals(folderName))
99-
.findFirst()
100-
.orElse(null);
102+
Folder folder = DeleteRestoreEnvelopeService.getFolderIdByName(availableFolders.getFolders(), folderName);
101103

102104
if(folder == null) {
103105
DoneExample.createDefault(getTextForCodeExampleByApiType().ExampleName)
104-
.withMessage(getTextForCodeExampleByApiType().AdditionalPage.get(1).ResultsPageText)
106+
.withMessage(
107+
MessageFormat.format(
108+
getTextForCodeExampleByApiType().AdditionalPage.get(1).ResultsPageText,
109+
folderName
110+
)
111+
)
105112
.withRedirect(EXAMPLE_NUMBER + RESTORE_ENVELOPE)
106113
.addToModel(model, config);
107114

@@ -119,6 +126,7 @@ public String postRestoreEnvelope(WorkArguments args, ModelMap model) throws Exc
119126
.withMessage(
120127
MessageFormat.format(
121128
getTextForCodeExampleByApiType().ResultsPageText,
129+
envelopeId,
122130
folder.getType(),
123131
folderName
124132
)

src/main/java/com/docusign/controller/eSignature/services/DeleteRestoreEnvelopeService.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
import com.docusign.esign.api.FoldersApi;
44
import com.docusign.esign.client.ApiClient;
5+
import com.docusign.esign.model.Folder;
56
import com.docusign.esign.model.FoldersRequest;
67
import com.docusign.esign.model.FoldersResponse;
78

89
import java.util.Collections;
10+
import java.util.List;
911

1012
public final class DeleteRestoreEnvelopeService {
1113
public static FoldersResponse moveEnvelopeToFolder(
@@ -31,4 +33,20 @@ public static FoldersResponse getFolders(
3133
FoldersApi foldersApi = new FoldersApi(apiClient);
3234
return foldersApi.callList(accountId);
3335
}
36+
37+
public static Folder getFolderIdByName(List<Folder> folders, String targetName) {
38+
for (Folder folder : folders) {
39+
if (folder.getName().equals(targetName)) {
40+
return folder;
41+
}
42+
43+
if (folder.getFolders() != null && !folder.getFolders().isEmpty()) {
44+
Folder nestedFolder = DeleteRestoreEnvelopeService.getFolderIdByName(folder.getFolders(), targetName);
45+
if (nestedFolder != null) {
46+
return nestedFolder;
47+
}
48+
}
49+
}
50+
return null;
51+
}
3452
}

0 commit comments

Comments
 (0)