Package com.azwul.api.service.impl

Source Code of com.azwul.api.service.impl.AzSignServiceImpl

/**
*
*/
package com.azwul.api.service.impl;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import com.azwul.api.model.Credentials;
import com.azwul.api.model.SessionToken;
import com.azwul.api.model.StoreStrategy;
import com.azwul.api.model.result.HttpResult;
import com.azwul.api.model.result.LoginResult;
import com.azwul.api.model.result.SignatureResult;
import com.azwul.api.model.tx.AzSignPlusTransaction;
import com.azwul.api.model.tx.AzSignTransaction;
import com.azwul.api.service.AzSignService;
import com.azwul.api.util.ResponseUtil;

/**
* @author Theotime Jurzak
*
*/
public class AzSignServiceImpl extends AzServiceImpl implements AzSignService {

  public SignatureResult doSign(AzSignTransaction azSignTransaction,
      Credentials credentials) {
    return doSign(azSignTransaction.getFile(),
        azSignTransaction.getFileName(),
        azSignTransaction.getDocumentTitle(),
        azSignTransaction.getRecipientEmail(),
        azSignTransaction.getInternalFolderReference(),
        azSignTransaction.getMessage(), null,
        azSignTransaction.isMailAttachement(),
        azSignTransaction.getStoreStrategy(), credentials, null, false);
  }

  public SignatureResult doSign(AzSignTransaction azSignTransaction,
      SessionToken sessionToken) {
    return doSign(azSignTransaction.getFile(),
        azSignTransaction.getFileName(),
        azSignTransaction.getDocumentTitle(),
        azSignTransaction.getRecipientEmail(),
        azSignTransaction.getInternalFolderReference(),
        azSignTransaction.getMessage(), null,
        azSignTransaction.isMailAttachement(),
        azSignTransaction.getStoreStrategy(), null, sessionToken, true);
  }

  public SignatureResult doSignPlus(
      AzSignPlusTransaction azSignPlusTransaction, Credentials credentials) {
    return doSign(azSignPlusTransaction.getFile(),
        azSignPlusTransaction.getFileName(),
        azSignPlusTransaction.getDocumentTitle(),
        azSignPlusTransaction.getRecipientEmail(),
        azSignPlusTransaction.getInternalFolderReference(),
        azSignPlusTransaction.getMessage(),
        azSignPlusTransaction.getCode(),
        azSignPlusTransaction.isMailAttachement(),
        azSignPlusTransaction.getStoreStrategy(), credentials, null,
        false);
  }

  public SignatureResult doSignPlus(
      AzSignPlusTransaction azSignPlusTransaction,
      SessionToken sessionToken) {
    return doSign(azSignPlusTransaction.getFile(),
        azSignPlusTransaction.getFileName(),
        azSignPlusTransaction.getDocumentTitle(),
        azSignPlusTransaction.getRecipientEmail(),
        azSignPlusTransaction.getInternalFolderReference(),
        azSignPlusTransaction.getMessage(),
        azSignPlusTransaction.getCode(),
        azSignPlusTransaction.isMailAttachement(),
        azSignPlusTransaction.getStoreStrategy(), null, sessionToken,
        true);
  }

  protected SignatureResult doSign(File file, String fileName,
      String documentTitle, String recipientEmail,
      String internalFolderReference, String message, String code,
      boolean isMailAttachement, StoreStrategy storeStrategy,
      Credentials credentials, SessionToken sessionToken,
      boolean keepAlive) {

    if (credentials != null) {
      LoginResult loginResult = login(credentials);
      if (loginResult.isOk()) {
        sessionToken = loginResult.getHttpResult().getSessionToken();
      } else {
        SignatureResult result = new SignatureResult();
        result.setHttpResult(loginResult.getHttpResult());
        result.setBasicResponse(loginResult.getBasicResponse());
        return result;
      }
    }

    Map<String, String> params = new HashMap<String, String>();
    params.put("recipientEmail", recipientEmail);
    params.put("resourceName", documentTitle);
    params.put("message", message);
    if (internalFolderReference != null
        && !"".equals(internalFolderReference)) {
      params.put("internalFolderReference", internalFolderReference);
    }
    if (fileName != null && !"".equals(fileName)) {
      params.put("fileName", fileName);
    }

    params.put("mailAttachement", Boolean.toString(isMailAttachement));

    params.put("storeStrategy", storeStrategy.name());

    String resSign = null;
    HttpResult httpResult;
    if (code != null) {
      params.put("code", code);
      httpResult = httpHelper.doPostMultipart("/basic/signPlus",
          httpConfiguration, sessionToken, file, "file", params);
      resSign = ResponseUtil.getBasicResponse(httpResult);
    } else {
      httpResult = httpHelper.doPostMultipart("/basic/sign",
          httpConfiguration, sessionToken, file, "file", params);
      resSign = ResponseUtil.getBasicResponse(httpResult);
    }

    SignatureResult result = new SignatureResult();
    result.setHttpResult(httpResult);
    result.setBasicResponse(resSign);

    String resSignSplit[] = resSign.split("\\s");

    if (resSignSplit[1].equals("OK")) {
      result.setOk(true);
      result.setSignatureId(resSignSplit[3]);
    }

    if (!keepAlive) {
      logout(httpResult.getSessionToken());
    }

    return result;
  }
}
TOP

Related Classes of com.azwul.api.service.impl.AzSignServiceImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.