Created
May 12, 2020 08:42
-
-
Save vtno/7e7145efc84939236b2bfb71e977e380 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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