Skip to content

Commit 85f2045

Browse files
committed
Added upload request example
1 parent 00f0314 commit 85f2045

File tree

6 files changed

+174
-0
lines changed

6 files changed

+174
-0
lines changed

src/main/java/com/docusign/common/WorkArguments.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,4 +192,6 @@ public class WorkArguments {
192192
private String documentName;
193193

194194
private String documentPath;
195+
196+
private String assigneeEmail;
195197
}

src/main/java/com/docusign/controller/workspaces/examples/Work001CreateWorkspaceController.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ protected Object doWork(WorkArguments args, ModelMap model, HttpServletResponse
3939

4040
var workspace = CreateWorkspaceService.createWorkspace(accessToken, accountId, workspaceName);
4141
var workspaceId = workspace.createWorkspaceResponse().get().workspaceId().orElse("");
42+
var creatorId = workspace.createWorkspaceResponse().get().createdByUserId().orElse("");
4243
session.setWorkspaceId(workspaceId);
44+
session.setCreatorId(creatorId);
4345

4446
DoneExample.createDefault(getTextForCodeExampleByApiType().ExampleName)
4547
.withMessage(getTextForCodeExampleByApiType().ResultsPageText.replaceFirst("\\{0}", workspaceId))
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package com.docusign.controller.workspaces.examples;
2+
3+
import com.docusign.DSConfiguration;
4+
import com.docusign.common.WorkArguments;
5+
import com.docusign.controller.workspaces.services.CreateUploadRequestService;
6+
import com.docusign.core.model.DoneExample;
7+
import com.docusign.core.model.Session;
8+
import com.docusign.core.model.User;
9+
import org.springframework.stereotype.Controller;
10+
import org.springframework.ui.ModelMap;
11+
import org.springframework.web.bind.annotation.RequestMapping;
12+
13+
import javax.servlet.http.HttpServletResponse;
14+
15+
/**
16+
* This example demonstrates how to create upload request.
17+
*/
18+
@Controller
19+
@RequestMapping("/work005")
20+
public class Work005CreateUploadRequestController extends AbstractWorkspacesController {
21+
private static final String MODEL_WORKSPACE_OK = "workspaceOk";
22+
23+
private static final String MODEL_CREATOR_OK = "creatorOk";
24+
25+
public Work005CreateUploadRequestController(DSConfiguration config, Session session, User user) {
26+
super(config, "work005", session, user);
27+
}
28+
29+
@Override
30+
protected void onInitModel(WorkArguments args, ModelMap model) throws Exception {
31+
super.onInitModel(args, model);
32+
33+
model.addAttribute(MODEL_WORKSPACE_OK, session.getWorkspaceId() != null && !session.getWorkspaceId().isEmpty());
34+
model.addAttribute(MODEL_CREATOR_OK, session.getCreatorId() != null && !session.getCreatorId().isEmpty());
35+
}
36+
37+
@Override
38+
protected Object doWork(WorkArguments args, ModelMap model, HttpServletResponse response) throws Exception {
39+
var accountId = session.getAccountId();
40+
var accessToken = user.getAccessToken();
41+
var workspaceId = session.getWorkspaceId();
42+
var creatorId = session.getCreatorId();
43+
var assigneeEmail = args.getAssigneeEmail();
44+
45+
try{
46+
var results = CreateUploadRequestService.createUploadRequest(
47+
accessToken,
48+
accountId,
49+
workspaceId,
50+
creatorId,
51+
assigneeEmail);
52+
53+
DoneExample.createDefault(getTextForCodeExampleByApiType().ExampleName)
54+
.withMessage(getTextForCodeExampleByApiType().ResultsPageText.replaceFirst(
55+
"\\{0}",
56+
results.getWorkspaceUploadRequestResponse().get().uploadRequestId()))
57+
.addToModel(model, config);
58+
} catch (Exception e) {
59+
DoneExample.createDefault(getTextForCodeExampleByApiType().ExampleName)
60+
.withMessage(getTextForCodeExampleByApiType().CustomErrorTexts.get(0).ErrorMessage)
61+
.addToModel(model, config);
62+
}
63+
64+
65+
return DONE_EXAMPLE_PAGE;
66+
}
67+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.docusign.controller.workspaces.services;
2+
3+
import com.docusign.iam.sdk.IamClient;
4+
import com.docusign.iam.sdk.models.components.*;
5+
import com.docusign.iam.sdk.models.operations.CreateWorkspaceUploadRequestResponse;
6+
import java.time.OffsetDateTime;
7+
import java.util.Arrays;
8+
9+
public final class CreateUploadRequestService {
10+
private static IamClient createIamClient(String accessToken) {
11+
return IamClient.builder().accessToken(accessToken).build();
12+
}
13+
14+
public static CreateWorkspaceUploadRequestResponse createUploadRequest(
15+
String accessToken,
16+
String accountId,
17+
String workspaceId,
18+
String creatorId,
19+
String assigneeEmail) throws Exception {
20+
OffsetDateTime dueDate = OffsetDateTime.now().plusDays(7);
21+
22+
var assignmentFoAssignee = new CreateWorkspaceUploadRequestAssignment(
23+
WorkspaceUploadRequestResponsibilityType.ASSIGNEE)
24+
.withFirstName("Test")
25+
.withLastName("User")
26+
.withEmail(assigneeEmail);
27+
var assignmentForCreator = new CreateWorkspaceUploadRequestAssignment(
28+
WorkspaceUploadRequestResponsibilityType.WATCHER)
29+
.withAssigneeUserId(creatorId);
30+
var assignments = Arrays.asList(
31+
assignmentFoAssignee,
32+
assignmentForCreator);
33+
34+
var createWorkspaceUploadRequestBody = new CreateWorkspaceUploadRequestBody(dueDate,
35+
WorkspaceUploadRequestStatus.DRAFT)
36+
.withName("Upload Request example " + dueDate)
37+
.withDescription("This is an example upload request created via the workspaces API")
38+
.withAssignments(assignments);
39+
40+
return createIamClient(accessToken)
41+
.workspaces()
42+
.workspaceUploadRequest()
43+
.createWorkspaceUploadRequest()
44+
.accountId(accountId)
45+
.workspaceId(workspaceId)
46+
.createWorkspaceUploadRequestBody(createWorkspaceUploadRequestBody)
47+
.call();
48+
}
49+
}

src/main/java/com/docusign/core/model/Session.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,5 +84,7 @@ public class Session implements Serializable {
8484

8585
private String workspaceId;
8686

87+
private String creatorId;
88+
8789
private String documentId;
8890
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2+
<jsp:include page="../../../partials/head.jsp"/>
3+
4+
<c:set var="formNumber" value="0" scope="page" />
5+
<c:set var="assigneeEmailInputNumber" value="0" scope="page" />
6+
<c:set var="noWorkspaceRedirect" value="0" scope="page" />
7+
<c:set var="noCreatorIdRedirect" value="1" scope="page" />
8+
<c:set var="redirectToFirstCodeExample" value="href='work001'" scope="page" />
9+
10+
<h4>${example.getExampleName()}</h4>
11+
<p>${example.getExampleDescription()}</p>
12+
<jsp:include page="../../links_to_api_methods.jsp" />
13+
<p>
14+
${viewSourceFile}
15+
</p>
16+
17+
<c:choose>
18+
<c:when test="${!workspaceOk}">
19+
<p>
20+
${example.getRedirectsToOtherCodeExamples().get(noWorkspaceRedirect).getRedirectText().replaceFirst("\\{0}", redirectToFirstCodeExample)}
21+
</p>
22+
</c:when>
23+
<c:when test="${!creatorOk}">
24+
<p>
25+
${example.getRedirectsToOtherCodeExamples().get(noCreatorIdRedirect).getRedirectText().replaceFirst("\\{0}", redirectToFirstCodeExample)}
26+
</p>
27+
</c:when>
28+
<c:otherwise>
29+
<form class="eg" action="" method="post" data-busy="form">
30+
<div class="form-group">
31+
<label for="assigneeEmail">
32+
${example.getForms().get(formNumber).getInputs().get(assigneeEmailInputNumber).getInputName()}
33+
</label>
34+
35+
<input type="text"
36+
class="form-control"
37+
id="assigneeEmail"
38+
placeholder="${example.getForms().get(formNumber).getInputs().get(assigneeEmailInputNumber).getInputPlaceholder()}"
39+
name="assigneeEmail"
40+
required>
41+
42+
<small id="emailHelp" class="form-text text-muted">
43+
${launcherTexts.getHelpingTexts().getEmailWontBeShared()}
44+
</small>
45+
</div>
46+
<input type="hidden" name="_csrf" value="${csrfToken}">
47+
<button type="submit" class="btn btn-docu">${launcherTexts.getSubmitButton()}</button>
48+
</form>
49+
</c:otherwise>
50+
</c:choose>
51+
52+
<jsp:include page="../../../partials/foot.jsp"/>

0 commit comments

Comments
 (0)