From 19c796b457f2df7c2586674232ada5e5ba7aa36b Mon Sep 17 00:00:00 2001 From: Marvin Scham Date: Tue, 27 Jun 2023 16:41:55 +0200 Subject: [PATCH] #75 Added transaction base classes --- .../rwu/easydrop/api/dto/TransactionDTO.java | 28 ++++++++++ .../de/rwu/easydrop/model/Transaction.java | 30 +++++++++++ .../service/mapping/TransactionMapper.java | 54 +++++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 src/main/java/de/rwu/easydrop/api/dto/TransactionDTO.java create mode 100644 src/main/java/de/rwu/easydrop/model/Transaction.java create mode 100644 src/main/java/de/rwu/easydrop/service/mapping/TransactionMapper.java diff --git a/src/main/java/de/rwu/easydrop/api/dto/TransactionDTO.java b/src/main/java/de/rwu/easydrop/api/dto/TransactionDTO.java new file mode 100644 index 0000000..630b2ce --- /dev/null +++ b/src/main/java/de/rwu/easydrop/api/dto/TransactionDTO.java @@ -0,0 +1,28 @@ +package de.rwu.easydrop.api.dto; + +import lombok.Data; + +/** + * Transaction data transfer object. + * + * @since 0.3.0 + */ +@Data +public class TransactionDTO { + /** + * Offer ID. + */ + private String offerId; + /** + * Sales volume. + */ + private double volume; + /** + * Earnings (volume - cost). + */ + private double earnings; + /** + * Transaction timestamp. + */ + private String transactionTime; +} diff --git a/src/main/java/de/rwu/easydrop/model/Transaction.java b/src/main/java/de/rwu/easydrop/model/Transaction.java new file mode 100644 index 0000000..a8236fb --- /dev/null +++ b/src/main/java/de/rwu/easydrop/model/Transaction.java @@ -0,0 +1,30 @@ +package de.rwu.easydrop.model; + +import lombok.Data; + +/** + * A transaction. + * + * @since 0.3.0 + */ +@Data +public class Transaction { + /** + * Offer ID. + * + * @see Offer + */ + private String offerId; + /** + * Sales volume. + */ + private double volume; + /** + * Earnings (volume - cost). + */ + private double earnings; + /** + * Transaction timestamp. + */ + private String transactionTime; +} diff --git a/src/main/java/de/rwu/easydrop/service/mapping/TransactionMapper.java b/src/main/java/de/rwu/easydrop/service/mapping/TransactionMapper.java new file mode 100644 index 0000000..47c68f5 --- /dev/null +++ b/src/main/java/de/rwu/easydrop/service/mapping/TransactionMapper.java @@ -0,0 +1,54 @@ +package de.rwu.easydrop.service.mapping; + +import de.rwu.easydrop.api.dto.TransactionDTO; +import de.rwu.easydrop.model.Transaction; + +/** + * Maps transaction DTOs and objects. + * + * @since 0.3.0 + */ +public final class TransactionMapper { + /** + * Private constructor to prevent unwanted instantiation. + * + * @throws UnsupportedOperationException always + */ + private TransactionMapper() throws UnsupportedOperationException { + throw new UnsupportedOperationException("This is a mapping class, don't instantiate it."); + } + + /** + * Creates a Transaction object from a corresponding DTO. + * + * @param dto Transaction Data Transfer Object + * @return Product + */ + public static Transaction mapTXFromDTO(final TransactionDTO dto) { + Transaction tx = new Transaction(); + + tx.setOfferId(dto.getOfferId()); + tx.setVolume(dto.getVolume()); + tx.setEarnings(dto.getEarnings()); + tx.setTransactionTime(dto.getTransactionTime()); + + return tx; + } + + /** + * Creates a ProductDTO object from a corresponding Product. + * + * @param tx Transaction + * @return TransactionDTO + */ + public static TransactionDTO mapTXToDTO(final Transaction tx) { + TransactionDTO dto = new TransactionDTO(); + + dto.setOfferId(tx.getOfferId()); + dto.setVolume(tx.getVolume()); + dto.setEarnings(tx.getEarnings()); + dto.setTransactionTime(tx.getTransactionTime()); + + return dto; + } +}