From d95cb00570085b51d33b58576393255262016dda Mon Sep 17 00:00:00 2001 From: 4apkis Date: Fri, 24 Dec 2021 13:57:10 +0200 Subject: [PATCH 1/8] Implemented some of V2 features: webhook management and prefill documents --- .../java/com/signnow/library/SNClient.java | 12 ++++-- .../com/signnow/library/dto/Document.java | 22 +++++++++++ .../java/com/signnow/library/dto/Webhook.java | 37 +++++++++++++++++++ .../signnow/library/facades/Documents.java | 4 ++ .../library/facades/ServiceProvider.java | 2 + .../com/signnow/library/facades/Webhooks.java | 10 +++++ .../library/services/DocumentsService.java | 11 ++++++ .../library/services/WebhookService.java | 34 +++++++++++++++++ 8 files changed, 128 insertions(+), 4 deletions(-) create mode 100644 client-lib/src/main/java/com/signnow/library/dto/Webhook.java create mode 100644 client-lib/src/main/java/com/signnow/library/facades/Webhooks.java create mode 100644 client-lib/src/main/java/com/signnow/library/services/WebhookService.java diff --git a/client-lib/src/main/java/com/signnow/library/SNClient.java b/client-lib/src/main/java/com/signnow/library/SNClient.java index ebbc099..5b9ad4c 100644 --- a/client-lib/src/main/java/com/signnow/library/SNClient.java +++ b/client-lib/src/main/java/com/signnow/library/SNClient.java @@ -5,13 +5,11 @@ import com.signnow.library.dto.User; import com.signnow.library.exceptions.SNApiException; import com.signnow.library.exceptions.SNException; -import com.signnow.library.facades.DocumentGroups; -import com.signnow.library.facades.Documents; -import com.signnow.library.facades.ServiceProvider; -import com.signnow.library.facades.Templates; +import com.signnow.library.facades.*; import com.signnow.library.services.DocumentGroupsService; import com.signnow.library.services.DocumentsService; import com.signnow.library.services.TemplatesService; +import com.signnow.library.services.WebhookService; import javax.ws.rs.client.Entity; import javax.ws.rs.client.Invocation; @@ -36,6 +34,7 @@ public class SNClient implements ServiceProvider { private WebTarget apiWebTarget; private Documents documentsService = new DocumentsService(this); private Templates templatesService = new TemplatesService(this); + private Webhooks webhooksService = new WebhookService(this); private DocumentGroups documentGroupsService = new DocumentGroupsService(this); protected SNClient(WebTarget apiWebTarget, User user) { @@ -61,6 +60,11 @@ public Templates templatesService() { return templatesService; } + @Override + public Webhooks webhooksService() { + return webhooksService; + } + @Override public DocumentGroups documentGroupsService() { return documentGroupsService; diff --git a/client-lib/src/main/java/com/signnow/library/dto/Document.java b/client-lib/src/main/java/com/signnow/library/dto/Document.java index b442028..ec30bcd 100644 --- a/client-lib/src/main/java/com/signnow/library/dto/Document.java +++ b/client-lib/src/main/java/com/signnow/library/dto/Document.java @@ -127,6 +127,14 @@ public String toString() { } } + public static class PrefillTextRequest { + public final List fields; + + public PrefillTextRequest(List fields) { + this.fields = fields; + } + } + public static class FieldsUpdateRequest { public final List fields; @@ -135,6 +143,20 @@ public FieldsUpdateRequest(List fields) { } } + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class FieldText { + @JsonProperty("field_name") + public String fieldName; + @JsonProperty("prefilled_text") + public String prefilledText; + + public FieldText(String name, String prefill) { + this.fieldName = name; + this.prefilledText = prefill; + } + } + + @JsonInclude(JsonInclude.Include.NON_NULL) public static class Field { public int x; diff --git a/client-lib/src/main/java/com/signnow/library/dto/Webhook.java b/client-lib/src/main/java/com/signnow/library/dto/Webhook.java new file mode 100644 index 0000000..a11115d --- /dev/null +++ b/client-lib/src/main/java/com/signnow/library/dto/Webhook.java @@ -0,0 +1,37 @@ +package com.signnow.library.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.Map; + +public class Webhook { + public static class CreateRequest { + @JsonProperty("event") + public final String event; + @JsonProperty("entity_id") + public final String entityId; + @JsonProperty("action") + public final String action = "callback"; + @JsonProperty("attributes") + public final Attributes attributes; + + public CreateRequest(String event, String entityId, String callback, Map headers) { + this.event = event; + this.entityId = entityId; + this.attributes = new Attributes(callback, headers); + } + } + + static class Attributes { + @JsonProperty("callback") + public final String callback; + + @JsonProperty("headers") + public final Map headers; + + Attributes(String callback, Map headers) { + this.callback = callback; + this.headers = headers; + } + } +} diff --git a/client-lib/src/main/java/com/signnow/library/facades/Documents.java b/client-lib/src/main/java/com/signnow/library/facades/Documents.java index a1a6539..3ff4827 100644 --- a/client-lib/src/main/java/com/signnow/library/facades/Documents.java +++ b/client-lib/src/main/java/com/signnow/library/facades/Documents.java @@ -24,9 +24,13 @@ public interface Documents { void updateDocumentFields(String documentId, List request) throws SNException; + void prefillText(String documentId, List request) throws SNException; + + Document getDocument(String documentId) throws SNException; void deleteDocument(String documentId) throws SNException; String getDownloadLink(String documentId) throws SNException; + } diff --git a/client-lib/src/main/java/com/signnow/library/facades/ServiceProvider.java b/client-lib/src/main/java/com/signnow/library/facades/ServiceProvider.java index 0e979cb..2edf25c 100644 --- a/client-lib/src/main/java/com/signnow/library/facades/ServiceProvider.java +++ b/client-lib/src/main/java/com/signnow/library/facades/ServiceProvider.java @@ -6,4 +6,6 @@ public interface ServiceProvider { Templates templatesService(); DocumentGroups documentGroupsService(); + + Webhooks webhooksService(); } diff --git a/client-lib/src/main/java/com/signnow/library/facades/Webhooks.java b/client-lib/src/main/java/com/signnow/library/facades/Webhooks.java new file mode 100644 index 0000000..b790b4e --- /dev/null +++ b/client-lib/src/main/java/com/signnow/library/facades/Webhooks.java @@ -0,0 +1,10 @@ +package com.signnow.library.facades; + +import com.signnow.library.exceptions.SNException; + +import java.util.Map; + +public interface Webhooks { + void add(String event, String entityId, String callback, Map headers) throws SNException; + void delete(String webhookId) throws SNException; +} diff --git a/client-lib/src/main/java/com/signnow/library/services/DocumentsService.java b/client-lib/src/main/java/com/signnow/library/services/DocumentsService.java index 551f64f..12d7407 100644 --- a/client-lib/src/main/java/com/signnow/library/services/DocumentsService.java +++ b/client-lib/src/main/java/com/signnow/library/services/DocumentsService.java @@ -72,6 +72,16 @@ public void sendDocumentSignInvite(String documentId, Document.SigningInviteWith ); } + @Override + public void prefillText(String documentId, List request) throws SNException { + client.put( + "/v2/documents/{documentId}/prefill-texts", + Collections.singletonMap("documentId", documentId), + new Document.PrefillTextRequest(request), + String.class + ); + } + @Override public void updateDocumentFields(String documentId, List request) throws SNException { client.put( @@ -109,4 +119,5 @@ public String getDownloadLink(String documentId) throws SNException { Document.DocumentDownloadLink.class ).link; } + } diff --git a/client-lib/src/main/java/com/signnow/library/services/WebhookService.java b/client-lib/src/main/java/com/signnow/library/services/WebhookService.java new file mode 100644 index 0000000..142bda8 --- /dev/null +++ b/client-lib/src/main/java/com/signnow/library/services/WebhookService.java @@ -0,0 +1,34 @@ +package com.signnow.library.services; + +import com.signnow.library.SNClient; +import com.signnow.library.dto.Webhook; +import com.signnow.library.exceptions.SNException; +import com.signnow.library.facades.Webhooks; + +import java.util.Collections; +import java.util.Map; + +public class WebhookService extends ApiService implements Webhooks { + public WebhookService(SNClient client) { + super(client); + } + + @Override + public void add(String event, String entityId, String callback, Map headers) throws SNException { + client.post( + "/api/v2/events", + null, + new Webhook.CreateRequest(event, entityId, callback, headers), + String.class + ); + } + + @Override + public void delete(String eventSubscriptionId) throws SNException { + client.delete( + "/api/v2/events/{eventSubscriptionId}", + Collections.singletonMap("eventSubscriptionId", eventSubscriptionId), + String.class + ); + } +} From fb61fe2cde910c86fe1d2b27e3d9f22c5550ea80 Mon Sep 17 00:00:00 2001 From: 4apkis Date: Fri, 24 Dec 2021 14:08:30 +0200 Subject: [PATCH 2/8] Export to github packages for Operations project --- client-lib/pom.xml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/client-lib/pom.xml b/client-lib/pom.xml index 0550326..aceedb4 100644 --- a/client-lib/pom.xml +++ b/client-lib/pom.xml @@ -5,7 +5,7 @@ com.signnow api-client-lib - 1.0.0-SNAPSHOT + 1.0.2 jar @@ -94,4 +94,13 @@ + + + + github + Darwin + https://maven.pkg.github.com/SSDevelopment/DarwinOperations + + + From 464b0818f8ea5ebc4d5bb07536a0b0d6371cabb7 Mon Sep 17 00:00:00 2001 From: ndovhiitrach Date: Fri, 4 Mar 2022 18:22:28 +0200 Subject: [PATCH 3/8] embedded invite --- .../com/signnow/library/dto/Document.java | 63 ++++++++++++++++++- .../signnow/library/facades/Documents.java | 5 +- .../library/services/DocumentsService.java | 22 +++++++ 3 files changed, 87 insertions(+), 3 deletions(-) diff --git a/client-lib/src/main/java/com/signnow/library/dto/Document.java b/client-lib/src/main/java/com/signnow/library/dto/Document.java index ec30bcd..aaf75b1 100644 --- a/client-lib/src/main/java/com/signnow/library/dto/Document.java +++ b/client-lib/src/main/java/com/signnow/library/dto/Document.java @@ -2,8 +2,7 @@ import com.fasterxml.jackson.annotation.*; -import java.util.ArrayList; -import java.util.List; +import java.util.*; @JsonIgnoreProperties(ignoreUnknown = true) public class Document extends GenericId { @@ -197,4 +196,64 @@ public static class DocumentDownloadLink { public String link; } + /*------------------------Embedded invites------------------------*/ + public static class SigningEmbeddedInviteRequest { + public final List invites = new ArrayList<>(); + + public SigningEmbeddedInviteRequest(EmbeddedInvite... invite) { + this.invites.addAll(Arrays.asList(invite)); + } + } + + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class EmbeddedInvite { + public String email; + public String role_id = ""; + public String role; + public int order = 1; + @JsonProperty("auth_method") + public String authMethod = "none"; + + public EmbeddedInvite(String email, String role) { + this.email = email; + this.role = role; + } + } + + public static class SigningEmbeddedInviteResponse { + public final List data = new ArrayList<>(); + } + + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class InviteResponseData { + public final String id; + public final String email; + @JsonProperty("role_id") + public final String roleId; + public final int order; + public final String status; + + public InviteResponseData(String id, String email, String roleId, int order, String status) { + this.id = id; + this.email = email; + this.roleId = roleId; + this.order = order; + this.status = status; + } + } + + public static class GettingEmbeddedInviteLinkRequest { + @JsonProperty("link_expiration") + public int linkExpiration = 45; + @JsonProperty("auth_method") + public String authMethod = "none"; + } + + public static class GettingEmbeddedInviteLinkResponse { + public final Map data = new HashMap<>(); + + public String getLink() { + return data.get("link"); + } + } } diff --git a/client-lib/src/main/java/com/signnow/library/facades/Documents.java b/client-lib/src/main/java/com/signnow/library/facades/Documents.java index 3ff4827..218e023 100644 --- a/client-lib/src/main/java/com/signnow/library/facades/Documents.java +++ b/client-lib/src/main/java/com/signnow/library/facades/Documents.java @@ -22,11 +22,14 @@ public interface Documents { void sendDocumentSignInvite(String documentId, Document.SigningInviteWithRolesRequest request) throws SNException; + Document.SigningEmbeddedInviteResponse createDocumentEmbeddedSignInvite(String documentId, Document.SigningEmbeddedInviteRequest request) throws SNException; + + String getDocumentEmbeddedSignInviteLink(String documentId, String inviteId, Document.GettingEmbeddedInviteLinkRequest request) throws SNException; + void updateDocumentFields(String documentId, List request) throws SNException; void prefillText(String documentId, List request) throws SNException; - Document getDocument(String documentId) throws SNException; void deleteDocument(String documentId) throws SNException; diff --git a/client-lib/src/main/java/com/signnow/library/services/DocumentsService.java b/client-lib/src/main/java/com/signnow/library/services/DocumentsService.java index 12d7407..8c28880 100644 --- a/client-lib/src/main/java/com/signnow/library/services/DocumentsService.java +++ b/client-lib/src/main/java/com/signnow/library/services/DocumentsService.java @@ -14,7 +14,9 @@ import javax.ws.rs.core.Response; import java.io.InputStream; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; public class DocumentsService extends ApiService implements Documents { public DocumentsService(SNClient client) { @@ -72,6 +74,26 @@ public void sendDocumentSignInvite(String documentId, Document.SigningInviteWith ); } + @Override + public Document.SigningEmbeddedInviteResponse createDocumentEmbeddedSignInvite(String documentId, Document.SigningEmbeddedInviteRequest request) throws SNException { + return client.post( + "/v2/documents/{document_id}/embedded-invites", + Collections.singletonMap("document_id", documentId), + request, + Document.SigningEmbeddedInviteResponse.class); + } + + @Override + public String getDocumentEmbeddedSignInviteLink(String documentId, String inviteId, Document.GettingEmbeddedInviteLinkRequest request) throws SNException { + Map params = new HashMap<>(); + params.put("document_id", documentId); + params.put("fieldInviteUniqueId", inviteId); + Document.GettingEmbeddedInviteLinkResponse response = client.post( + "/v2/documents/{document_id}/embedded-invites/{fieldInviteUniqueId}/link", + params, request, Document.GettingEmbeddedInviteLinkResponse.class); + return response.getLink(); + } + @Override public void prefillText(String documentId, List request) throws SNException { client.put( From dc3acfd2f8d050202a159c0e469f372f01699aa8 Mon Sep 17 00:00:00 2001 From: ndovhiitrach Date: Tue, 8 Mar 2022 15:59:56 +0200 Subject: [PATCH 4/8] raise version --- client-lib/pom.xml | 2 +- .../main/java/com/signnow/library/dto/Document.java | 10 +++++----- .../java/com/signnow/library/facades/Documents.java | 4 ++-- .../com/signnow/library/services/DocumentsService.java | 10 +++++----- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/client-lib/pom.xml b/client-lib/pom.xml index aceedb4..e168ccc 100644 --- a/client-lib/pom.xml +++ b/client-lib/pom.xml @@ -5,7 +5,7 @@ com.signnow api-client-lib - 1.0.2 + 1.0.3 jar diff --git a/client-lib/src/main/java/com/signnow/library/dto/Document.java b/client-lib/src/main/java/com/signnow/library/dto/Document.java index aaf75b1..10f8e88 100644 --- a/client-lib/src/main/java/com/signnow/library/dto/Document.java +++ b/client-lib/src/main/java/com/signnow/library/dto/Document.java @@ -197,10 +197,10 @@ public static class DocumentDownloadLink { } /*------------------------Embedded invites------------------------*/ - public static class SigningEmbeddedInviteRequest { + public static class EmbeddedSigningInviteRequest { public final List invites = new ArrayList<>(); - public SigningEmbeddedInviteRequest(EmbeddedInvite... invite) { + public EmbeddedSigningInviteRequest(EmbeddedInvite... invite) { this.invites.addAll(Arrays.asList(invite)); } } @@ -220,7 +220,7 @@ public EmbeddedInvite(String email, String role) { } } - public static class SigningEmbeddedInviteResponse { + public static class EmbeddedSigningInviteResponse { public final List data = new ArrayList<>(); } @@ -242,14 +242,14 @@ public InviteResponseData(String id, String email, String roleId, int order, Str } } - public static class GettingEmbeddedInviteLinkRequest { + public static class EmbeddedInviteLinkRequest { @JsonProperty("link_expiration") public int linkExpiration = 45; @JsonProperty("auth_method") public String authMethod = "none"; } - public static class GettingEmbeddedInviteLinkResponse { + public static class EmbeddedInviteLinkResponse { public final Map data = new HashMap<>(); public String getLink() { diff --git a/client-lib/src/main/java/com/signnow/library/facades/Documents.java b/client-lib/src/main/java/com/signnow/library/facades/Documents.java index 218e023..3e2550c 100644 --- a/client-lib/src/main/java/com/signnow/library/facades/Documents.java +++ b/client-lib/src/main/java/com/signnow/library/facades/Documents.java @@ -22,9 +22,9 @@ public interface Documents { void sendDocumentSignInvite(String documentId, Document.SigningInviteWithRolesRequest request) throws SNException; - Document.SigningEmbeddedInviteResponse createDocumentEmbeddedSignInvite(String documentId, Document.SigningEmbeddedInviteRequest request) throws SNException; + Document.EmbeddedSigningInviteResponse createDocumentEmbeddedSignInvite(String documentId, Document.EmbeddedSigningInviteRequest request) throws SNException; - String getDocumentEmbeddedSignInviteLink(String documentId, String inviteId, Document.GettingEmbeddedInviteLinkRequest request) throws SNException; + String getDocumentEmbeddedSignInviteLink(String documentId, String inviteId, Document.EmbeddedInviteLinkRequest request) throws SNException; void updateDocumentFields(String documentId, List request) throws SNException; diff --git a/client-lib/src/main/java/com/signnow/library/services/DocumentsService.java b/client-lib/src/main/java/com/signnow/library/services/DocumentsService.java index 8c28880..e50b0a0 100644 --- a/client-lib/src/main/java/com/signnow/library/services/DocumentsService.java +++ b/client-lib/src/main/java/com/signnow/library/services/DocumentsService.java @@ -75,22 +75,22 @@ public void sendDocumentSignInvite(String documentId, Document.SigningInviteWith } @Override - public Document.SigningEmbeddedInviteResponse createDocumentEmbeddedSignInvite(String documentId, Document.SigningEmbeddedInviteRequest request) throws SNException { + public Document.EmbeddedSigningInviteResponse createDocumentEmbeddedSignInvite(String documentId, Document.EmbeddedSigningInviteRequest request) throws SNException { return client.post( "/v2/documents/{document_id}/embedded-invites", Collections.singletonMap("document_id", documentId), request, - Document.SigningEmbeddedInviteResponse.class); + Document.EmbeddedSigningInviteResponse.class); } @Override - public String getDocumentEmbeddedSignInviteLink(String documentId, String inviteId, Document.GettingEmbeddedInviteLinkRequest request) throws SNException { + public String getDocumentEmbeddedSignInviteLink(String documentId, String inviteId, Document.EmbeddedInviteLinkRequest request) throws SNException { Map params = new HashMap<>(); params.put("document_id", documentId); params.put("fieldInviteUniqueId", inviteId); - Document.GettingEmbeddedInviteLinkResponse response = client.post( + Document.EmbeddedInviteLinkResponse response = client.post( "/v2/documents/{document_id}/embedded-invites/{fieldInviteUniqueId}/link", - params, request, Document.GettingEmbeddedInviteLinkResponse.class); + params, request, Document.EmbeddedInviteLinkResponse.class); return response.getLink(); } From 454b0374ade9d799e48d38498b0da755a80e4fd6 Mon Sep 17 00:00:00 2001 From: ndovhiitrach Date: Wed, 9 Mar 2022 14:08:00 +0200 Subject: [PATCH 5/8] remove empty role_id --- client-lib/src/main/java/com/signnow/library/dto/Document.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client-lib/src/main/java/com/signnow/library/dto/Document.java b/client-lib/src/main/java/com/signnow/library/dto/Document.java index 10f8e88..be7546d 100644 --- a/client-lib/src/main/java/com/signnow/library/dto/Document.java +++ b/client-lib/src/main/java/com/signnow/library/dto/Document.java @@ -208,7 +208,7 @@ public EmbeddedSigningInviteRequest(EmbeddedInvite... invite) { @JsonInclude(JsonInclude.Include.NON_NULL) public static class EmbeddedInvite { public String email; - public String role_id = ""; + public String role_id; public String role; public int order = 1; @JsonProperty("auth_method") From 90892869d23a0c5635de6819411a61bbc1de09ba Mon Sep 17 00:00:00 2001 From: ndovhiitrach Date: Wed, 9 Mar 2022 14:09:35 +0200 Subject: [PATCH 6/8] raise version --- client-lib/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client-lib/pom.xml b/client-lib/pom.xml index e168ccc..db68044 100644 --- a/client-lib/pom.xml +++ b/client-lib/pom.xml @@ -5,7 +5,7 @@ com.signnow api-client-lib - 1.0.3 + 1.0.4 jar From 9dc65f4e9e5f9989b94aab70c0a1f37b6cb9f447 Mon Sep 17 00:00:00 2001 From: ndovhiitrach Date: Wed, 9 Mar 2022 14:30:34 +0200 Subject: [PATCH 7/8] tune response data --- client-lib/pom.xml | 2 +- .../com/signnow/library/dto/Document.java | 22 ++++++------------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/client-lib/pom.xml b/client-lib/pom.xml index db68044..36bce63 100644 --- a/client-lib/pom.xml +++ b/client-lib/pom.xml @@ -5,7 +5,7 @@ com.signnow api-client-lib - 1.0.4 + 1.0.5 jar diff --git a/client-lib/src/main/java/com/signnow/library/dto/Document.java b/client-lib/src/main/java/com/signnow/library/dto/Document.java index be7546d..93b5993 100644 --- a/client-lib/src/main/java/com/signnow/library/dto/Document.java +++ b/client-lib/src/main/java/com/signnow/library/dto/Document.java @@ -221,25 +221,17 @@ public EmbeddedInvite(String email, String role) { } public static class EmbeddedSigningInviteResponse { - public final List data = new ArrayList<>(); + public List data = new ArrayList<>(); } @JsonInclude(JsonInclude.Include.NON_NULL) public static class InviteResponseData { - public final String id; - public final String email; + public String id; + public String email; @JsonProperty("role_id") - public final String roleId; - public final int order; - public final String status; - - public InviteResponseData(String id, String email, String roleId, int order, String status) { - this.id = id; - this.email = email; - this.roleId = roleId; - this.order = order; - this.status = status; - } + public String roleId; + public int order; + public String status; } public static class EmbeddedInviteLinkRequest { @@ -250,7 +242,7 @@ public static class EmbeddedInviteLinkRequest { } public static class EmbeddedInviteLinkResponse { - public final Map data = new HashMap<>(); + public Map data = new HashMap<>(); public String getLink() { return data.get("link"); From 8d4cd33f33dd8ac16f15f0dd0a819e4d61d74e43 Mon Sep 17 00:00:00 2001 From: VitaliiSkuratovskyi <98324362+VitaliiSkuratovskyi@users.noreply.github.com> Date: Fri, 3 Jun 2022 16:08:54 +0300 Subject: [PATCH 8/8] Add fields to Document (#1) * Update document. Add fields to Document. * Update version Co-authored-by: Vitalii Skuratovskyi --- client-lib/pom.xml | 2 +- .../com/signnow/library/dto/Document.java | 46 ++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/client-lib/pom.xml b/client-lib/pom.xml index 36bce63..1528d0a 100644 --- a/client-lib/pom.xml +++ b/client-lib/pom.xml @@ -5,7 +5,7 @@ com.signnow api-client-lib - 1.0.5 + 1.0.6 jar diff --git a/client-lib/src/main/java/com/signnow/library/dto/Document.java b/client-lib/src/main/java/com/signnow/library/dto/Document.java index 93b5993..780af8b 100644 --- a/client-lib/src/main/java/com/signnow/library/dto/Document.java +++ b/client-lib/src/main/java/com/signnow/library/dto/Document.java @@ -27,6 +27,8 @@ public class Document extends GenericId { * Free form invites info */ public List requests; + @JsonProperty("fields") + public List fields; public static class SigningLinkRequest { @JsonProperty("document_id") @@ -155,7 +157,6 @@ public FieldText(String name, String prefill) { } } - @JsonInclude(JsonInclude.Include.NON_NULL) public static class Field { public int x; @@ -176,6 +177,49 @@ public String getType() { } } + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class FieldMetadata { + public String id; + public String type; + @JsonProperty("role_id") + public String roleId; + public String role; + public String originator; + public String fulfiller; + @JsonProperty("json_attributes") + public Attributes attributes; + @JsonProperty("field_request_id") + public String fieldRequestId; + @JsonProperty("element_id") + public String elementId; + @JsonProperty("field_request_canceled") + public boolean fieldRequestCanceled; + @JsonProperty("template_field_id") + public String templateFieldId; + @JsonProperty("field_id") + public String fieldId; + + public String getType() { + return type.toString(); + } + + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Attributes { + @JsonProperty("page_number") + public String pageNumber; + public int x; + public int y; + public int width; + public int height; + public boolean required; + public String name; + public String label; + @JsonProperty("prefilled_text") + public String prefilledText; + } + } + @JsonIgnoreProperties(ignoreUnknown = true) public static class FieldInvite extends GenericId { public String status;