use of net.petafuel.styx.core.xs2a.entities.BulkPaymentAdapter in project styx by petafuel.
the class PaymentInitiationRequest method createBulkPayment.
private Optional<String> createBulkPayment() {
if (getPaymentProduct().isXml()) {
PAIN00100303Document document = (new PaymentXMLSerializer()).serialize(UUID.randomUUID().toString(), (BulkPayment) payment);
PaymentInstructionInformation xmlPayment = document.getCctInitiation().getPmtInfos().get(0);
if (this.getPaymentProduct().equals(PaymentProduct.PAIN_001_SEPA_CREDIT_TRANSFERS) && (xmlPayment.getRequestedExecutionDate() == null || "".equals(xmlPayment.getRequestedExecutionDate()))) {
xmlPayment.setRequestedExecutionDate(document.getCctInitiation().getGrpHeader().getCreationTime());
document.getCctInitiation().getPmtInfos().set(0, xmlPayment);
}
SEPAWriter writer = new SEPAWriter(document);
try {
return Optional.of(new String(writer.writeSEPA()));
} catch (SEPAWriteException exception) {
LOG.warn("Error creating raw body for PaymentInitiationPain001Request message={} cause={}", exception.getMessage(), exception.getCause().getCause());
return Optional.empty();
}
} else {
try (Jsonb jsonb = JsonbBuilder.create(new JsonbConfig().withAdapters(new BulkPaymentAdapter()))) {
return Optional.ofNullable(jsonb.toJson(payment));
} catch (Exception e) {
return Optional.empty();
}
}
}
Aggregations