Skip to content

Instantly share code, notes, and snippets.

@vtno
Created May 12, 2020 08:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vtno/7e7145efc84939236b2bfb71e977e380 to your computer and use it in GitHub Desktop.
Save vtno/7e7145efc84939236b2bfb71e977e380 to your computer and use it in GitHub Desktop.
// rt = refund_transaction
// st = source_transaction (refunded transaction)
// rd = refund_details
// Mapper
public RefundWithSourceTransaction map(int index, ResultSet r, StatementContext ctx) {
RefundDetail refundDetail = new RefundDetail(
UUID.fromString(r.getString("rd.id")),
UUID.fromString(r.getString("rd.transaction_id")),
UUID.fromString(r.getString("rd.source_transaction_id")),
RefundType.valueOf(r.getString("rd.refund_type")),
RefundDestination.valueOf(r.getString("rd.refund_destination")),
r.getString("rd.idempotency_key"),
r.getTimestamp("rd.created_at"),
r.getTimestamp("rd.updated_at"),
r.getString("rd.reason"),
r.getBoolean("rd.one_sided")
);
Transaction refundedTransaction = new Transaction(
UUID.fromString(r.getString("st.transaction_id")),
r.getString("st.transaction_reference"),
new Money(r.getString("st.amount")),
r.getString("st.user_id"),
TransactionStatus.valueOf(r.getString("transaction_status")),
r.getTimestamp("st.created_at"),
TransactionType.valueOf(r.getString("transaction_type")),
TransactionCategory.valueOf(r.getString("category")),
r.getString("st.bill_id"),
r.getString("st.order_type"),
r.getString("st.description"),
r.getString("st.reservation_oms_identifier"),
r.getInt("st.reservation_id"),
r.getObject( "st.reservation_uuid", UUID.class),
r.getTimestamp("st.created_at"),
r.getTimestamp("st.updated_at"),
r.getTimestamp( "st.due_date"),
// Optional RefundDetails and Transaction (refunded transaction) will be deprecated
null,
null
);
// Always return RefundTransaction that requires RefundDetail and RefundedTransaction to be return from the query
return new RefundTransaction(
UUID.fromString(r.getString("rt.transaction_id")),
r.getString("rt.transaction_reference"),
new Money(r.getString("rt.amount")),
r.getString("rt.user_id"),
TransactionStatus.valueOf(r.getString("rt.transaction_status")),
r.getTimestamp("rt.created_at"),
TransactionType.valueOf(r.getString("rt.transaction_type")),
TransactionCategory.valueOf(r.getString("rt.category")),
r.getString("rt.bill_id"),
r.getString("rt.order_type"),
r.getString("rt.description"),
r.getString("rt.reservation_oms_identifier"),
r.getObject( "rt.reservation_uuid", UUID.class),
r.getTimestamp("rt.created_at"),
r.getTimestamp("rt.updated_at"),
r.getTimestamp( "rt.due_date"),
refundDetail,
refundedTransaction
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment