-
Notifications
You must be signed in to change notification settings - Fork 60
/
DocumentVisibilityExample.java
142 lines (120 loc) · 6.77 KB
/
DocumentVisibilityExample.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package com.silanis.esl.sdk.examples;
import com.silanis.esl.sdk.Document;
import com.silanis.esl.sdk.DocumentPackage;
import com.silanis.esl.sdk.DocumentType;
import com.silanis.esl.sdk.DocumentVisibility;
import com.silanis.esl.sdk.Signer;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import static com.silanis.esl.sdk.builder.DocumentBuilder.newDocumentWithName;
import static com.silanis.esl.sdk.builder.DocumentVisibilityBuilder.newDocumentVisibility;
import static com.silanis.esl.sdk.builder.DocumentVisibilityConfigurationBuilder.newDocumentVisibilityConfiguration;
import static com.silanis.esl.sdk.builder.PackageBuilder.newPackageNamed;
import static com.silanis.esl.sdk.builder.SignatureBuilder.signatureFor;
import static com.silanis.esl.sdk.builder.SignerBuilder.newSignerWithEmail;
/**
* Created by schoi on 11/23/16.
*/
public class DocumentVisibilityExample extends SDKSample {
private String email1, email2, email3;
private InputStream documentInputStream1, documentInputStream2, documentInputStream3;
public static final String DOC1_ID = "doc1Id";
public static final String DOC2_ID = "doc2Id";
public static final String DOC3_ID = "doc3Id";
public static final String DOC1_NAME = "First Document";
public static final String DOC2_NAME = "Second Document";
public static final String DOC3_NAME = "Third Document";
public static final String SIGNER1_ID = "signer1Id";
public static final String SIGNER2_ID = "signer2Id";
public static final String SIGNER3_ID = "signer3Id";
public DocumentVisibility retrievedVisibility;
public List<Document> documentsForSigner1, documentsForSigner2, documentsForSigner3;
public List<Signer> signersForDocument1, signersForDocument2, signersForDocument3;
public static void main(String... args) {
new DocumentVisibilityExample(Props.get()).run();
}
public DocumentVisibilityExample(Properties props) {
this(props.getProperty("api.key"),
props.getProperty("api.url"),
props.getProperty("1.email"),
props.getProperty("2.email"),
props.getProperty("3.email"));
}
public DocumentVisibilityExample(String apiKey, String apiUrl, String email1, String email2, String email3) {
super(apiKey, apiUrl);
this.email1 = email1;
this.email2 = email2;
this.email3 = email3;
documentInputStream1 = this.getClass().getClassLoader().getResourceAsStream("document.pdf");
documentInputStream2 = this.getClass().getClassLoader().getResourceAsStream("document.pdf");
documentInputStream3 = this.getClass().getClassLoader().getResourceAsStream("document.pdf");
}
public void execute() {
DocumentPackage superDuperPackage = newPackageNamed("DocumentVisibilityExample " + new SimpleDateFormat("HH:mm:ss").format(new Date()))
.describedAs("This is a package created using the e-SignLive SDK")
.withSigner(newSignerWithEmail(email1)
.withCustomId(SIGNER1_ID)
.withFirstName("John1")
.withLastName("Smith1"))
.withSigner(newSignerWithEmail(email2)
.withCustomId(SIGNER2_ID)
.withFirstName("John2")
.withLastName("Smith2"))
.withSigner(newSignerWithEmail(email3)
.withCustomId(SIGNER3_ID)
.withFirstName("John3")
.withLastName("Smith3"))
.withDocument(newDocumentWithName(DOC1_NAME)
.withId(DOC1_ID)
.fromStream(documentInputStream1, DocumentType.PDF)
.withSignature(signatureFor(email1)
.onPage(0)
.atPosition(100, 100)))
.withDocument(newDocumentWithName(DOC2_NAME)
.withId(DOC2_ID)
.fromStream(documentInputStream2, DocumentType.PDF)
.withSignature(signatureFor(email2)
.onPage(0)
.atPosition(100, 100)))
.withDocument(newDocumentWithName(DOC3_NAME)
.withId(DOC3_ID)
.fromStream(documentInputStream3, DocumentType.PDF)
.withSignature(signatureFor(email3)
.onPage(0)
.atPosition(100, 100)))
.build();
packageId = eslClient.createPackage(superDuperPackage);
DocumentVisibility visibility = newDocumentVisibility()
.addConfiguration(newDocumentVisibilityConfiguration(DOC1_ID)
.withSignerIds(Arrays.asList(SIGNER1_ID, SIGNER3_ID)))
.addConfiguration(newDocumentVisibilityConfiguration(DOC2_ID)
.withSignerIds(Arrays.asList(SIGNER2_ID, SIGNER3_ID)))
.addConfiguration(newDocumentVisibilityConfiguration(DOC3_ID)
.withSignerIds(Arrays.asList(SIGNER3_ID, SIGNER2_ID)))
.build();
// You can also set up a document visibility based on signer.
/*
DocumentVisibility visibility = newDocumentVisibilityBasedOnSigner()
.addConfiguration(newDocumentVisibilityConfigurationBasedOnSigner(SIGNER1_ID)
.withDocumentIds(Arrays.asList(DOC1_ID)))
.addConfiguration(newDocumentVisibilityConfigurationBasedOnSigner(SIGNER2_ID)
.withDocumentIds(Arrays.asList(DOC2_ID, DOC3_ID)))
.addConfiguration(newDocumentVisibilityConfigurationBasedOnSigner(SIGNER3_ID)
.withDocumentIds(Arrays.asList(DOC1_ID, DOC2_ID, DOC3_ID)))
.build();*/
eslClient.configureDocumentVisibility(packageId, visibility);
retrievedVisibility = eslClient.getDocumentVisibility(packageId);
eslClient.sendPackage(packageId);
retrievedPackage = eslClient.getPackage(packageId);
documentsForSigner1 = eslClient.getDocuments(packageId, SIGNER1_ID);
documentsForSigner2 = eslClient.getDocuments(packageId, SIGNER2_ID);
documentsForSigner3 = eslClient.getDocuments(packageId, SIGNER3_ID);
signersForDocument1 = eslClient.getSigners(packageId, DOC1_ID);
signersForDocument2 = eslClient.getSigners(packageId, DOC2_ID);
signersForDocument3 = eslClient.getSigners(packageId, DOC3_ID);
}
}