package echosign.api.demo;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import echosign.api.clientv20.ArrayOfString;
import echosign.api.clientv20.dto.AppliesTo;
import echosign.api.clientv20.dto.ArrayOfDocumentPageImages;
import echosign.api.clientv20.dto.ArrayOfFileInfo;
import echosign.api.clientv20.dto.CancelDocumentResult;
import echosign.api.clientv20.dto.DisplayUserInfo;
import echosign.api.clientv20.dto.DocumentCreationInfo;
import echosign.api.clientv20.dto.DocumentImageList;
import echosign.api.clientv20.dto.DocumentPageImages;
import echosign.api.clientv20.dto.DocumentUrlResult;
import echosign.api.clientv20.dto.ExternalId;
import echosign.api.clientv20.dto.FormCreationInfo;
import echosign.api.clientv20.dto.OptIn;
import echosign.api.clientv20.dto.RemoveDocumentResult;
import echosign.api.clientv20.dto.Result;
import echosign.api.clientv20.dto.SecurityOptions;
import echosign.api.clientv20.dto.SendReminderResult;
import echosign.api.clientv20.dto.SignatureFlow;
import echosign.api.clientv20.dto.SignatureType;
import echosign.api.clientv20.dto.UserCreationInfo;
import echosign.api.clientv20.dto.UserVerificationInfo;
import echosign.api.clientv20.dto12.SendDocumentInteractiveOptions;
import echosign.api.clientv20.dto14.ArrayOfRecipientInfo;
import echosign.api.clientv20.dto14.DocumentContent;
import echosign.api.clientv20.dto14.DocumentUrl;
import echosign.api.clientv20.dto14.GetDocumentImageUrlsOptions;
import echosign.api.clientv20.dto14.GetDocumentUrlsOptions;
import echosign.api.clientv20.dto14.GetDocumentUrlsResult;
import echosign.api.clientv20.dto14.GetDocumentsOptions;
import echosign.api.clientv20.dto14.GetSupportingDocumentsOptions;
import echosign.api.clientv20.dto14.SigningUrlResult;
import echosign.api.clientv20.dto14.SupportingDocumentContentFormat;
import echosign.api.clientv20.dto15.DeleteGroupResult;
import echosign.api.clientv20.dto15.MoveUsersToGroupResult;
import echosign.api.clientv20.dto15.RenameGroupResult;
import echosign.api.clientv20.dto15.UsersToMoveInfo;
import echosign.api.clientv20.dto16.ArrayOfDocumentKey;
import echosign.api.clientv20.dto16.ArrayOfUserInfo;
import echosign.api.clientv20.dto16.ArrayOfWidgetItem;
import echosign.api.clientv20.dto16.CreateGroupResult;
import echosign.api.clientv20.dto16.DisableWidgetOptions;
import echosign.api.clientv20.dto16.DisableWidgetResult;
import echosign.api.clientv20.dto16.DocumentImageUrls;
import echosign.api.clientv20.dto16.EmbeddedWidgetCreationResult;
import echosign.api.clientv20.dto16.EnableWidgetOptions;
import echosign.api.clientv20.dto16.EnableWidgetResult;
import echosign.api.clientv20.dto16.GetDocumentImageUrlsResult;
import echosign.api.clientv20.dto16.GetDocumentsResult;
import echosign.api.clientv20.dto16.GetGroupsInAccountResult;
import echosign.api.clientv20.dto16.GetSupportingDocumentsResult;
import echosign.api.clientv20.dto16.GetUsersInAccountResult;
import echosign.api.clientv20.dto16.GetUsersInGroupResult;
import echosign.api.clientv20.dto16.GetWidgetsForUserResult;
import echosign.api.clientv20.dto16.GroupInfo;
import echosign.api.clientv20.dto16.LibraryDocumentCreationResult;
import echosign.api.clientv20.dto16.PageImageUrl;
import echosign.api.clientv20.dto16.PageImageUrls;
import echosign.api.clientv20.dto16.SendDocumentInteractiveResult;
import echosign.api.clientv20.dto16.SendDocumentMegaSignResult;
import echosign.api.clientv20.dto16.SupportingDocument;
import echosign.api.clientv20.dto16.UrlWidgetCreationResult;
import echosign.api.clientv20.dto16.UserInfo;
import echosign.api.clientv20.dto16.WidgetItem;
import echosign.api.clientv20.dto17.ArrayOfDocumentLibraryItem;
import echosign.api.clientv20.dto17.ArrayOfDocumentListItem;
import echosign.api.clientv20.dto17.ArrayOfLibraryTemplateType;
import echosign.api.clientv20.dto17.DelegateSigningOptions;
import echosign.api.clientv20.dto17.DelegateSigningResult;
import echosign.api.clientv20.dto17.DocumentLibraryItem;
import echosign.api.clientv20.dto17.DocumentListItem;
import echosign.api.clientv20.dto17.GetDocumentsForUserResult;
import echosign.api.clientv20.dto17.GetLibraryDocumentsForUserResult;
import echosign.api.clientv20.dto17.GetMegaSignDocumentResult;
import echosign.api.clientv20.dto17.LibraryTemplateType;
import echosign.api.clientv20.dto17.NotifyDocumentVaultedResult;
import echosign.api.clientv20.dto17.RejectDocumentOptions;
import echosign.api.clientv20.dto17.RejectDocumentResult;
import echosign.api.clientv20.dto17.ReplaceSignerOptions;
import echosign.api.clientv20.dto17.ReplaceSignerResult;
import echosign.api.clientv20.dto17.VaultEventInfo;
import echosign.api.clientv20.dto18.ArrayOfRecipientSecurityOption;
import echosign.api.clientv20.dto18.AuthenticationMethod;
import echosign.api.clientv20.dto18.GetUserInfoOptions;
import echosign.api.clientv20.dto18.GetUserInfoResult;
import echosign.api.clientv20.dto18.RecipientSecurityOption;
import echosign.api.clientv20.dto18.SearchUserDocumentsOptions;
import echosign.api.clientv20.dto19.ArrayOfPhoneInfo;
import echosign.api.clientv20.dto19.EmbeddedViewOptions;
import echosign.api.clientv20.dto19.EmbeddedViewTarget;
import echosign.api.clientv20.dto19.GetEmbeddedViewResult;
import echosign.api.clientv20.dto19.PhoneInfo;
import echosign.api.clientv20.dto20.DocumentEventsForUserOptions;
import echosign.api.clientv20.dto20.DocumentHistoryEvent;
import echosign.api.clientv20.dto20.DocumentInfo;
import echosign.api.clientv20.dto20.DocumentInfoList;
import echosign.api.clientv20.dto20.GetDocumentEventsForUserResult;
import echosign.api.clientv20.dto7.AccountCreationInfo;
import echosign.api.clientv20.dto7.AccountType;
import echosign.api.clientv20.dto7.CreateAccountResult;
import echosign.api.clientv20.dto8.GetFormDataResult;
import echosign.api.clientv20.dto8.WidgetCompletionInfo;
import echosign.api.clientv20.dto8.WidgetCreationInfo;
import echosign.api.clientv20.dto8.WidgetPersonalizationInfo;
import echosign.api.clientv20.dto9.InitiateInteractiveSendDocumentResult;
import echosign.api.clientv20.dto9.LibraryDocumentCreationInfo;
import echosign.api.clientv20.dto9.LibrarySharingMode;
import echosign.api.clientv20.dto9.SigningUrl;
import echosign.api.clientv20.dto9.UserCredentials;
/**
* Author: dan
* Time: Aug 15, 2006 10:02:39 PM
*/
public class EchoSignDocumentServiceDemoExtended extends EchoSignDocumentServiceDemo
{
public static String createUser(String url, String apiKey, String email, String password) throws Exception
{
System.out.println("creating user for : " + email);
UserCreationInfo userInfo = new UserCreationInfo();
userInfo.setEmail(email);
userInfo.setCompany("WalrusTech");
userInfo.setFirstName("Foo");
userInfo.setLastName("Bar");
userInfo.setCountryCode("US");
userInfo.setOptIn(OptIn.NO);
userInfo.setPassword(password);
userInfo.setCustomField1("custom1");
userInfo.setCustomField2("custom2");
userInfo.setCustomField3("custom3");
String userKey = getService(url).createUser(apiKey, userInfo);
System.out.println("new user key = " + userKey);
return userKey;
}
public static void createAccount(String url, String apiKey, String email, String password) throws Exception
{
System.out.println("creating account for : " + email);
UserCreationInfo userInfo = new UserCreationInfo();
userInfo.setEmail(email);
userInfo.setCompany("WalrusTech");
userInfo.setFirstName("Foo");
userInfo.setLastName("Bar");
userInfo.setCountryCode("US");
userInfo.setOptIn(OptIn.NO);
userInfo.setPassword(password);
userInfo.setCustomField1("custom1");
userInfo.setCustomField2("custom2");
userInfo.setCustomField3("custom3");
AccountCreationInfo accountInfo = new AccountCreationInfo();
accountInfo.setCompanyName("WalrusTech");
accountInfo.setAccountType(AccountType.ENTERPRISE);
accountInfo.setNumSeats(25);
CreateAccountResult result = getService(url).createAccount(apiKey, userInfo, accountInfo);
System.out.println("Result: " + result.getErrorCode());
}
static void addMarkers(DocumentCreationInfo info)
{
Date now = new Date();
StringBuilder name = info.getName() == null ? new StringBuilder() : new StringBuilder(info.getName() +", ");
String dateMarker = makeDateMarker(now);
name.append(dateMarker);
info.setName(name.toString());
StringBuilder msg = info.getMessage() == null ? new StringBuilder() : new StringBuilder(info.getMessage());
msg.append('(');
msg.append(dateMarker);
msg.append(')');
info.setMessage(msg.toString());
}
static void addMarkers(FormCreationInfo info)
{
Date now = new Date();
StringBuilder name = info.getName() == null ? new StringBuilder() : new StringBuilder(info.getName() +", ");
name.append(makeDateMarker(now));
info.setName(name.toString());
}
static String makeDateMarker(Date date)
{
return String.format("%tk:%tM:%tS %tm/%td/%ty", date, date, date, date, date, date);
}
public static String sendDocumentMegaSign(String url, String apiKey, String fileName, String formFieldLayerTemplateKey, String[] emails) throws Exception
{
ArrayOfRecipientInfo recipientInfos = createArrayOfRecipientInfosAllSigners(emails);
DocumentCreationInfo documentInfo = createDocumentCreationInfoForEsign(recipientInfos, fileName, formFieldLayerTemplateKey, testPrefix + "sendDocumentMegaSign: ", testMessage);
SendDocumentMegaSignResult sendDocumentResult = getService(url).sendDocumentMegaSign(apiKey, null, documentInfo);
if (!sendDocumentResult.isSuccess())
{
System.out.println("sendDocumentMegaSign failed. Error code " + sendDocumentResult.getErrorCode() +
" Error Message " + sendDocumentResult.getErrorMessage());
return null;
}
System.out.println("Mega doc key " + sendDocumentResult.getDocumentKey().getDocumentKey());
ArrayOfDocumentKey documentKeys = sendDocumentResult.getDocumentKeyArray();
for (int i = 0; i < documentKeys.getDocumentKey().size(); i++)
System.out.println("Document key [" + i + "] " + documentKeys.getDocumentKey().get(i).getDocumentKey());
return sendDocumentResult.getDocumentKey().getDocumentKey();
}
public static Map<String,String> getUsersInAccount(String url, String apiKey) throws Exception
{
GetUsersInAccountResult result = getService(url).getUsersInAccount(apiKey);
System.out.println();
System.out.format("errorCode=%s, errorMessage=%s%n", result.getErrorCode().toString(), result.getErrorMessage());
ArrayOfUserInfo userInfos = result.getUserListForAccount();
if(userInfos == null)
{
System.out.println("Num users in account: 0");
return null;
}
Map<String,String> userMap = new HashMap<String,String>();
System.out.format("%-14s %-35s %-30s%n", "userKey", "email", "fullNameOrEmail");
System.out.format("-------------- ----------------------------------- ------------------------------ %n");
for(UserInfo ui : userInfos.getUserInfo())
{
userMap.put(ui.getEmail(), ui.getUserKey());
System.out.format("%-14s %-35s %-30s%n", ui.getUserKey(), ui.getEmail(), ui.getFullNameOrEmail());
}
System.out.println();
System.out.format("Num users in account: %d%n", userInfos.getUserInfo().size());
return userMap;
}
public static void getUserDocuments(String url, String apiKey, String email) throws Exception
{
UserCredentials userCredentials = new UserCredentials();
userCredentials.setEmail(email);
GetDocumentsForUserResult result = getService(url).getUserDocuments(apiKey, userCredentials);
System.out.println();
System.out.format("errorCode=%s, errorMessage=%s%n", result.getErrorCode().toString(), result.getErrorMessage());
ArrayOfDocumentListItem docItems = result.getDocumentListForUser();
if(docItems == null)
{
System.out.println("Num documents for user: 0");
return;
}
printDocumentListItems(docItems);
}
public static void getDocumentsForUser(String url, String apiKey, String userKey) throws Exception
{
GetDocumentsForUserResult result = getService(url).getDocumentsForUser(apiKey, userKey);
System.out.println();
System.out.format("errorCode=%s, errorMessage=%s%n", result.getErrorCode().toString(), result.getErrorMessage());
ArrayOfDocumentListItem docItems = result.getDocumentListForUser();
if(docItems == null)
{
System.out.println("Num documents for user: 0");
return;
}
printDocumentListItems(docItems);
}
public static void getMyDocuments(String url, String apiKey) throws Exception {
GetDocumentsForUserResult result = getService(url).getMyDocuments(apiKey);
System.out.println();
System.out.format("errorCode=%s, errorMessage=%s%n", result.getErrorCode().toString(), result.getErrorMessage());
ArrayOfDocumentListItem docItems = result.getDocumentListForUser();
if(docItems == null)
{
System.out.println("Num documents for me: 0");
return;
}
printDocumentListItems(docItems);
}
public static void getMegaSignDocument(String url, String apiKey, String documentKey) throws Exception
{
GetMegaSignDocumentResult result = getService(url).getMegaSignDocument(apiKey, documentKey);
System.out.println();
System.out.format("errorCode=%s, errorMessage=%s%n", result.getErrorCode().toString(), result.getErrorMessage());
ArrayOfDocumentListItem docItems = result.getDocuments();
if(docItems == null)
{
System.out.println("Num documents for user: 0");
return;
}
printDocumentListItems(docItems);
}
private static void printDocumentListItems(ArrayOfDocumentListItem docItems)
{
printDocumentListItemHeader();
for(DocumentListItem item : docItems.getDocumentListItem())
{
printDocumentListItem(item);
}
System.out.println();
System.out.format("Num documents for user: %d%n", docItems.getDocumentListItem().size());
}
private static void printDocumentListItem(DocumentListItem item)
{
DisplayUserInfo du = item.getDisplayUserInfo();
final String esign = item.isEsign() ? "Y" : "n";
final String megaSign = item.isMegaSign() ? "Y" : "n";
final String company = du.getCompany() == null ? "" : du.getCompany();
Date date = item.getDisplayDate().toGregorianCalendar().getTime();
System.out.format("%-77s %tm/%td/%tY %-24s %-2s %-2s %-20s %-20s %s%n",
item.getDocumentKey(), date, date, date, item.getUserDocumentStatus().toString(),
esign, megaSign, du.getFullNameOrEmail(), company, item.getName());
}
static void printDocumentListItemHeader()
{
System.out.format("%-77s %-10s %-24s %-2s %-2s %-20s %-20s %s%n",
"key", "date", "status", "e?", "m?", "user", "company", "name");
System.out.format("----------------------------------------------------------------------------- ");
System.out.format("---------- ");
System.out.format("------------------------ ");
System.out.format("-- ");
System.out.format("-- ");
System.out.format("-------------------- ");
System.out.format("-------------------- ");
System.out.format("-------------------- ");
System.out.println();
}
public static void getDocument(String url, String apiKey, String documentKey, String versionKey, String fileName) throws Exception
{
byte[] data = (documentKey != null) ? getService(url).getLatestDocument(apiKey, documentKey) : getService(url).getDocumentByVersion(apiKey, versionKey);
FileOutputStream stream = new FileOutputStream(new File(fileName));
try {
stream.write(data);
} finally {
stream.close();
}
}
public static void cancelDocument(String url, String apiKey, String documentKey) throws Exception
{
CancelDocumentResult result = getService(url).cancelDocument(apiKey, documentKey, "Cancelled by the sender", true);
System.out.println("cancelDocument result: " + result.getResult());
}
public static void sendReminder(String url, String apiKey, String documentKey) throws Exception
{
SendReminderResult result = getService(url).sendReminder(apiKey, documentKey, "Reminded by sample code");
System.out.println("sendReminder result: " + result.getResult());
if (result.getResult() == Result.REMINDER_SENT)
System.out.println("Reminder has been sent to: " + result.getRecipientEmail());
}
public static void documentUrl(String url, String apiKey, String key, boolean document) throws Exception
{
DocumentUrlResult documentUrlResult;
if (document)
{
documentUrlResult = getService(url).getLatestDocumentUrl(apiKey, key);
}
else
{
documentUrlResult = getService(url).getDocumentUrlByVersion(apiKey, key);
}
if (!documentUrlResult.isSuccess())
{
System.out.println("Document Url call failed with error code " + documentUrlResult.getErrorCode());
return;
}
System.out.println("Document URL: " + documentUrlResult.getUrl());
}
public static void imageList(String url, String apiKey, String key, boolean document) throws Exception
{
DocumentImageList documentImageList;
if (document)
{
documentImageList = getService(url).getLatestImages(apiKey, key);
}
else
{
documentImageList = getService(url).getImagesByVersion(apiKey, key);
}
if (!documentImageList.isSuccess())
{
System.out.println("Image List call failed with error code " + documentImageList.getErrorCode());
return;
}
ArrayOfDocumentPageImages documentPageImages = documentImageList.getPageImages();
if (documentPageImages.getDocumentPageImages().size() == 0)
{
System.out.println("No images");
return;
}
for (int i = 0; i < documentPageImages.getDocumentPageImages().size(); i++)
{
DocumentPageImages documentPageImage = documentPageImages.getDocumentPageImages().get(i);
System.out.println("Document page " + (i + 1));
System.out.println("\tsmall image URL: " + documentPageImage.getSmallImageUrl());
System.out.println("\tmedium image URL: " + documentPageImage.getMediumImageUrl());
System.out.println("\tlarge image URL: " + documentPageImage.getLargeImageUrl());
}
}
public static void remove(String url, String apiKey, String key) throws Exception
{
RemoveDocumentResult removeDocumentResult = getService(url).removeDocument(apiKey, key);
if (removeDocumentResult.isSuccess())
{
System.out.println("Document Successfully removed");
}
else
{
System.out.print("Error in deleting document: " + removeDocumentResult.getErrorCode());
if (removeDocumentResult.getErrorMessage() != null)
System.out.println(" " + removeDocumentResult.getErrorMessage());
else
System.out.println();
}
}
public static void getFormData(String url, String apiKey, String key) throws Exception
{
GetFormDataResult getFormDataResult = getService(url).getFormData(apiKey, key);
if (getFormDataResult.isSuccess())
{
System.out.println("Form Data CSV Values:");
System.out.println(getFormDataResult.getFormDataCsv());
}
else
{
System.out.print("Error getting form data: " + getFormDataResult.getErrorCode());
if (getFormDataResult.getErrorMessage() != null)
System.out.println(" " + getFormDataResult.getErrorMessage());
else
System.out.println();
}
}
public static void verifyUser(String url, String apiKey, String email, String password) throws Exception
{
UserVerificationInfo userVerificationInfo = getService(url).verifyUser(apiKey, email, password);
System.out.println("User status is " + userVerificationInfo.getUserVerificationStatus());
}
public static void createEmbeddedWidget(String url, String apiKey, String fileName) throws Exception
{
WidgetCreationInfo widgetInfo = new WidgetCreationInfo();
widgetInfo.setName("Test embedded widget " + new Date());
widgetInfo.setFileInfos(createArrayOfFileInfos(new String[]{fileName}));
EmbeddedWidgetCreationResult result = getService(url).createEmbeddedWidget(apiKey, null, widgetInfo);
if (result.isSuccess())
System.out.println("Embeddable Javascript: " + result.getJavascript());
else
System.out.println("Return code: " + result.getErrorCode() + " " + ((result.getErrorMessage() != null) ? result.getErrorMessage() : ""));
}
public static String createPersonalEmbeddedWidget(String url, String apiKey, String fileName, String email) throws Exception
{
WidgetCreationInfo widgetInfo = new WidgetCreationInfo();
widgetInfo.setName("Test embedded widget " + new Date());
widgetInfo.setFileInfos(createArrayOfFileInfos(new String[]{fileName}));
WidgetPersonalizationInfo personalInfo = new WidgetPersonalizationInfo();
personalInfo.setEmail(email);
personalInfo.setComment("API testing");
EmbeddedWidgetCreationResult result = getService(url).createPersonalEmbeddedWidget(apiKey, null, widgetInfo, personalInfo);
if (result.isSuccess()) {
System.out.println("Embeddable Javascript: " + result.getJavascript());
return result.getJavascript();
}
else {
System.out.println("Return code: " + result.getErrorCode() + " " + ((result.getErrorMessage() != null) ? result.getErrorMessage() : ""));
return null;
}
}
public static void personalizeEmbeddedWidget(String url, String apiKey, String javascript, String email) throws Exception
{
WidgetPersonalizationInfo personalInfo = new WidgetPersonalizationInfo();
personalInfo.setEmail(email);
personalInfo.setComment("API testing");
EmbeddedWidgetCreationResult result = getService(url).personalizeEmbeddedWidget(apiKey, javascript, personalInfo);
if (result.isSuccess())
System.out.println("Embeddable Javascript: " + result.getJavascript());
else
System.out.println("Return code: " + result.getErrorCode() + " " + ((result.getErrorMessage() != null) ? result.getErrorMessage() : ""));
}
public static String createUrlWidget(String url, String apiKey, String fileName) throws Exception
{
return createUrlWidget(url, apiKey, fileName, null, null, true, 0);
}
public static String createUrlWidget(String url, String apiKey, String fileName, String formFieldLayerTemplateKey, String completionUrl, boolean deframe, int delay) throws Exception
{
WidgetCompletionInfo completionInfo = null;
if (completionUrl != null) {
completionInfo = new WidgetCompletionInfo();
completionInfo.setUrl(completionUrl);
completionInfo.setDeframe(deframe);
completionInfo.setDelay(delay);
}
WidgetCreationInfo widgetInfo = new WidgetCreationInfo();
widgetInfo.setName("Test url widget " + new Date());
widgetInfo.setFileInfos(createArrayOfFileInfos(new String[]{fileName}));
widgetInfo.setWidgetCompletionInfo(completionInfo);
ArrayOfFileInfo formFieldLayerTemplates = (formFieldLayerTemplateKey != null) ? createFormFieldLayerTemplates(new String[]{formFieldLayerTemplateKey}) : null;
widgetInfo.setFormFieldLayerTemplates(formFieldLayerTemplates);
UrlWidgetCreationResult result = getService(url).createUrlWidget(apiKey, null, widgetInfo);
if (result.isSuccess())
System.out.println("URL: " + result.getUrl());
else
System.out.println("Return code: " + result.getErrorCode() + " " + ((result.getErrorMessage() != null) ? result.getErrorMessage() : ""));
return result.getDocumentKey();
}
public static String createPersonalUrlWidget(String url, String apiKey, String fileName, String email) throws Exception
{
WidgetCreationInfo widgetInfo = new WidgetCreationInfo();
widgetInfo.setName("Test url widget " + new Date());
widgetInfo.setFileInfos(createArrayOfFileInfos(new String[]{fileName}));
WidgetPersonalizationInfo personalInfo = new WidgetPersonalizationInfo();
personalInfo.setEmail(email);
personalInfo.setComment("API testing");
UrlWidgetCreationResult result = getService(url).createPersonalUrlWidget(apiKey, null, widgetInfo, personalInfo);
if (result.isSuccess()) {
System.out.println("URL: " + result.getUrl());
return result.getUrl();
}
else {
System.out.println("Return code: " + result.getErrorCode() + " " + ((result.getErrorMessage() != null) ? result.getErrorMessage() : ""));
return null;
}
}
public static void personalizeUrlWidget(String url, String apiKey, String widgetUrl, String email) throws Exception
{
WidgetPersonalizationInfo personalInfo = new WidgetPersonalizationInfo();
personalInfo.setEmail(email);
personalInfo.setComment("API testing");
UrlWidgetCreationResult result = getService(url).personalizeUrlWidget(apiKey, widgetUrl, personalInfo);
if (result.isSuccess())
System.out.println("URL: " + result.getUrl());
else
System.out.println("Return code: " + result.getErrorCode() + " " + ((result.getErrorMessage() != null) ? result.getErrorMessage() : ""));
}
public static void disableWidget(String url, String apiKey, String documentKey, String redirectUrl, String message) throws Exception
{
DisableWidgetOptions options = new DisableWidgetOptions();
options.setRedirectUrl(redirectUrl);
options.setMessage(message);
DisableWidgetResult result = getService(url).disableWidget(apiKey, documentKey, options);
System.out.println("Return code: " + result.getResultCode() + " " + ((result.getErrorMessage() != null) ? result.getErrorMessage() : ""));
}
public static void enableWidget(String url, String apiKey, String documentKey) throws Exception
{
EnableWidgetOptions options = new EnableWidgetOptions();
EnableWidgetResult result = getService(url).enableWidget(apiKey, documentKey, options);
System.out.println("Return code: " + result.getResultCode() + " " + ((result.getErrorMessage() != null) ? result.getErrorMessage() : ""));
}
public static void getWidgets(String url, String apiKey, String email) throws Exception
{
UserCredentials userCredentials = new UserCredentials();
userCredentials.setEmail(email);
GetWidgetsForUserResult result = getService(url).getWidgetsForUser(apiKey, userCredentials);
System.out.println();
System.out.format("errorCode=%s, errorMessage=%s%n", result.getErrorCode().toString(), result.getErrorMessage());
ArrayOfWidgetItem widgetItems = result.getWidgets();
if(widgetItems == null)
{
System.out.println("Num widgets for user: 0");
return;
}
printWidgetListItems(widgetItems);
}
public static void getMyWidgets(String url, String apiKey) throws Exception
{
GetWidgetsForUserResult result = getService(url).getMyWidgets(apiKey);
System.out.println();
System.out.format("errorCode=%s, errorMessage=%s%n", result.getErrorCode().toString(), result.getErrorMessage());
ArrayOfWidgetItem widgetItems = result.getWidgets();
if(widgetItems == null)
{
System.out.println("Num widgets for me: 0");
return;
}
printWidgetListItems(widgetItems);
}
private static void printWidgetListItems(ArrayOfWidgetItem widgetItems)
{
printWidgetListItemHeader();
for(WidgetItem item : widgetItems.getWidgetItem())
{
printWidgetItem(item);
}
System.out.println();
System.out.format("Num widgets for user: %d%n", widgetItems.getWidgetItem().size());
}
static void printWidgetListItemHeader()
{
System.out.format("%-77s %-10s %-8s %-2s %s%n",
"key", "date", "status", "e?", "name");
System.out.format("----------------------------------------------------------------------------- ");
System.out.format("---------- ");
System.out.format("-------- ");
System.out.format("-- ");
System.out.format("-------------------- ");
System.out.println();
}
private static void printWidgetItem(WidgetItem item)
{
Date date = item.getModifiedDate().toGregorianCalendar().getTime();
String embedded = (item.getJavascript() != null) ? "Y" : "N";
//we probably don't want to print out the js snippet
System.out.format("%-77s %tm/%td/%tY %-8s %-2s %s%n", item.getDocumentKey(), date, date, date, item.getReusableDocumentStatus(), embedded, item.getName());
}
public static void initiateInteractiveSend(String url, String apiKey, String fileName, String recipient) throws Exception
{
ArrayOfRecipientInfo recipients = createArrayOfRecipientInfosAllSigners(new String[]{recipient});
DocumentCreationInfo documentInfo = createDocumentCreationInfoForEsign(recipients, fileName, null, "Test from SOAP:", testMessage);
InitiateInteractiveSendDocumentResult result = getService(url).initiateInteractiveSendDocument(apiKey, null, documentInfo, false, false);
System.out.println("Interactive send URL is: " + result.getSendDocumentURL());
}
public static void sendDocumentInteractive(String url, String apiKey, String fileName, String recipient) throws Exception
{
ArrayOfRecipientInfo recipients = createArrayOfRecipientInfosAllSigners(new String[]{recipient});
DocumentCreationInfo documentInfo = createDocumentCreationInfoForEsign(recipients, fileName, null, testPrefix, testMessage);
SendDocumentInteractiveOptions sendDocumentInteractiveOptions = new SendDocumentInteractiveOptions();
sendDocumentInteractiveOptions.setAutoLoginUser(true);
sendDocumentInteractiveOptions.setNoChrome(false);
sendDocumentInteractiveOptions.setAuthoringRequested(true);
SendDocumentInteractiveResult result = getService(url).sendDocumentInteractive(apiKey, null, documentInfo, sendDocumentInteractiveOptions);
System.out.println("Send Document Interactive URL is: " + result.getUrl());
}
public static void createLibraryDocumentInteractive(String url, String apiKey, String fileName) throws Exception
{
ArrayOfFileInfo fileInfos = createArrayOfFileInfos(new String[]{fileName});
LibraryDocumentCreationInfo libraryDocument = new LibraryDocumentCreationInfo();
libraryDocument.setName(testPrefix + fileName);
libraryDocument.setFileInfos(fileInfos);
libraryDocument.setSignatureFlow(SignatureFlow.SENDER_SIGNATURE_NOT_REQUIRED);
libraryDocument.setSignatureType(SignatureType.ESIGN);
libraryDocument.setLibrarySharingMode(LibrarySharingMode.USER);
SendDocumentInteractiveOptions sendDocumentInteractiveOptions = new SendDocumentInteractiveOptions();
sendDocumentInteractiveOptions.setAutoLoginUser(true);
sendDocumentInteractiveOptions.setNoChrome(false);
sendDocumentInteractiveOptions.setAuthoringRequested(true);
SendDocumentInteractiveResult result = getService(url).createLibraryDocumentInteractive(apiKey, null, libraryDocument, sendDocumentInteractiveOptions);
System.out.println("Send Document Interactive URL is: " + result.getUrl());
}
public static String createLibraryDocument(String url, String apiKey, String fileName) throws Exception
{
ArrayOfFileInfo fileInfos = createArrayOfFileInfos(new String[]{fileName});
LibraryDocumentCreationInfo libraryDocument = new LibraryDocumentCreationInfo();
libraryDocument.setName(testPrefix + fileName);
libraryDocument.setFileInfos(fileInfos);
libraryDocument.setSignatureFlow(SignatureFlow.SENDER_SIGNATURE_NOT_REQUIRED);
libraryDocument.setSignatureType(SignatureType.ESIGN);
libraryDocument.setLibrarySharingMode(LibrarySharingMode.USER);
LibraryDocumentCreationResult result = getService(url).createLibraryDocument(apiKey, null, libraryDocument);
System.out.println("DocumentKey is: " + result.getDocumentKey());
return result.getDocumentKey();
}
public static void getLibraryDocuments(String url, String apiKey, String email) throws Exception
{
UserCredentials userCredentials = new UserCredentials();
userCredentials.setEmail(email);
GetLibraryDocumentsForUserResult result = getService(url).getLibraryDocumentsForUser(apiKey, userCredentials);
System.out.println();
System.out.format("errorCode=%s, errorMessage=%s%n", result.getErrorCode().toString(), result.getErrorMessage());
ArrayOfDocumentLibraryItem docItems = result.getLibraryDocuments();
if(docItems == null)
{
System.out.println("Num library documents for user: 0");
return;
}
printDocumentLibraryListItems(docItems);
}
public static void getMyLibraryDocuments(String url, String apiKey) throws Exception
{
GetLibraryDocumentsForUserResult result = getService(url).getMyLibraryDocuments(apiKey);
System.out.println();
System.out.format("errorCode=%s, errorMessage=%s%n", result.getErrorCode().toString(), result.getErrorMessage());
ArrayOfDocumentLibraryItem docItems = result.getLibraryDocuments();
if(docItems == null)
{
System.out.println("Num library documents for me: 0");
return;
}
printDocumentLibraryListItems(docItems);
}
private static void printDocumentLibraryListItems(ArrayOfDocumentLibraryItem docItems)
{
printDocumentLibraryListItemHeader();
for(DocumentLibraryItem item : docItems.getDocumentLibraryItem())
{
printDocumentLibraryItem(item);
}
System.out.println();
System.out.format("Num library documents for user: %d%n", docItems.getDocumentLibraryItem().size());
}
static void printDocumentLibraryListItemHeader()
{
System.out.format("%-77s %-10s %-8s %-7s %s%n",
"key", "date", "scope", "types", "name");
System.out.format("----------------------------------------------------------------------------- ");
System.out.format("---------- ");
System.out.format("-------- ");
System.out.format("------- ");
System.out.format("-------------------- ");
System.out.println();
}
private static void printDocumentLibraryItem(DocumentLibraryItem item)
{
Date date = item.getModifiedDate().toGregorianCalendar().getTime();
String types = null;
if (item.getLibraryTemplateTypes().getLibraryTemplateType().contains(LibraryTemplateType.DOCUMENT))
types = "DOC";
if (item.getLibraryTemplateTypes().getLibraryTemplateType().contains(LibraryTemplateType.FORM_FIELD_LAYER))
types = (types == null) ? "FFL" : types + "/FFL";
System.out.format("%-77s %tm/%td/%tY %-8s %-7s %s%n", item.getDocumentKey(), date, date, date, item.getScope(), types, item.getName());
}
public static void getAuditTrail(String url, String apiKey, String documentKey, String filename) throws Exception
{
byte[] data = getService(url).getAuditTrail(apiKey, documentKey).getAuditTrailPdf();
FileOutputStream stream = getFileStream(filename);
try {
stream.write(data);
} finally {
stream.close();
}
}
public static void getSigningUrl(String url, String apiKey, String documentKey) throws Exception
{
SigningUrlResult result = getService(url).getSigningUrl(apiKey, documentKey);
for (SigningUrl signingUrl : result.getSigningUrls().getSigningUrl())
System.out.println(signingUrl.getEmail() + ": " + signingUrl.getEsignUrl());
}
public static String sendDocumentWithExternalId(String url, String apiKey, String fileName, String recipient, String externalId) throws Exception
{
// If no External ID then just call the parent's sendDocument method
if (externalId == null) {
return EchoSignDocumentServiceDemo.sendDocument(url, apiKey, fileName, recipient);
}
ArrayOfRecipientInfo recipients = createArrayOfRecipientInfosAllSigners(new String[]{recipient});
DocumentCreationInfo documentInfo = createDocumentCreationInfoForEsign(recipients, fileName, null, "Test from SOAP with External ID: ", "This is externally neat.");
ExternalId extId = new ExternalId();
extId.setId(externalId);
extId.setNamespace("API_OTHER");
documentInfo.setExternalId(extId);
ArrayOfDocumentKey documentKeys = getService(url).sendDocument(apiKey, null, documentInfo);
System.out.println("Document key is: " + documentKeys.getDocumentKey().get(0).getDocumentKey());
return documentKeys.getDocumentKey().get(0).getDocumentKey();
}
public static void getDocumentInfosByExternalId(String url, String apiKey, String email, String password,
String externalId) throws Exception {
ExternalId extId = null;
if (externalId != null) {
extId = new ExternalId();
extId.setId(externalId);
extId.setNamespace("API_OTHER");
}
DocumentInfoList infos = getService(url).getDocumentInfosByExternalId(apiKey, email, password, extId);
if (!infos.isSuccess()) {
System.out.println("Return code: " + infos.getErrorCode() + " " + ((infos.getErrorMessage() != null) ? infos.getErrorMessage() : ""));
return;
}
System.out.println(infos.getDocumentInfos().getDocumentInfo().size() + " documents match the given External ID");
String versionKey;
for (DocumentInfo info : infos.getDocumentInfos().getDocumentInfo()) {
System.out.println("Document is in status: " + info.getStatus());
System.out.println("Document history: ");
for (DocumentHistoryEvent event: info.getEvents().getDocumentHistoryEvent()) {
versionKey = event.getDocumentVersionKey();
System.out.println("\t" + event.getDescription() + " on " + event.getDate() +
(versionKey == null ? "" : " (versionKey: " + versionKey + ")"));
}
System.out.println("Latest versionKey: " + info.getLatestDocumentKey());
}
}
public static void getDocuments(String url, String apiKey, String documentKey, String fileDirPath,
String versionKey, String userEmail, boolean combine) throws Exception
{
GetDocumentsOptions options = new GetDocumentsOptions();
options.setVersionKey(versionKey);
options.setParticipantEmail(userEmail);
options.setCombine(combine);
GetDocumentsResult result = getService(url).getDocuments(apiKey, documentKey, options);
if (result.isSuccess()) {
List<DocumentContent> docContentList = result.getDocuments().getDocumentContent();
for (int docNdx=0; docNdx<docContentList.size(); ++docNdx) {
DocumentContent docContent = docContentList.get(docNdx);
System.out.println("Document Name=" + docContent.getName() + " Type=" + docContent.getMimetype() + " Size=" + docContent.getBytes().length);
FileOutputStream stream = new FileOutputStream(new File(createDocumentFileName(fileDirPath, docNdx, docContentList.size())));
try {
stream.write(docContent.getBytes());
} finally {
stream.close();
}
}
} else
System.out.println("getDocuments call failed with error code " + result.getErrorCode() +
((result.getErrorMessage() != null) ? " (" + result.getErrorMessage() + ")" : ""));
}
private static String createDocumentFileName(String fileDirPath, int docNdx, int docNum)
{
String fileName = new File(new File(fileDirPath), "foo.pdf").getAbsolutePath();
if (docNum > 1 )
return fileName.replaceFirst(Matcher.quoteReplacement(".pdf"), "_" + docNdx + ".pdf");
else
return fileName;
}
public static void getDocumentUrls(String url, String apiKey, String documentKey,
String versionKey, String userEmail, boolean combine) throws Exception
{
GetDocumentUrlsOptions options = new GetDocumentUrlsOptions();
options.setVersionKey(versionKey);
options.setParticipantEmail(userEmail);
options.setCombine(combine);
options.setVersionKey(versionKey);
GetDocumentUrlsResult result = getService(url).getDocumentUrls(apiKey, documentKey, options);
if (result.isSuccess()) {
for (DocumentUrl docUrl : result.getUrls().getDocumentUrl() )
System.out.println("Document Name= " + docUrl.getName() + " URL=" + docUrl.getUrl());
} else
System.out.println("getDocumentUrls call failed with error code " + result.getErrorCode() +
((result.getErrorMessage() != null) ? " (" + result.getErrorMessage() + ")" : ""));
}
public static void getDocumentImageUrls(String url, String apiKey, String documentKey,
String versionKey, String userEmail, boolean combine) throws Exception
{
GetDocumentImageUrlsOptions options = new GetDocumentImageUrlsOptions();
options.setVersionKey(versionKey);
options.setParticipantEmail(userEmail);
options.setVersionKey(versionKey);
GetDocumentImageUrlsResult result = getService(url).getDocumentImageUrls(apiKey, documentKey, options);
if (result.isSuccess()) {
for (DocumentImageUrls docImageUrls : result.getImageUrls().getDocumentImageUrls()) {
List<PageImageUrls> pageImageUrlsList = docImageUrls.getPages().getPageImageUrls();
System.out.println("Document Name= " + docImageUrls.getName() + " Pages=" + pageImageUrlsList.size());
for (int pageNdx=0; pageNdx<pageImageUrlsList.size(); ++pageNdx) {
List<PageImageUrl> imageUrlList = pageImageUrlsList.get(pageNdx).getImages().getPageImageUrl();
System.out.println(" Page= " + (++pageNdx) + " Images=" + imageUrlList.size());
for (PageImageUrl imageUrl : imageUrlList)
System.out.println(" Width= " + imageUrl.getWidth() + " Url=" + imageUrl.getUrl());
}
}
} else
System.out.println("getDocumentUrls call failed with error code " + result.getErrorCode() +
((result.getErrorMessage() != null) ? " (" + result.getErrorMessage() + ")" : ""));
}
public static void getSupportingDocuments(String url, String apiKey, String documentKey, String baseFilePath) throws Exception
{
GetSupportingDocumentsOptions options = new GetSupportingDocumentsOptions();
options.setDocumentFormatRequested(SupportingDocumentContentFormat.CONVERTED_PDF);
GetSupportingDocumentsResult result = getService(url).getSupportingDocuments(apiKey, documentKey, null, options);
if (!result.isSuccess()) {
System.out.println("getSupportingDocuments call failed with error code " + result.getErrorCode() +
((result.getErrorMessage() != null) ? " (" + result.getErrorMessage() + ")" : ""));
return;
}
List<SupportingDocument> docList = result.getSupportingDocuments().getSupportingDocument();
if (docList.isEmpty()) {
return;
}
for (SupportingDocument doc : docList) {
System.out.println("SupportingDocumentKey=" + doc.getSupportingDocumentKey() + ", fieldName=" + doc.getFieldName() + ", displayLabel=" + doc.getDisplayLabel() + ", mimeType=" + doc.getMimeType());
File dest = new File(baseFilePath + "_" + doc.getFieldName() + ".pdf");
FileOutputStream stream = new FileOutputStream(dest);
System.out.println("Saved to: " + dest.getAbsolutePath());
try {
stream.write(doc.getContent());
} finally {
stream.close();
}
}
}
public static String createGroup(String url, String apiKey, String name) throws Exception
{
System.out.println("creating group : " + name);
CreateGroupResult result = getService(url).createGroup(apiKey, name);
if (result.isSuccess()) {
String groupKey = result.getGroupKey();
System.out.println("new group key = " + groupKey);
return groupKey;
} else {
System.out.println("createGroup call failed with error code " + result.getErrorCode() +
((result.getErrorMessage() != null) ? " (" + result.getErrorMessage() + ")" : ""));
return null;
}
}
public static void deleteGroup(String url, String apiKey, String groupKey) throws Exception
{
System.out.println("deleting group : " + groupKey);
DeleteGroupResult result = getService(url).deleteGroup(apiKey, groupKey);
if (result.isSuccess()) {
System.out.println("deleted group " + groupKey);
} else {
System.out.println("deleteGroup call failed with error code " + result.getErrorCode() +
((result.getErrorMessage() != null) ? " (" + result.getErrorMessage() + ")" : ""));
}
}
public static void renameGroup(String url, String apiKey, String groupKey, String name) throws Exception
{
System.out.println("renaming group " + groupKey + ": " + name);
RenameGroupResult result = getService(url).renameGroup(apiKey, groupKey, name);
if (result.isSuccess()) {
System.out.println("renamed group " + groupKey + " to " + name);
} else {
System.out.println("renameGroup call failed with error code " + result.getErrorCode() +
((result.getErrorMessage() != null) ? " (" + result.getErrorMessage() + ")" : ""));
}
}
public static String getGroupsInAccount(String url, String apiKey) throws Exception
{
System.out.println("retrieving goups in account");
GetGroupsInAccountResult result = getService(url).getGroupsInAccount(apiKey);
if (result.isSuccess()) {
String defaultGroupKey = null;
System.out.println("retrieved groups:");
for (GroupInfo groupInfo : result.getGroupList().getGroupInfo()) {
if (groupInfo.getGroupName().equals("Default Group"))
defaultGroupKey = groupInfo.getGroupKey();
System.out.println(" key: " + groupInfo.getGroupKey() + " name: " + groupInfo.getGroupName());
}
return defaultGroupKey;
} else {
System.out.println("getGroupsInAccount call failed with error code " + result.getErrorCode() +
((result.getErrorMessage() != null) ? " (" + result.getErrorMessage() + ")" : ""));
return null;
}
}
public static List<String> getUsersInGroup(String url, String apiKey, String groupKey) throws Exception
{
System.out.println("retrieving users in group: " + groupKey);
GetUsersInGroupResult result = getService(url).getUsersInGroup(apiKey, groupKey);
if (result.isSuccess()) {
List<String> userEmails = new ArrayList<String>();
System.out.println("retrieved users:");
for (UserInfo userInfo : result.getUserListForGroup().getUserInfo()) {
userEmails.add(userInfo.getEmail());
System.out.println(" key: " + userInfo.getUserKey() + " email: " + userInfo.getEmail());
}
return userEmails;
} else {
System.out.println("getUsersInGroup call failed with error code " + result.getErrorCode() +
((result.getErrorMessage() != null) ? " (" + result.getErrorMessage() + ")" : ""));
return null;
}
}
public static void moveUsersToGroup(String url, String apiKey, String groupKey, String emails) throws Exception
{
System.out.println("retrieving users in group: " + groupKey);
ArrayOfString emailArray = new ArrayOfString();
for (String email : emails.split(","))
emailArray.getString().add(email);
UsersToMoveInfo usersToMoveInfo = new UsersToMoveInfo();
usersToMoveInfo.setUserEmails(emailArray);
MoveUsersToGroupResult result = getService(url).moveUsersToGroup(apiKey, groupKey, usersToMoveInfo);
if (result.isSuccess()) {
System.out.println("moved users");
} else {
System.out.println("moveUsersToGroup call failed with error code " + result.getErrorCode() +
((result.getErrorMessage() != null) ? " (" + result.getErrorMessage() + ")" : ""));
}
}
public static String createLibraryTemplate(String url, String apiKey, String filename, LibraryTemplateType type) throws Exception
{
File templateFile = (filename != null) ? new File(filename) : getTestPdfFile("testtemplate.pdf");
ArrayOfFileInfo fileInfos = createArrayOfFileInfos(new String[]{templateFile.getAbsolutePath()});
ArrayOfLibraryTemplateType libraryTemplateTypes = new ArrayOfLibraryTemplateType();
libraryTemplateTypes.getLibraryTemplateType().add(type);
LibraryDocumentCreationInfo libraryDocument = new LibraryDocumentCreationInfo();
libraryDocument.setName(testPrefix + templateFile.getName());
libraryDocument.setFileInfos(fileInfos);
libraryDocument.setSignatureFlow(SignatureFlow.SENDER_SIGNATURE_NOT_REQUIRED);
libraryDocument.setSignatureType(SignatureType.ESIGN);
libraryDocument.setLibrarySharingMode(LibrarySharingMode.USER);
libraryDocument.setLibraryTemplateTypes(libraryTemplateTypes);
LibraryDocumentCreationResult result = getService(url).createLibraryDocument(apiKey, null, libraryDocument);
System.out.println("Library template key is: " + result.getDocumentKey());
return result.getDocumentKey();
}
public static String sendDocumentWithFormFieldLayerTemplate(String url, String apiKey, String filename, String formFieldLayerTemplateKey, String recipient) throws Exception
{
ArrayOfRecipientInfo recipients = createArrayOfRecipientInfosAllSigners(new String[]{recipient});
DocumentCreationInfo documentInfo = createDocumentCreationInfoForEsign(recipients, filename, formFieldLayerTemplateKey, testPrefix, testMessage);
ArrayOfDocumentKey documentKeys = getService(url).sendDocument(apiKey, null, documentInfo);
System.out.println("Document key is: " + documentKeys.getDocumentKey().get(0).getDocumentKey());
return documentKeys.getDocumentKey().get(0).getDocumentKey();
}
public static void rejectDocument(String url, String apiKey, String documentKey, String comment) throws Exception
{
RejectDocumentOptions options = new RejectDocumentOptions();
options.setComment(comment);
RejectDocumentResult result = getService(url).rejectDocument(apiKey, null, documentKey, options);
System.out.format("errorCode=%s, errorMessage=%s%n", result.getErrorCode().toString(), result.getErrorMessage());
}
public static void replaceSigner(String url, String apiKey, String documentKey, String oldEmail, String newEmail, String comment) throws Exception
{
ReplaceSignerOptions options = new ReplaceSignerOptions();
options.setOriginalSignerEmail(oldEmail);
options.setNewSignerEmail(newEmail);
options.setMessage(comment);
ReplaceSignerResult result = getService(url).replaceSigner(apiKey, null, documentKey, options);
System.out.println("replaceSigner result: " + result.getErrorCode());
}
public static void delegateSigning(String url, String apiKey, String documentKey, String newEmail, String comment) throws Exception
{
DelegateSigningOptions options = new DelegateSigningOptions();
options.setNewSignerEmail(newEmail);
options.setMessage(comment);
DelegateSigningResult result = getService(url).delegateSigning(apiKey, null, documentKey, options);
System.out.println("delegateSigning result: " + result.getErrorCode());
}
public static void getUserInfo(String url, String apiKey, String email) throws Exception
{
GetUserInfoOptions options = new GetUserInfoOptions();
options.setEmail(email);
GetUserInfoResult result = getService(url).getUserInfo(apiKey, options);
System.out.println("getUserInfo result: " + result.getErrorCode());
}
public static void searchUserDocuments(String url, String apiKey, String query) throws Exception
{
SearchUserDocumentsOptions options = new SearchUserDocumentsOptions();
options.setQuery(query);
GetDocumentsForUserResult result = getService(url).searchUserDocuments(apiKey, null, options);
System.out.println("searchUserDocuments result: " + result.getErrorCode());
}
public static void searchUserDocumentsByName(String url, String apiKey, String name) throws Exception
{
SearchUserDocumentsOptions options = new SearchUserDocumentsOptions();
options.setName(name);
GetDocumentsForUserResult result = getService(url).searchUserDocuments(apiKey, null, options);
System.out.println("searchUserDocumentsByName result: " + result.getErrorCode());
}
public static void getDocumentEventsForUser(String url, String apiKey) throws Exception
{
DocumentEventsForUserOptions options = new DocumentEventsForUserOptions();
Calendar cal = Calendar.getInstance();
options.setEndDate(newXMLGregorianCalendar(cal.getTime()));
cal.add(Calendar.WEEK_OF_YEAR, -1);
options.setStartDate(newXMLGregorianCalendar(cal.getTime()));
GetDocumentEventsForUserResult result = getService(url).getDocumentEventsForUser(apiKey, null, options);
System.out.println("getDocumentEventsForUser result: " + result.getErrorCode());
}
private static DatatypeFactory datatypeFactory;
private static DatatypeFactory getDatatypeFactory() throws Exception {
if (datatypeFactory == null)
datatypeFactory = DatatypeFactory.newInstance();
return datatypeFactory;
}
private static XMLGregorianCalendar newXMLGregorianCalendar(Date date) throws Exception {
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date);
return getDatatypeFactory().newXMLGregorianCalendar(cal);
}
public static void getEmbeddedView(String url, String accessToken) throws Exception
{
EmbeddedViewOptions options = new EmbeddedViewOptions();
options.setEmbeddedViewTarget(EmbeddedViewTarget.USER_PROFILE);
GetEmbeddedViewResult result = getService(url).getEmbeddedView(accessToken, null, options);
System.out.println("getEmbeddedView URL: " + result.getUrl());
}
private static ArrayOfRecipientSecurityOption newArrayOfRecipientSecurityOption(String password) {
return newArrayOfRecipientSecurityOption(newPasswordRecipientSecurityOption(password));
}
private static ArrayOfRecipientSecurityOption newArrayOfRecipientSecurityOption(String countryCode, String phone) {
return newArrayOfRecipientSecurityOption(newPhoneRecipientSecurityOption(countryCode, phone));
}
private static RecipientSecurityOption newPasswordRecipientSecurityOption(String password) {
RecipientSecurityOption securityOptions = new RecipientSecurityOption();
securityOptions.setPassword(password);
securityOptions.setAuthenticationMethod(AuthenticationMethod.PASSWORD);
return securityOptions;
}
private static RecipientSecurityOption newPhoneRecipientSecurityOption(String countryCode, String phone) {
PhoneInfo phoneInfo = new PhoneInfo();
phoneInfo.setCountryCode(countryCode);
phoneInfo.setPhone(phone);
ArrayOfPhoneInfo phoneInfos = new ArrayOfPhoneInfo();
phoneInfos.getPhoneInfo().add(phoneInfo);
RecipientSecurityOption securityOptions = new RecipientSecurityOption();
securityOptions.setPhoneInfos(phoneInfos);
securityOptions.setAuthenticationMethod(AuthenticationMethod.PHONE);
return securityOptions;
}
private static ArrayOfRecipientSecurityOption newArrayOfRecipientSecurityOption(RecipientSecurityOption securityOptions) {
ArrayOfRecipientSecurityOption recipientSecurityOptions = new ArrayOfRecipientSecurityOption();
recipientSecurityOptions.getRecipientSecurityOption().add(securityOptions);
return recipientSecurityOptions;
}
public static String sendDocumentWithRecipientSecurityOptions(String url, String apiKey, String filename, String recipient1, String recipient1Password,
String recipient2, String recipient2Password) throws Exception
{
ArrayOfRecipientInfo recipients = createArrayOfRecipientInfosAllSigners(new String[]{recipient1, recipient2});
ArrayOfRecipientSecurityOption recipient1SecurityOptions = newArrayOfRecipientSecurityOption(recipient1Password);
ArrayOfRecipientSecurityOption recipient2SecurityOptions = newArrayOfRecipientSecurityOption(recipient2Password);
recipients.getRecipientInfo().get(0).setSecurityOptions(recipient1SecurityOptions);
recipients.getRecipientInfo().get(1).setSecurityOptions(recipient2SecurityOptions);
DocumentCreationInfo documentInfo = createDocumentCreationInfoForEsign(recipients, filename, null, testPrefix, testMessage);
ArrayOfDocumentKey documentKeys = getService(url).sendDocument(apiKey, null, documentInfo);
String docKey = documentKeys.getDocumentKey().get(0).getDocumentKey();
System.out.println("Document key is: " + docKey);
return docKey;
}
private static SecurityOptions newPasswordOptions(String externalPassword, String internalPassword, String openPassword, boolean protectOpen) {
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setExternalPassword(externalPassword);
securityOptions.setInternalPassword(internalPassword);
securityOptions.setOpenPassword(openPassword);
securityOptions.setPasswordProtection(AppliesTo.ALL_USERS);
securityOptions.setProtectOpen(protectOpen);
return securityOptions;
}
public static String sendDocumentWithInternalAndExternalPassword(String url, String apiKey, String filename, String recipient1, String recipient2,
String internalPassword, String externalPassword) throws Exception
{
ArrayOfRecipientInfo recipients = createArrayOfRecipientInfosAllSigners(new String[]{recipient1, recipient2});
DocumentCreationInfo documentInfo = createDocumentCreationInfoForEsign(recipients, filename, null, testPrefix, testMessage);
SecurityOptions passwordOptions = newPasswordOptions(externalPassword, internalPassword, null, false);
documentInfo.setSecurityOptions(passwordOptions);
ArrayOfDocumentKey documentKeys = getService(url).sendDocument(apiKey, null, documentInfo);
String docKey = documentKeys.getDocumentKey().get(0).getDocumentKey();
System.out.println("Document key is: " + docKey);
return docKey;
}
public static String sendDocumentWithPhoneAuth(String url, String apiKey, String filename, String recipient, String countryCode, String phone) throws Exception
{
ArrayOfRecipientInfo recipients = createArrayOfRecipientInfosAllSigners(new String[]{recipient});
ArrayOfRecipientSecurityOption recipientSecurityOptions = newArrayOfRecipientSecurityOption(countryCode, phone);
recipients.getRecipientInfo().get(0).setSecurityOptions(recipientSecurityOptions);
DocumentCreationInfo documentInfo = createDocumentCreationInfoForEsign(recipients, filename, null, testPrefix, testMessage);
ArrayOfDocumentKey documentKeys = getService(url).sendDocument(apiKey, null, documentInfo);
String docKey = documentKeys.getDocumentKey().get(0).getDocumentKey();
System.out.println("Document key is: " + docKey);
return docKey;
}
public static void notifyDocumentVaulted(String url, String apiKey, String documentKey, String vaultEventId, String vaultEventComment) throws Exception
{
VaultEventInfo vaultEventInfo = new VaultEventInfo();
vaultEventInfo.setVaultEventId(vaultEventId);
vaultEventInfo.setVaultEventComment(vaultEventComment);
NotifyDocumentVaultedResult result = getService(url).notifyDocumentVaulted(apiKey, documentKey, vaultEventInfo);
System.out.println("notifyDocumentVaulted result: " + result.getErrorCode());
}
public static void main(String[] args)
{
if (!process(args))
usage();
}
public static boolean process(String[] args)
{
try
{
if (args.length < 3)
return false;
String url = args[0];
String apiKey = args[1];
String command = args[2];
if (command.equals("sendDocumentMegaSign"))
{
if (args.length < 5)
return false;
String[] emails = new String[args.length - 4];
final String filename = args[3];
for(int i = 4; i< args.length; i++)
emails[i - 4] = args[i];
sendDocumentMegaSign(url, apiKey, filename, null, emails);
}
else if (command.equals("users"))
{
getUsersInAccount(url, apiKey);
}
else if (command.equals("docs"))
{
if (args.length != 4)
return false;
getDocumentsForUser(url, apiKey, args[3]);
}
else if (command.equals("userDocs"))
{
if (args.length != 4)
return false;
getUserDocuments(url, apiKey, args[3]);
}
else if (command.equals("myDocs"))
{
getMyDocuments(url, apiKey);
}
else if (command.equals("megadoc"))
{
if (args.length != 4)
return false;
getMegaSignDocument(url, apiKey, args[3]);
}
else if (command.equals("createUser"))
{
if (args.length != 5)
return false;
createUser(url, apiKey, args[3], args[4]);
}
else if (command.equals("createAccount"))
{
if (args.length != 5)
return false;
createAccount(url, apiKey, args[3], args[4]);
}
else if (command.equals("version"))
{
if (args.length != 5)
return false;
getDocument(url, apiKey, null, args[3], args[4]);
}
else if (command.equals("cancel"))
{
if (args.length != 4)
return false;
cancelDocument(url, apiKey, args[3]);
}
else if (command.equals("remind"))
{
if (args.length != 4)
return false;
sendReminder(url, apiKey, args[3]);
}
else if (command.equals("getLatestDocumentUrl"))
{
if (args.length != 4)
return false;
documentUrl(url, apiKey, args[3], true);
}
else if (command.equals("getDocumentUrlByVersion"))
{
if (args.length != 4)
return false;
documentUrl(url, apiKey, args[3], false);
}
else if (command.equals("getLatestImages"))
{
if (args.length != 4)
return false;
imageList(url, apiKey, args[3], true);
}
else if (command.equals("getImagesByVersion"))
{
if (args.length != 4)
return false;
imageList(url, apiKey, args[3], false);
}
else if (command.equals("removeDocument"))
{
if (args.length != 4)
return false;
remove(url, apiKey, args[3]);
}
else if (command.equals("getFormData"))
{
if (args.length != 4)
return false;
getFormData(url, apiKey, args[3]);
}
else if (command.equals("verifyUser"))
{
if (args.length != 5)
return false;
verifyUser(url, apiKey, args[3], args[4]);
}
else if (command.equals("createEmbeddedWidget"))
{
if (args.length != 4)
return false;
createEmbeddedWidget(url, apiKey, args[3]);
}
else if (command.equals("createPersonalEmbeddedWidget"))
{
if (args.length != 5)
return false;
createPersonalEmbeddedWidget(url, apiKey, args[3], args[4]);
}
else if (command.equals("personalizeEmbeddedWidget"))
{
if (args.length != 5)
return false;
personalizeEmbeddedWidget(url, apiKey, args[3], args[4]);
}
else if (command.equals("createUrlWidget"))
{
if (args.length != 4)
return false;
createUrlWidget(url, apiKey, args[3]);
}
else if (command.equals("createUrlWidgetWithRedirect"))
{
if (args.length != 7)
return false;
createUrlWidget(url, apiKey, args[3], args[4], null, Boolean.parseBoolean(args[5]), Integer.parseInt(args[6]));
}
else if (command.equals("createPersonalUrlWidget"))
{
if (args.length != 5)
return false;
createPersonalUrlWidget(url, apiKey, args[3], args[4]);
}
else if (command.equals("personalizeUrlWidget"))
{
if (args.length != 5)
return false;
personalizeUrlWidget(url, apiKey, args[3], args[4]);
}
else if (command.equals("interactiveSend"))
{
if (args.length != 5)
return false;
initiateInteractiveSend(url, apiKey, args[3], args[4]);
}
else if (command.equals("widgets"))
{
if (args.length != 4)
return false;
getWidgets(url, apiKey, args[3]);
}
else if (command.equals("myWidgets"))
{
getMyWidgets(url, apiKey);
}
else if (command.equals("sendDocumentInteractive"))
{
if (args.length != 5)
return false;
sendDocumentInteractive(url, apiKey, args[3], args[4]);
}
else if (command.equals("createLibraryDocumentInteractive"))
{
if (args.length != 4)
return false;
createLibraryDocumentInteractive(url, apiKey, args[3]);
}
else if (command.equals("createLibraryDocument"))
{
if (args.length != 4)
return false;
createLibraryDocument(url, apiKey, args[3]);
}
else if (command.equals("getLibraryDocuments"))
{
if (args.length != 4)
return false;
getLibraryDocuments(url, apiKey, args[3]);
}
else if (command.equals("myLibraryDocuments"))
{
getMyLibraryDocuments(url, apiKey);
}
else if (command.equals("audit"))
{
if (args.length != 5)
return false;
getAuditTrail(url, apiKey, args[3], args[4]);
}
else if (command.equals("signingUrl"))
{
if (args.length != 4)
return false;
getSigningUrl(url, apiKey, args[3]);
}
else if (command.equals("infosByExternalId"))
{
if (args.length < 4)
return false;
String email = (args.length > 4 ? args[4] : null);
String password = (args.length > 5 ? args[5] : null);
getDocumentInfosByExternalId(url, apiKey, email, password, args[3]);
}
else if (command.equals("getDocuments"))
{
if (args.length < 5)
return false;
String versionKey = (args.length > 5 ? args[5] : null);
String userEmail = (args.length > 6 ? args[6] : null);
boolean combine = (args.length > 7 ? args[7].equals("true") : true);
getDocuments(url, apiKey, args[3], args[4], versionKey, userEmail, combine);
}
else if (command.equals("getDocumentUrls"))
{
if (args.length < 4)
return false;
String versionKey = (args.length > 4 ? args[4] : null);
String userEmail = (args.length > 5 ? args[5] : null);
boolean combine = (args.length > 6 ? args[6].equals("true") : true);
getDocumentUrls(url, apiKey, args[3], versionKey, userEmail, combine);
}
else if (command.equals("getDocumentImageUrls"))
{
if (args.length < 4)
return false;
String versionKey = (args.length > 4 ? args[4] : null);
String userEmail = (args.length > 5 ? args[5] : null);
boolean combine = (args.length > 6 ? args[6].equals("true") : true);
getDocumentImageUrls(url, apiKey, args[3], versionKey, userEmail, combine);
}
else if (command.equals("getSupportingDocuments"))
{
if (args.length < 5)
return false;
getSupportingDocuments(url, apiKey, args[3], args[4]);
}
else if (command.equals("latest"))
{
if (args.length != 5)
return false;
getDocument(url, apiKey, args[3], args[4]);
}
else if (command.equals("createGroup"))
{
if (args.length != 4)
return false;
createGroup(url, apiKey, args[3]);
}
else if (command.equals("deleteGroup"))
{
if (args.length != 4)
return false;
deleteGroup(url, apiKey, args[3]);
}
else if (command.equals("renameGroup"))
{
if (args.length != 5)
return false;
renameGroup(url, apiKey, args[3], args[4]);
}
else if (command.equals("getGroupsInAccount"))
{
if (args.length != 3)
return false;
getGroupsInAccount(url, apiKey);
}
else if (command.equals("getUsersInGroup"))
{
if (args.length != 4)
return false;
getUsersInGroup(url, apiKey, args[3]);
}
else if (command.equals("moveUsersToGroup"))
{
if (args.length != 5)
return false;
moveUsersToGroup(url, apiKey, args[3], args[4]);
}
else if (command.equals("createFormFieldLayerTemplate"))
{
String filename = (args.length > 3 ? args[3] : null);
createLibraryTemplate(url, apiKey, filename, LibraryTemplateType.FORM_FIELD_LAYER);
}
else if (command.equals("sendWithFormFieldLayerTemplate"))
{
if (args.length != 6)
return false;
sendDocumentWithFormFieldLayerTemplate(url, apiKey, args[3], args[4], args[5]);
}
else if (command.equals("sendDocumentMegaSignWithFormFieldLayerTemplate"))
{
if (args.length < 6)
return false;
String[] emails = new String[args.length - 5];
final String filename = args[3];
final String formFieldLayerTemplateKey = args[4];
for(int i = 5; i< args.length; i++)
emails[i - 5] = args[i];
sendDocumentMegaSign(url, apiKey, filename, formFieldLayerTemplateKey, emails);
}
else if (command.equals("createUrlWidgetWithFormFieldLayerTemplate"))
{
if (args.length != 5)
return false;
createUrlWidget(url, apiKey, args[3], args[4], null, true, 0);
}
else if (command.equals("rejectDocument"))
{
if (args.length != 5)
return false;
rejectDocument(url, apiKey, args[3], args[4]);
}
else if (command.equals("replaceSigner"))
{
if (args.length != 7)
return false;
replaceSigner(url, apiKey, args[3], args[4], args[5], args[6]);
}
else if (command.equals("delegateSigning"))
{
if (args.length != 6)
return false;
delegateSigning(url, apiKey, args[3], args[4], args[5]);
}
else if (command.equals("getUserInfo"))
{
if (args.length != 4)
return false;
getUserInfo(url, apiKey, args[3]);
}
else if (command.equals("searchUserDocuments"))
{
if (args.length != 4)
return false;
searchUserDocuments(url, apiKey, args[3]);
}
else if (command.equals("searchUserDocumentsByName"))
{
if (args.length != 4)
return false;
searchUserDocumentsByName(url, apiKey, args[3]);
}
else if (command.equals("getDocumentEventsForUser"))
{
if (args.length != 3)
return false;
getDocumentEventsForUser(url, apiKey);
}
else if (command.equals("sendWithRecipientSecurity"))
{
if (args.length != 8)
return false;
sendDocumentWithRecipientSecurityOptions(url, apiKey, args[3], args[4], args[5], args[6], args[7]);
}
else if (command.equals("sendWithDifferentPasswords"))
{
if (args.length != 8)
return false;
sendDocumentWithInternalAndExternalPassword(url, apiKey, args[3], args[4], args[5], args[6], args[7]);
}
else if (command.equals("sendWithPhoneAuth"))
{
if (args.length != 7)
return false;
sendDocumentWithPhoneAuth(url, apiKey, args[3], args[4], args[5], args[6]);
}
else if (command.equals("getEmbeddedView"))
{
if (args.length != 3)
return false;
getEmbeddedView(url, apiKey);
}
else if (command.equals("notifyDocumentVaulted"))
{
if (args.length != 6)
return false;
notifyDocumentVaulted(url, apiKey, args[3], args[4], args[5]);
}
else
{
return EchoSignDocumentServiceDemo.process(args);
}
}
catch (Exception e)
{
e.printStackTrace();
}
return true;
}
public static void usage()
{
usageSynopsis();
usageBaseCommands();
usageCommandsTillV16();
usageCommandsV17();
usageCommandsV18();
usageCommandsV19();
usageBaseDescriptions();
usageDescriptionsTillV16();
usageDescriptionsV17();
usageDescriptionsV18();
usageDescriptionsV19();
}
public static void usageCommandsTillV16()
{
System.err.println(" version <versionKey> <filename>");
System.err.println(" cancel <documentKey>");
System.err.println(" remind <documentKey>");
System.err.println(" getLatestDocumentUrl <documentKey>");
System.err.println(" getDocumentUrlByVersion <versionKey>");
System.err.println(" getLatestImages <documentKey>");
System.err.println(" getImagesByVersion <versionKey>");
System.err.println(" users");
System.err.println(" docs <userKey>");
System.err.println(" userDocs <email>");
System.err.println(" myDocs");
System.err.println(" megadoc <documentKey>");
System.err.println(" removeDocument <documentKey>");
System.err.println(" getFormData <documentKey>");
System.err.println(" sendDocumentMegaSign <filename> <signer_email1> <signer_email2> ...");
System.err.println(" verifyUser <email> <password>");
System.err.println(" createUser <email> <password>");
System.err.println(" createAccount <email> <password>");
System.err.println(" createEmbeddedWidget <filename>");
System.err.println(" createPersonalEmbeddedWidget <filename> <signer_email>");
System.err.println(" personalizeEmbeddedWidget <javascript> <signer_email>");
System.err.println(" createUrlWidget <filename>");
System.err.println(" createUrlWidgetWithRedirect <filename> <completion_url> <deframe> <delay_in_seconds>");
System.err.println(" createPersonalUrlWidget <filename> <signer_email>");
System.err.println(" personalizeUrlWidget <url> <signer_email>");
System.err.println(" interactiveSend <filename> <recipient_email>");
System.err.println(" widgets <email>");
System.err.println(" myWidgets");
System.err.println(" sendDocumentInteractive <filename> <recipient_email>");
System.err.println(" createLibraryDocumentInteractive <filename>");
System.err.println(" createLibraryDocument <filename>");
System.err.println(" getLibraryDocuments <email>");
System.err.println(" myLibraryDocuments");
System.err.println(" audit <documentKey> <filename>");
System.err.println(" signingUrl <documentKey>");
System.err.println(" infosByExternalId <email> <password> <externalId>");
System.err.println(" getDocuments <documentKey> <fileDirPath> [<versionKey> <userEmail> <combine>]");
System.err.println(" getDocumentUrls <documentKey> [<versionKey> <userEmail> <combine>]");
System.err.println(" getDocumentImageUrls <documentKey> [<versionKey> <userEmail> <combine>]");
System.err.println(" getSupportingDocuments <documentKey> <baseFilePath>");
System.err.println(" createGroup <name>");
System.err.println(" deleteGroup <groupKey>");
System.err.println(" renameGroup <groupKey> <name>");
System.err.println(" getGroupsInAccount");
System.err.println(" getUsersInGroup <groupKey>");
System.err.println(" moveUsersToGroup <groupKey> <email[]>");
}
public static void usageDescriptionsTillV16()
{
System.err.println("version saves a specific version of the document (referenced by the history events)");
System.err.println("");
System.err.println("cancel terminates a transaction and notified all parties that it's been cancelled");
System.err.println("");
System.err.println("remind sends another email to the person whose turn it is to sign that document");
System.err.println("");
System.err.println("getLatestDocumentUrl returns the URL which points to the PDF of the latest version of the document");
System.err.println("");
System.err.println("getDocumentUrlByVersion returns the URL which point to the PDF of the specified version of a document");
System.err.println("");
System.err.println("getLatestImages returns URLs which point to the images of the pages of a document");
System.err.println("");
System.err.println("getImagesByVersion returns URLs which point to the images of the pages of the specified version of a document");
System.err.println("");
System.err.println("users lists all users in the account of the API key holder");
System.err.println("");
System.err.println("docs lists all the visible documents of the specified user");
System.err.println("");
System.err.println("userDocs lists all the visible documents of the specified user");
System.err.println("");
System.err.println("myDocs lists all the visible documents of the current API user");
System.err.println("");
System.err.println("megadoc lists all the child documents of the specified documentKey");
System.err.println("");
System.err.println("removeDocument removes the document from the system");
System.err.println("");
System.err.println("getFormData returns a CSV data structure with the form data for the specified document or form");
System.err.println("");
System.err.println("sendDocumentMegaSign sends a document to multiple signers simultaneously");
System.err.println("");
System.err.println("verifyUser returns the status of the user in the system");
System.err.println("");
System.err.println("createUser creates a new Adobe Document Cloud user in the system");
System.err.println("");
System.err.println("createAccount creates a new paying account in the system");
System.err.println("");
System.err.println("createEmbeddedWidget will return the embeddable javascript for a signable widget of the provided file");
System.err.println("");
System.err.println("createPersonalEmbeddedWidget will return the embeddable javascript widget intended for a specific signer");
System.err.println("");
System.err.println("personalizeEmbeddedWidget will return transform the widget javascript to be intended for a specific signer");
System.err.println("");
System.err.println("createUrlWidget will return the url for a signable widget of the provided file");
System.err.println("");
System.err.println("createPersonalUrlWidget will return the url widget intended for a specific signer");
System.err.println("");
System.err.println("personalizeUrlWidget will return transform the widget url to be intended for a specific signer");
System.err.println("");
System.err.println("interactiveSend returns a URL where the user can complete the process of sending the provided file(s)");
System.err.println("");
System.err.println("widgets will return the list of all the widgets available to a given user");
System.err.println("");
System.err.println("myWidgets will return the list of all the widgets available to the current API user");
System.err.println("");
System.err.println("sendDocumentInteractive returns a URL where the user can complete the process of sending the provided file(s)");
System.err.println("");
System.err.println("createLibraryDocumentInteractive returns a URL where the user can complete the process of adding the specified file to the user's template library");
System.err.println("");
System.err.println("createLibraryDocument will add the specified file to the user's template library");
System.err.println("");
System.err.println("getLibraryDocuments will return the list of all the library documents available to a given user");
System.err.println("");
System.err.println("myLibraryDocuments will return the list of all the library documents available to the current API user");
System.err.println("");
System.err.println("audit saves the document audit trail as a PDF with the given filename");
System.err.println("");
System.err.println("signingUrl retrieves the authenticated url for the esign page for the current signer");
System.err.println("");
System.err.println("infosByExternalId retrieves the list of documents that match the given external ID");
System.err.println("");
System.err.println("getDocuments retrieves the PDF files that match the given document");
System.err.println("");
System.err.println("getDocumentUrls retrieves the URLs that match the given document");
System.err.println("");
System.err.println("getDocumentImageUrls retrieves the page image URLs that match the given document");
System.err.println("");
System.err.println("getSupportingDocuments retrieves the supporting files in PDF that are attached to the given document");
System.err.println("");
System.err.println("createGroup create a new group within an account");
System.err.println("");
System.err.println("deleteGroup removes a group within an accout");
System.err.println("");
System.err.println("renameGroup renames a group wthin an account");
System.err.println("");
System.err.println("getGroupsInAccount retrieves the groups within an account");
System.err.println("");
System.err.println("getUsersInGroup retrieves the users within a group");
System.err.println("");
System.err.println("moveUsersToGroup moves users to a group within an account");
System.err.println("");
}
public static void usageCommandsV17()
{
System.err.println(" createFormFieldLayerTemplate [<filename>] ('testtemplate.pdf' will be used if <filename> is not provided)");
System.err.println(" sendWithFormFieldLayerTemplate <filename> <libraryTemplateKey> <recipient_email>");
System.err.println(" sendDocumentMegaSignWithFormFieldLayerTemplate <filename> <libraryTemplateKey> <signer_email1> <signer_email2> ...");
System.err.println(" createUrlWidgetWithFormFieldLayerTemplate <filename> <libraryTemplateKey>");
System.err.println(" rejectDocument <documentKey> <comment>");
System.err.println(" replaceSigner <documentKey> <oldSigner> <newSigner> <comment>");
System.err.println(" delegateSigning <documentKey> <newSigner> <comment>");
System.err.println(" notifyDocumentVaulted <documentKey> <vaultEventId> <vaultEventComment>");
}
public static void usageDescriptionsV17()
{
System.err.println("createFormFieldLayerTemplate will add the specified file to the user's template library as form field layer template");
System.err.println("");
System.err.println("sendWithFormFieldLayerTemplate will create a new agreement with the specified form field layer template applied");
System.err.println("");
System.err.println("sendDocumentMegaSignWithFormFieldLayerTemplate will apply the specified form field layer template to a document and send it to multiple signers simultaneously");
System.err.println("");
System.err.println("createUrlWidgetWithFormFieldLayerTemplate will return the url for a signable widget of the provided file with the specified form field layer template applied");
System.err.println("");
System.err.println("rejectDocument will abort the signature workflow of the specified document and notify the sender of the rejection by email with the specified comment.");
System.err.println("");
System.err.println("replaceSigner will replace the old signer with a new signer and note the specified comment.");
System.err.println("");
System.err.println("delegateSigning will delegate the signer with a new signer and note the specified comment.");
System.err.println("");
System.err.println(" notifyDocumentVaulted notify the system that the document has been vaulted");
System.err.println("");
}
public static void usageCommandsV18()
{
System.err.println(" getUserInfo <email>");
System.err.println(" searchUserDocuments <query>");
System.err.println(" getDocumentEventsForUser ");
System.err.println(" sendWithRecipientSecurity <filename> <signer1_email> <signer1_password> <signer2_email> <signer2_password>");
System.err.println(" sendWithDifferentPasswords <filename> <signer1_email> <signer2_email> <internal_password> <external_password>");
}
public static void usageDescriptionsV18()
{
System.err.println("getUserInfo returns information about a user");
System.err.println("");
System.err.println("searchUserDocuments lists all the visible documents of the specified user matching a specified query");
System.err.println("");
System.err.println("getDocumentEventsForUser lists the events for the specified user for the past week");
System.err.println("");
System.err.println("sendWithRecipientSecurity will send an agreement with each signer having a different signing password");
System.err.println("");
System.err.println("sendWithDifferentPasswords will send an agreement where signers in the sender's account and signers outside the sender's account have different passwords");
System.err.println("");
}
public static void usageCommandsV19()
{
System.err.println(" sendWithPhoneAuth <filename> <signer_email> <country_code> <phone_number>");
System.err.println(" getEmbeddedView");
}
public static void usageDescriptionsV19()
{
System.err.println("sendWithPhoneAuth will send an agreement where the signer must request an access token be sent to their phone, and enter the access token to sign");
System.err.println("getEmbeddedView will return a URL for an embedded view of the user's profile page");
System.err.println("");
}
}