@Override public RefundJson apply(Refund input) { // TODO Return adjusted items and audits return new RefundJson(input, null, null); } }));
@Override public RefundJson apply(final Refund input) { // TODO Return adjusted items and audits return new RefundJson(input, null, null); } }));
@GET @Path("/{paymentId:" + UUID_PATTERN + "}/" + REFUNDS) @Produces(APPLICATION_JSON) public Response getRefunds(@PathParam("paymentId") final String paymentId, @javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException { final List<Refund> refunds = paymentApi.getPaymentRefunds(UUID.fromString(paymentId), context.createContext(request)); final List<RefundJson> result = new ArrayList<RefundJson>(Collections2.transform(refunds, new Function<Refund, RefundJson>() { @Override public RefundJson apply(final Refund input) { // TODO Return adjusted items and audits return new RefundJson(input, null, null); } })); return Response.status(Status.OK).entity(result).build(); }
@GET @Path("/{refundId:" + UUID_PATTERN + "}") @Produces(APPLICATION_JSON) public Response getRefund(@PathParam("refundId") final String refundId, @QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode, @javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException { final TenantContext tenantContext = context.createContext(request); final Refund refund = paymentApi.getRefund(UUID.fromString(refundId), false, tenantContext); final List<AuditLog> auditLogs = auditUserApi.getAuditLogs(refund.getId(), ObjectType.REFUND, auditMode.getLevel(), tenantContext); // TODO Return adjusted items return Response.status(Status.OK).entity(new RefundJson(refund, null, auditLogs)).build(); }
@GET @Path("/{paymentId:" + UUID_PATTERN + "}") @Produces(APPLICATION_JSON) public Response getPayment(@PathParam(ID_PARAM_NAME) final String paymentIdString, @QueryParam(QUERY_PAYMENT_WITH_REFUNDS_AND_CHARGEBACKS) @DefaultValue("false") final Boolean withRefundsAndChargebacks, @javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException { final TenantContext tenantContext = context.createContext(request); final UUID paymentId = UUID.fromString(paymentIdString); final Payment payment = paymentApi.getPayment(paymentId, false, tenantContext); final PaymentJson paymentJson; if (withRefundsAndChargebacks) { final List<RefundJson> refunds = new ArrayList<RefundJson>(); for (final Refund refund : paymentApi.getPaymentRefunds(paymentId, tenantContext)) { refunds.add(new RefundJson(refund)); } final List<ChargebackJson> chargebacks = new ArrayList<ChargebackJson>(); for (final InvoicePayment chargeback : invoicePaymentApi.getChargebacksByPaymentId(paymentId, tenantContext)) { chargebacks.add(new ChargebackJson(payment.getAccountId(), chargeback)); } paymentJson = new PaymentJson(payment, null, // TODO - the keys are really only used for the timeline refunds, chargebacks); } else { paymentJson = new PaymentJson(payment, null); } return Response.status(Status.OK).entity(paymentJson).build(); }
return new RefundJson(refund, null, auditLogs);
return new RefundJson(refund, null, auditLogs);
@Override public RefundJson apply(final Refund refund) { UUID kbAccountId = null; if (!AuditLevel.NONE.equals(auditMode.getLevel()) && paymentIdAccountIdMappings.get(refund.getPaymentId()) == null) { try { kbAccountId = paymentApi.getPayment(refund.getPaymentId(), false, tenantContext).getAccountId(); paymentIdAccountIdMappings.put(refund.getPaymentId(), kbAccountId); } catch (final PaymentApiException e) { log.warn("Unable to retrieve payment for id " + refund.getPaymentId()); } } // Cache audit logs per account if (accountsAuditLogs.get().get(kbAccountId) == null) { accountsAuditLogs.get().put(kbAccountId, auditUserApi.getAccountAuditLogs(kbAccountId, auditMode.getLevel(), tenantContext)); } final List<AuditLog> auditLogs = accountsAuditLogs.get().get(kbAccountId) == null ? null : accountsAuditLogs.get().get(kbAccountId).getAuditLogsForRefund(refund.getId()); return new RefundJson(refund, null, auditLogs); } },
@Override public RefundJson apply(final Refund refund) { UUID kbAccountId = null; if (!AuditLevel.NONE.equals(auditMode.getLevel()) && paymentIdAccountIdMappings.get(refund.getPaymentId()) == null) { try { kbAccountId = paymentApi.getPayment(refund.getPaymentId(), false, tenantContext).getAccountId(); paymentIdAccountIdMappings.put(refund.getPaymentId(), kbAccountId); } catch (final PaymentApiException e) { log.warn("Unable to retrieve payment for id " + refund.getPaymentId()); } } // Cache audit logs per account if (accountsAuditLogs.get().get(kbAccountId) == null) { accountsAuditLogs.get().put(kbAccountId, auditUserApi.getAccountAuditLogs(kbAccountId, auditMode.getLevel(), tenantContext)); } final List<AuditLog> auditLogs = accountsAuditLogs.get().get(kbAccountId) == null ? null : accountsAuditLogs.get().get(kbAccountId).getAuditLogsForRefund(refund.getId()); return new RefundJson(refund, null, auditLogs); } },
final List<AuditLog> auditLogs = accountAuditLogs.getAuditLogsForRefund(refund.getId()); refunds.add(new RefundJson(refund, null, auditLogs));
@Test(groups = "fast") public void testJson() throws Exception { final String refundId = UUID.randomUUID().toString(); final String paymentId = UUID.randomUUID().toString(); final BigDecimal amount = BigDecimal.TEN; final String currency = "USD"; final boolean isAdjusted = true; final DateTime requestedDate = clock.getUTCNow(); final DateTime effectiveDate = clock.getUTCNow(); final RefundStatus status = RefundStatus.COMPLETED; final List<InvoiceItemJson> adjustments = ImmutableList.<InvoiceItemJson>of(createInvoiceItemJson()); final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow()); final RefundJson refundJson = new RefundJson(refundId, paymentId, amount, currency, status.toString(), isAdjusted, requestedDate, effectiveDate, adjustments, auditLogs); Assert.assertEquals(refundJson.getRefundId(), refundId); Assert.assertEquals(refundJson.getPaymentId(), paymentId); Assert.assertEquals(refundJson.getAmount(), amount); Assert.assertEquals(refundJson.getCurrency(), currency); Assert.assertEquals(refundJson.isAdjusted(), isAdjusted); Assert.assertEquals(refundJson.getRequestedDate(), requestedDate); Assert.assertEquals(refundJson.getEffectiveDate(), effectiveDate); Assert.assertEquals(refundJson.getAdjustments(), adjustments); Assert.assertEquals(refundJson.getAuditLogs(), auditLogs); final String asJson = mapper.writeValueAsString(refundJson); final RefundJson fromJson = mapper.readValue(asJson, RefundJson.class); Assert.assertEquals(fromJson, refundJson); }