Skip to content

Commit f345fa7

Browse files
committed
Merge branch 'master' into delete-restore-envelope
2 parents eb6e225 + f999bf4 commit f345fa7

File tree

10 files changed

+1080
-121
lines changed

10 files changed

+1080
-121
lines changed

README.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,7 @@ For a list of code examples that use the Web Forms API, see the [How-to guides o
131131

132132
#### Multiple code examples, Authorization Code Grant, and JWT Grant:
133133
1. $ `cd <Quickstart folder>`
134-
1. $ `mvn package -Dmaven.test.skip=true`
135-
1. $ `java -Dspring.profiles.active=dev -jar target/code-examples-java-1.0-SNAPSHOT.war`
136-
For Windows:
137-
1. $ `mvn package -D"maven.test.skip"="true"`
138-
1. $ `java -D"spring.profiles.active"="dev" -jar target/code-examples-java-1.0-SNAPSHOT.war`
134+
1. $ `mvn spring-boot:run`
139135

140136
#### Authorization Code Grant embedded signing example:
141137

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<click.version>1.5.0</click.version>
3232
<monitor.version>1.4.0</monitor.version>
3333
<admin.version>2.0.0</admin.version>
34-
<webforms.version>2.0.0-RC1</webforms.version>
34+
<webforms.version>2.1.0</webforms.version>
3535
<iam.version>0.0.1-alpha.1</iam.version>
3636
<swagger-core-version>2.2.22</swagger-core-version>
3737
<jackson-version>2.17.2</jackson-version>

src/main/java/com/docusign/controller/webForms/examples/AbstractWebFormsController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ protected static com.docusign.webforms.client.ApiClient createWebFormsApiClient(
4646
String basePath,
4747
String userAccessToken
4848
) {
49-
//ds-snippet-start:WebForms1Step2
49+
//ds-snippet-start:WebFormsJavaStep2
5050
com.docusign.webforms.client.ApiClient apiClient = new com.docusign.webforms.client.ApiClient(basePath);
5151
apiClient.addDefaultHeader(HttpHeaders.AUTHORIZATION, BEARER_AUTHENTICATION + userAccessToken);
5252
apiClient.addAuthorization("docusignAccessCode", new com.docusign.webforms.client.auth.OAuth());
53-
//ds-snippet-end:WebForms1Step2
53+
//ds-snippet-end:WebFormsJavaStep2
5454
return apiClient;
5555
}
5656

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
package com.docusign.controller.webForms.examples;
2+
3+
import com.docusign.DSConfiguration;
4+
import com.docusign.common.WorkArguments;
5+
import com.docusign.controller.eSignature.services.CreateTemplateService;
6+
import com.docusign.controller.webForms.services.CreateRemoteInstanceService;
7+
import com.docusign.core.model.DoneExample;
8+
import com.docusign.core.model.Session;
9+
import com.docusign.core.model.User;
10+
import com.docusign.esign.client.ApiClient;
11+
import com.docusign.esign.client.ApiException;
12+
import com.docusign.esign.model.EnvelopeTemplate;
13+
import com.docusign.esign.model.EnvelopeTemplateResults;
14+
import com.docusign.esign.model.TemplateSummary;
15+
import com.docusign.webforms.model.WebFormInstance;
16+
import com.docusign.webforms.model.WebFormSummaryList;
17+
import org.springframework.stereotype.Controller;
18+
import org.springframework.ui.ModelMap;
19+
import org.springframework.web.bind.annotation.RequestMapping;
20+
import org.springframework.web.servlet.view.RedirectView;
21+
22+
import javax.servlet.http.HttpServletResponse;
23+
import java.io.IOException;
24+
25+
@Controller
26+
@RequestMapping("/web002")
27+
public class WEB002CreateRemoteInstance extends AbstractWebFormsController {
28+
29+
private static final String TEMPLATE_ID = "templateId";
30+
31+
private static final String TEMPLATE_NAME = "Web Form Example Template";
32+
33+
private static final String DOCUMENT_FILE_NAME = "World_Wide_Corp_Web_Form.pdf";
34+
35+
private static final String WEB_FORM_CONFIG = "web-form-config.json";
36+
37+
private final DSConfiguration configuration;
38+
39+
public WEB002CreateRemoteInstance(DSConfiguration config, Session session, User user) {
40+
super(config, "web002", session, user);
41+
this.configuration = config;
42+
}
43+
44+
@Override
45+
protected void onInitModel(WorkArguments args, ModelMap model) throws Exception {
46+
super.onInitModel(args, model);
47+
model.addAttribute(TEMPLATE_ID, session.getWebformTemplateId());
48+
}
49+
50+
@Override
51+
protected Object doWork(
52+
WorkArguments args,
53+
ModelMap model,
54+
HttpServletResponse response) throws ApiException, IOException, com.docusign.webforms.client.ApiException {
55+
if (session.getIsWebFormsInitialRun()) {
56+
handleInitialRun(model);
57+
return new RedirectView("web002");
58+
}
59+
60+
String accountId = session.getAccountId();
61+
var apiClient = createWebFormsApiClient(
62+
config.getWebFormsBasePath(),
63+
user.getAccessToken());
64+
65+
WebFormSummaryList forms = CreateRemoteInstanceService.getFormsByName(
66+
apiClient,
67+
accountId,
68+
TEMPLATE_NAME);
69+
70+
if (forms.getItems() == null || forms.getItems().isEmpty()) {
71+
throw new ApiException(getTextForCodeExampleByApiType().CustomErrorTexts.get(0).ErrorMessage);
72+
}
73+
74+
String formId = forms.getItems().get(0).getId();
75+
76+
WebFormInstance form = CreateRemoteInstanceService.createInstance(
77+
apiClient,
78+
accountId,
79+
formId,
80+
configuration.getSignerEmail(),
81+
configuration.getSignerName());
82+
83+
session.setIsWebFormsInitialRun(true);
84+
DoneExample.createDefault(getTextForCodeExampleByApiType().ExampleName)
85+
.withMessage(getTextForCodeExampleByApiType().ResultsPageText
86+
.replaceFirst("\\{0}", form.getEnvelopes().get(0).getId()).replaceFirst("\\{1}", form.getId())
87+
)
88+
.addToModel(model, config);
89+
return DONE_EXAMPLE_PAGE;
90+
}
91+
92+
private void handleInitialRun(ModelMap model) throws ApiException, IOException {
93+
ApiClient apiClient = createESignApiClient(session.getBasePath(), user.getAccessToken());
94+
String accountId = session.getAccountId();
95+
96+
String templateId = findOrCreateTemplate(apiClient, accountId);
97+
session.setWebformTemplateId(templateId);
98+
session.setIsWebFormsInitialRun(false);
99+
100+
model.addAttribute(TEMPLATE_ID, templateId);
101+
CreateRemoteInstanceService.addTemplateIdToForm(WEB_FORM_CONFIG, templateId);
102+
}
103+
104+
private String findOrCreateTemplate(ApiClient apiClient, String accountId) throws ApiException, IOException {
105+
EnvelopeTemplateResults templateResults = CreateTemplateService.searchTemplatesByName(
106+
apiClient,
107+
accountId,
108+
TEMPLATE_NAME);
109+
110+
if (templateResults.getEnvelopeTemplates() != null && !templateResults.getEnvelopeTemplates().isEmpty()) {
111+
EnvelopeTemplate existingTemplate = templateResults.getEnvelopeTemplates().get(0);
112+
return existingTemplate.getTemplateId();
113+
}
114+
115+
TemplateSummary newTemplate = CreateTemplateService.createTemplate(
116+
apiClient,
117+
accountId,
118+
CreateRemoteInstanceService.prepareEnvelopeTemplate(TEMPLATE_NAME, DOCUMENT_FILE_NAME)
119+
);
120+
return newTemplate.getTemplateId();
121+
}
122+
}

0 commit comments

Comments
 (0)