Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion src/main/java/com/mifiel/api/dao/Documents.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.mifiel.api.dao;

import java.io.File;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;

Expand Down Expand Up @@ -51,6 +53,11 @@ public void saveFile(final String id, final String localPath) throws MifielExcep
final HttpEntity entityResponse = apiClient.get(DOCUMENTS_PATH + "/" + id + "/file");
MifielUtils.saveEntityResponseToFile(entityResponse, localPath);
}

public void saveSignedFile(final String id, final String localPath) throws MifielException {
final HttpEntity entityResponse = apiClient.get( new StringBuilder().append( DOCUMENTS_PATH ).append("/").append(id).append("/file_signed?download=true").toString() );
MifielUtils.saveEntityResponseToFile(entityResponse, localPath);
}

public void saveXml(final String id, final String localPath) throws MifielException {
final HttpEntity entityResponse = apiClient.get(DOCUMENTS_PATH + "/" + id + "/xml");
Expand Down Expand Up @@ -104,6 +111,9 @@ private HttpEntity buildHttpBody(final Document document) throws MifielException
final String fileName = document.getFileName();
final String originalHash = document.getOriginalHash();
final String callbackUrl = document.getCallbackUrl();
final String signCallbackUrl = document.getSignCallbackUrl();

final String allowBusiness = document.getAllowBusiness()!=null? document.getAllowBusiness().toString() : "false";

if (signatures != null) {
for (int i = 0; i < signatures.size(); i++) {
Expand All @@ -119,6 +129,14 @@ private HttpEntity buildHttpBody(final Document document) throws MifielException
if (callbackUrl != null) {
MifielUtils.appendTextParamToHttpBody(entityBuilder, "callback_url", callbackUrl);
}

if (signCallbackUrl != null) {
MifielUtils.appendTextParamToHttpBody(entityBuilder, "sign_callback_url", signCallbackUrl);
}

if( allowBusiness!=null){
MifielUtils.appendTextParamToHttpBody(entityBuilder, "allow_business", allowBusiness);
}

if (!StringUtils.isEmpty(filePath)) {
final File pdfFile = new File(filePath);
Expand All @@ -130,7 +148,6 @@ private HttpEntity buildHttpBody(final Document document) throws MifielException
} else {
throw new MifielException("You must provide file or original hash and file name");
}

return entityBuilder.build();
}

Expand Down
56 changes: 50 additions & 6 deletions src/main/java/com/mifiel/api/objects/Document.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.ArrayList;

import org.codehaus.jackson.annotate.JsonAnyGetter;
import org.codehaus.jackson.annotate.JsonAnySetter;
Expand All @@ -18,7 +19,7 @@ public class Document {
private String id;
@JsonProperty("original_hash")
private String originalHash;
@JsonProperty("name")
@JsonProperty("file_file_name")
private String fileName;
@JsonProperty("signed_by_all")
private Boolean signedByAll;
Expand Down Expand Up @@ -46,6 +47,10 @@ public class Document {
private List<Signature> signatures = null;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
@JsonProperty("allow_business")
private Boolean allowBusiness;
@JsonProperty("sign_callback_url")
private String signCallbackUrl;

@JsonProperty("id")
public String getId() {
Expand All @@ -67,12 +72,12 @@ public void setOriginalHash(String originalHash) {
this.originalHash = originalHash;
}

@JsonProperty("name")
@JsonProperty("file_file_name")
public String getFileName() {
return fileName;
}

@JsonProperty("name")
@JsonProperty("file_file_name")
public void setFileName(String fileName) {
this.fileName = fileName;
}
Expand Down Expand Up @@ -212,8 +217,47 @@ public String toString() {
return "Document [id=" + id + ", originalHash=" + originalHash + ", fileName=" + fileName + ", signedByAll="
+ signedByAll + ", signed=" + signed + ", signedAt=" + signedAt + ", status=" + status + ", owner="
+ owner + ", callbackUrl=" + callbackUrl + ", file=" + file + ", fileDownload=" + fileDownload
+ ", fileSigned=" + fileSigned + ", fileSignedDownload=" + fileSignedDownload + ", fileZipped="
+ fileZipped + ", signatures=" + signatures + ", additionalProperties=" + additionalProperties + "]";
}
+ ", fileSigned=" + fileSigned + ", fileSignedDownload=" + fileSignedDownload
+ ", allow_business=" + allowBusiness + ", fileZipped=" + fileZipped
+ ", signatures=" + signatures + ", additionalProperties=" + additionalProperties + "]";
}

@JsonProperty("allow_business")
public Boolean getAllowBusiness(){
return allowBusiness;
}
@JsonProperty("allow_business")
public void setAllowBusiness(Boolean allowBusiness){
this.allowBusiness = allowBusiness;
}
@JsonProperty("sign_callback_url")
public String getSignCallbackUrl() {
return signCallbackUrl;
}
@JsonProperty("sign_callback_url")
public void setSignCallbackUrl(String signCallbackUrl) {
this.signCallbackUrl = signCallbackUrl;
}

public List<Signer> signers(){
List<Signer> signers = null;
if( additionalProperties!=null && additionalProperties.get("signers")!=null ){
signers = new ArrayList<Signer>();
List<Object> signersLst = (List<Object>) additionalProperties.get("signers");
for(Object o : signersLst ){
Signer s = new Signer();
Map m = ( (Map) o );
s.setId( m.get("id")!=null ? m.get("id").toString() : null );
s.setName( m.get("name")!=null? m.get("name").toString() : null );
s.setEmail( m.get("email")!=null ? m.get("email").toString() : null );
s.setTaxId( m.get("tax_id")!=null ? m.get("tax_id").toString() : null );
s.setField( m.get("field")!=null ? m.get("field").toString() : null );
s.setSigned( Boolean.parseBoolean( m.get("signed")!=null ? m.get("signed").toString() : "false" ) );
s.setWidgetId( m.get("widget_id")!=null ? m.get("widget_id").toString() : null );
signers.add( s );
}
}
return signers;
}

}
84 changes: 84 additions & 0 deletions src/main/java/com/mifiel/api/objects/Signer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package com.mifiel.api.objects;
/**
*
* @author Francisco Daniel Perez Morales / fdanielpm@yandex.com
*/
public class Signer {

private String id;
private String name;
private String email;
private String taxId;
private String field;
private boolean signed;
private String widgetId;

public Signer() {
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getTaxId() {
return taxId;
}

public void setTaxId(String taxId) {
this.taxId = taxId;
}
public String getField() {
return field;
}

public void setField(String field) {
this.field = field;
}
public boolean isSigned() {
return signed;
}

public void setSigned(boolean signed) {
this.signed = signed;
}

public String getWidgetId() {
return widgetId;
}

public void setWidgetId(String widgetId) {
this.widgetId = widgetId;
}

public String toString(){
return new StringBuilder()
.append("id=").append(id).append(", ")
.append("name=").append(name).append(", ")
.append("email=").append(email).append(", ")
.append("taxId=").append(taxId).append(", ")
.append("field=").append(field).append(", ")
.append("signed=").append(signed).append(", ")
.append("widgetId=").append(widgetId)
.toString();
}
}
4 changes: 3 additions & 1 deletion src/main/java/com/mifiel/api/utils/MifielUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@
import org.apache.commons.lang.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.ContentType;
import org.apache.http.util.EntityUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.ObjectWriter;


import com.mifiel.api.exception.MifielException;

public final class MifielUtils {
Expand Down Expand Up @@ -93,7 +95,7 @@ public static List<Object> convertJsonToObjects(final String json, final String
public static void appendTextParamToHttpBody(final MultipartEntityBuilder entityBuilder, final String paramName,
final String paramValue) {
if (!StringUtils.isEmpty(paramValue)) {
entityBuilder.addTextBody(paramName, paramValue);
entityBuilder.addTextBody(paramName,paramValue,ContentType.APPLICATION_JSON);
}
}

Expand Down