summaryrefslogtreecommitdiff
path: root/src/main/java/com/rinha/backend/service/SummaryService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/rinha/backend/service/SummaryService.java')
-rw-r--r--src/main/java/com/rinha/backend/service/SummaryService.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/main/java/com/rinha/backend/service/SummaryService.java b/src/main/java/com/rinha/backend/service/SummaryService.java
new file mode 100644
index 0000000..d3fb32e
--- /dev/null
+++ b/src/main/java/com/rinha/backend/service/SummaryService.java
@@ -0,0 +1,41 @@
+package com.rinha.backend.service;
+
+import com.rinha.backend.model.PaymentModel;
+import com.rinha.backend.model.SummaryModel;
+import com.rinha.backend.repository.PaymentRepository;
+import org.springframework.stereotype.Service;
+
+import java.time.OffsetDateTime;
+import java.util.List;
+
+@Service
+public class SummaryService {
+
+ private final PaymentRepository paymentRepository;
+
+ public SummaryService(PaymentRepository paymentRepository) {
+ this.paymentRepository = paymentRepository;
+ }
+
+ public SummaryModel getSummary(OffsetDateTime from, OffsetDateTime to) {
+ SummaryModel summary = new SummaryModel();
+ if (from == null) from = OffsetDateTime.MIN;
+ if (to == null) to = OffsetDateTime.MAX;
+
+ List<PaymentModel> payments = paymentRepository.findAll();
+
+ for (PaymentModel p : payments) {
+ if(p.getData().isBefore(from) || p.getData().isAfter(to)) continue;
+
+ if (p.getProcessor() == 1) {
+ summary.getProcessorDefault().addTotalRequests(1);
+ summary.getProcessorDefault().addTotalAmount(p.getAmount());
+ } else if (p.getProcessor() == 2) {
+ summary.getProcessorFallback().addTotalRequests(1);
+ summary.getProcessorFallback().addTotalAmount(p.getAmount());
+ }
+ }
+
+ return summary;
+ }
+}