Skip to content

Commit 9051a19

Browse files
committed
initial commit to test the methods
1 parent 2016b8f commit 9051a19

File tree

11 files changed

+417
-178
lines changed

11 files changed

+417
-178
lines changed

code-examples-java.iml

Lines changed: 1 addition & 177 deletions
Original file line numberDiff line numberDiff line change
@@ -1,187 +1,11 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true"
3-
type="JAVA_MODULE" version="4">
2+
<module version="4">
43
<component name="CheckStyle-IDEA-Module" serialisationVersion="2">
54
<option name="activeLocationsIds" />
65
</component>
76
<component name="FacetManager">
8-
<facet type="web" name="Web">
9-
<configuration>
10-
<webroots>
11-
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
12-
</webroots>
13-
<sourceRoots>
14-
<root url="file://$MODULE_DIR$/src/main/java" />
15-
<root url="file://$MODULE_DIR$/src/main/resources" />
16-
</sourceRoots>
17-
</configuration>
18-
</facet>
197
<facet type="Spring" name="Spring">
208
<configuration />
219
</facet>
2210
</component>
23-
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">
24-
<output url="file://$MODULE_DIR$/target/classes" />
25-
<output-test url="file://$MODULE_DIR$/target/test-classes" />
26-
<content url="file://$MODULE_DIR$">
27-
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
28-
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
29-
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
30-
<excludeFolder url="file://$MODULE_DIR$/target" />
31-
</content>
32-
<orderEntry type="inheritedJdk" />
33-
<orderEntry type="sourceFolder" forTests="false" />
34-
<orderEntry type="library"
35-
name="Maven: org.springframework.boot:spring-boot-starter-security:2.5.12" level="project" />
36-
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.5.12"
37-
level="project" />
38-
<orderEntry type="library"
39-
name="Maven: org.springframework.boot:spring-boot-starter-logging:2.5.12" level="project" />
40-
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.11" level="project" />
41-
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.11" level="project" />
42-
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.36" level="project" />
43-
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.2"
44-
level="project" />
45-
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.2"
46-
level="project" />
47-
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.36" level="project" />
48-
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5"
49-
level="project" />
50-
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.18" level="project" />
51-
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.18" level="project" />
52-
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.28" level="project" />
53-
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.18" level="project" />
54-
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.18" level="project" />
55-
<orderEntry type="library"
56-
name="Maven: org.springframework.security:spring-security-config:5.5.5" level="project" />
57-
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.18"
58-
level="project" />
59-
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-web:5.5.5"
60-
level="project" />
61-
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.18"
62-
level="project" />
63-
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.5.12"
64-
level="project" />
65-
<orderEntry type="library"
66-
name="Maven: org.springframework.boot:spring-boot-starter-json:2.5.12" level="project" />
67-
<orderEntry type="library"
68-
name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.12.6" level="project" />
69-
<orderEntry type="library"
70-
name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.12.6"
71-
level="project" />
72-
<orderEntry type="library"
73-
name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.5.12" level="project" />
74-
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.60"
75-
level="project" />
76-
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.18" level="project" />
77-
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.18"
78-
level="project" />
79-
<orderEntry type="library" name="Maven: org.apache.taglibs:taglibs-standard-spec:1.2.5"
80-
level="project" />
81-
<orderEntry type="library"
82-
name="Maven: org.springframework.boot:spring-boot-starter-oauth2-client:2.5.12"
83-
level="project" />
84-
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:5.5.5"
85-
level="project" />
86-
<orderEntry type="library"
87-
name="Maven: org.springframework.security:spring-security-crypto:5.5.5" level="project" />
88-
<orderEntry type="library"
89-
name="Maven: org.springframework.security:spring-security-oauth2-client:5.5.5" level="project" />
90-
<orderEntry type="library"
91-
name="Maven: org.springframework.security:spring-security-oauth2-core:5.5.5" level="project" />
92-
<orderEntry type="library" name="Maven: com.nimbusds:oauth2-oidc-sdk:9.9.1" level="project" />
93-
<orderEntry type="library" name="Maven: com.github.stephenc.jcip:jcip-annotations:1.0-1"
94-
level="project" />
95-
<orderEntry type="library" name="Maven: com.nimbusds:content-type:2.1" level="project" />
96-
<orderEntry type="library" name="Maven: net.minidev:json-smart:2.4.8" level="project" />
97-
<orderEntry type="library" name="Maven: net.minidev:accessors-smart:2.4.8" level="project" />
98-
<orderEntry type="library" name="Maven: org.ow2.asm:asm:9.1" level="project" />
99-
<orderEntry type="library" name="Maven: com.nimbusds:lang-tag:1.5" level="project" />
100-
<orderEntry type="library"
101-
name="Maven: org.springframework.security:spring-security-oauth2-jose:5.5.5" level="project" />
102-
<orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:9.10.1" level="project" />
103-
<orderEntry type="library" name="Maven: io.github.cdimascio:dotenv-java:2.2.0" level="project" />
104-
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.22" level="project" />
105-
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
106-
<orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.31" level="project" />
107-
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.9" level="project" />
108-
<orderEntry type="library"
109-
name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-joda:2.12.6" level="project" />
110-
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.12.6"
111-
level="project" />
112-
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.12.6"
113-
level="project" />
114-
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.12.6.1"
115-
level="project" />
116-
<orderEntry type="library" name="Maven: joda-time:joda-time:2.10.8" level="project" />
117-
<orderEntry type="library"
118-
name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.6" level="project" />
119-
<orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations:2.2.8"
120-
level="project" />
121-
<orderEntry type="library"
122-
name="Maven: com.fasterxml.jackson.jakarta.rs:jackson-jakarta-rs-base:2.14.2" level="project" />
123-
<orderEntry type="library" name="Maven: jakarta.ws.rs:jakarta.ws.rs-api:3.1.0" level="project" />
124-
<orderEntry type="library" name="Maven: javax.ws.rs:javax.ws.rs-api:2.0.1" level="project" />
125-
<orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:4.0.1" level="project" />
126-
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.15" level="project" />
127-
<orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" />
128-
<orderEntry type="library" name="Maven: org.json:json:20210307" level="project" />
129-
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-jasper:9.0.60"
130-
level="project" />
131-
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.60"
132-
level="project" />
133-
<orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-annotations-api:9.0.60"
134-
level="project" />
135-
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.60"
136-
level="project" />
137-
<orderEntry type="library" name="Maven: org.eclipse.jdt:ecj:3.18.0" level="project" />
138-
<orderEntry type="library" name="Maven: commons-io:commons-io:2.11.0" level="project" />
139-
<orderEntry type="library" name="Maven: com.docusign:docusign-esign-java:shaded:4.3.0"
140-
level="project" />
141-
<orderEntry type="library" name="Maven: com.docusign:docusign-rooms-java:shaded:1.4.2"
142-
level="project" />
143-
<orderEntry type="library" name="Maven: com.docusign:docusign-click-java:shaded:1.4.0"
144-
level="project" />
145-
<orderEntry type="library" name="Maven: com.docusign:docusign-monitor-java:shaded:1.3.0"
146-
level="project" />
147-
<orderEntry type="library" name="Maven: com.docusign:docusign-admin-java:shaded:1.2.0"
148-
level="project" />
149-
<orderEntry type="library"
150-
name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.5.12" level="project" />
151-
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.5.12"
152-
level="project" />
153-
<orderEntry type="library"
154-
name="Maven: org.glassfish.jersey.media:jersey-media-json-jackson:3.0.9" level="project" />
155-
<orderEntry type="library" name="Maven: org.glassfish.jersey.core:jersey-common:2.33"
156-
level="project" />
157-
<orderEntry type="library" name="Maven: org.glassfish.hk2.external:jakarta.inject:2.6.1"
158-
level="project" />
159-
<orderEntry type="library" name="Maven: org.glassfish.hk2:osgi-resource-locator:1.0.3"
160-
level="project" />
161-
<orderEntry type="library" name="Maven: org.glassfish.jersey.ext:jersey-entity-filtering:2.33"
162-
level="project" />
163-
<orderEntry type="library"
164-
name="Maven: com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations:2.13.3"
165-
level="project" />
166-
<orderEntry type="library" name="Maven: com.sun.activation:jakarta.activation:1.2.2"
167-
level="project" />
168-
<orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3"
169-
level="project" />
170-
<orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2"
171-
level="project" />
172-
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" />
173-
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2"
174-
level="project" />
175-
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
176-
<orderEntry type="library" scope="TEST"
177-
name="Maven: org.junit.jupiter:junit-jupiter-params:5.7.2" level="project" />
178-
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0"
179-
level="project" />
180-
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.2"
181-
level="project" />
182-
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0"
183-
level="project" />
184-
<orderEntry type="library" scope="TEST"
185-
name="Maven: org.junit.platform:junit-platform-commons:1.7.2" level="project" />
186-
</component>
18711
</module>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
<monitor.version>1.4.0</monitor.version>
3333
<admin.version>2.0.0</admin.version>
3434
<webforms.version>2.0.0-RC1</webforms.version>
35-
<iam.version>0.0.1-alpha.1</iam.version>
35+
<iam.version>1.0.0-beta.3</iam.version>
3636
<swagger-core-version>2.2.22</swagger-core-version>
3737
<jackson-version>2.17.2</jackson-version>
3838
<jersey2.version>3.1.10</jersey2.version>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public enum ApiIndex {
1010
NAVIGATOR("/pages/navigator/index", "/restapi", "/nav001", "/nav"),
1111
NOTARY("/pages/notary/index", "/restapi", "/n004", "/n"),
1212
WEBFORMS("/pages/webforms/index", "/restapi", "/web001", "/web"),
13+
MAESTRO("/pages/maestro/index", "/restapi", "/mae001", "/mae"),
1314
CONNECTEDFIELDS("/pages/connectedfields/index", "/restapi", "/cf001", "/cf");
1415

1516
private final String indexPath;
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.docusign.controller.maestro.examples;
2+
3+
import com.docusign.DSConfiguration;
4+
import com.docusign.core.controller.AbstractController;
5+
import com.docusign.core.model.Session;
6+
import com.docusign.core.model.User;
7+
import org.springframework.stereotype.Controller;
8+
9+
/**
10+
* Abstract base class for all Maestro fields controllers.
11+
*/
12+
@Controller
13+
public abstract class AbstractMaestroController extends AbstractController {
14+
15+
private static final String EXAMPLE_PAGES_PATH = "pages/maestro/examples/";
16+
17+
protected final User user;
18+
19+
protected final Session session;
20+
21+
public AbstractMaestroController(DSConfiguration config, String exampleName, User user, Session session) {
22+
super(config, exampleName);
23+
this.user = user;
24+
this.session = session;
25+
}
26+
27+
protected String getExamplePagesPath() {
28+
return AbstractMaestroController.EXAMPLE_PAGES_PATH;
29+
}
30+
}
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
package com.docusign.controller.maestro.examples;
2+
3+
import com.docusign.DSConfiguration;
4+
import com.docusign.common.WorkArguments;
5+
import com.docusign.controller.maestro.services.MaestroMethodsService;
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 get all agreements.
17+
*/
18+
@Controller
19+
@RequestMapping("/mae001")
20+
public class Mae001TriggerWorkflowController extends AbstractMaestroController {
21+
private static final String MODEL_TEMPLATE_ID = "templateId";
22+
23+
private static final String MODEL_WORKFLOW_ID = "workflowId";
24+
25+
private static final String MODEL_PUBLISH_LINK_ID = "publishLink";
26+
27+
public static final String WORKFLOW_NAME = "Example workflow - send invite to signer";
28+
29+
public Mae001TriggerWorkflowController(DSConfiguration config, Session session, User user) {
30+
super(config, "mae001", user, session);
31+
}
32+
33+
@Override
34+
protected void onInitModel(WorkArguments args, ModelMap model) throws Exception {
35+
super.onInitModel(args, model);
36+
//ApiClient apiClient = createApiClient(config.getMaestroBasePath(), user.getAccessToken());
37+
var accountId = session.getAccountId();
38+
var accessToken = user.getAccessToken();
39+
String templateId = session.getTemplateId();
40+
41+
try {
42+
var workflowDefinition = MaestroMethodsService.getMaestroWorkflow(
43+
accessToken,
44+
accountId);
45+
46+
if (workflowDefinition.workflowsListSuccess() != null && workflowDefinition.workflowsListSuccess().isPresent()) {
47+
workflowDefinition.workflowsListSuccess().stream()
48+
.filter(w -> w.data().isPresent()) // ensure data() is present
49+
.flatMap(w -> w.data().get().stream()) // stream each workflow in the list
50+
.filter(w -> w.name().get().equals(WORKFLOW_NAME)) // match by name
51+
.findFirst()
52+
.ifPresent(w -> session.setWorkflowId(w.id().get()));
53+
}
54+
55+
var paused = MaestroMethodsService.PauseMaestroWorkflow(
56+
accessToken,
57+
accountId,
58+
session.getWorkflowId());
59+
60+
var resumed = MaestroMethodsService.ResumeMaestroWorkflow(
61+
accessToken,
62+
accountId,
63+
session.getWorkflowId());
64+
65+
var result = MaestroMethodsService.triggerWorkflowInstance(
66+
accessToken,
67+
accountId,
68+
session.getWorkflowId(),
69+
"a@gmail.com",
70+
"anna",
71+
"an@gmail.com",
72+
"as",
73+
"inst");
74+
75+
/*
76+
if (session.getIsWorkflowPublished()) {
77+
String publishLink = TriggerWorkflowService.publishWorkFlow(
78+
apiClient,
79+
accountId,
80+
session.getWorkflowId());
81+
82+
if (!publishLink.isEmpty()) {
83+
model.addAttribute(MODEL_PUBLISH_LINK_ID, getTextForCodeExampleByApiType().getAdditionalPage()
84+
.get(0).getResultsPageText().replaceFirst("\\{0}", publishLink));
85+
} else {
86+
session.setIsWorkflowPublished(false);
87+
}
88+
}
89+
90+
if (session.getWorkflowId() == null && templateId != null) {
91+
WorkflowManagementApi managementApi = new WorkflowManagementApi(apiClient);
92+
93+
NewOrUpdatedWorkflowDefinitionResponse createWorkflow = CreateWorkflowService.createWorkflowDefinition(
94+
managementApi,
95+
accountId,
96+
templateId);
97+
98+
session.setWorkflowId(createWorkflow.getWorkflowDefinitionId());
99+
100+
String publishLink = TriggerWorkflowService.publishWorkFlow(
101+
apiClient,
102+
accountId,
103+
session.getWorkflowId());
104+
105+
session.setIsWorkflowPublished(true);
106+
model.addAttribute(MODEL_PUBLISH_LINK_ID, getTextForCodeExampleByApiType().getAdditionalPage().get(0)
107+
.getResultsPageText().replaceFirst("\\{0}", publishLink));
108+
}
109+
110+
*/
111+
} catch(Exception exception) {
112+
System.out.println(exception.toString());
113+
exception.printStackTrace();
114+
throw exception;
115+
}
116+
117+
model.addAttribute(MODEL_TEMPLATE_ID, templateId);
118+
model.addAttribute(MODEL_WORKFLOW_ID, session.getWorkflowId());
119+
}
120+
121+
@Override
122+
protected Object doWork(
123+
WorkArguments args,
124+
ModelMap model,
125+
HttpServletResponse response
126+
) throws Exception{
127+
var accountId = session.getAccountId();
128+
var accessToken = user.getAccessToken();
129+
130+
var workflowDefinition = MaestroMethodsService.PauseMaestroWorkflow(
131+
accessToken,
132+
accountId,
133+
session.getWorkflowId());
134+
135+
var r = MaestroMethodsService.ResumeMaestroWorkflow(
136+
accessToken,
137+
accountId,
138+
session.getWorkflowId());
139+
140+
var result = MaestroMethodsService.triggerWorkflowInstance(
141+
accessToken,
142+
accountId,
143+
session.getWorkflowId(),
144+
args.getSignerEmail(),
145+
args.getSignerName(),
146+
args.getCcEmail(),
147+
args.getCcName(),
148+
args.getInstanceName());
149+
150+
DoneExample.createDefault(getTextForCodeExampleByApiType().ExampleName)
151+
.withMessage(getTextForCodeExampleByApiType().ResultsPageText)
152+
.withJsonObject(result)
153+
.addToModel(model, config);
154+
return DONE_EXAMPLE_PAGE;
155+
}
156+
}

0 commit comments

Comments
 (0)