splitting the services

This commit is contained in:
Dede
2025-12-04 12:21:53 +00:00
parent f03e876e08
commit 4873abe865
20 changed files with 280 additions and 46 deletions

View File

@@ -2,6 +2,7 @@ package com.pmu.betengine.service;
import com.pmu.betengine.model.Course;
import com.pmu.betengine.model.Resultat;
import com.pmu.betengine.model.SearchParam;
import com.pmu.betengine.repository.ResultatRepository;
import lombok.RequiredArgsConstructor;
@@ -12,7 +13,8 @@ import org.springframework.web.bind.annotation.PathVariable;
import java.util.Optional;
import java.util.Map;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
@@ -68,6 +70,41 @@ public class ResultatService {
return savedResultat;
}
public List<Resultat> search(SearchParam searchParam) {
System.out.println("******************** SEARCH PARAM: " + searchParam);
if (searchParam.getCriteria() == null) {
throw new IllegalArgumentException("Le paramètre 'criteria' est obligatoire et ne peut pas être null");
}
try {
String criteria = searchParam.getCriteria();
if ("1".equals(criteria)) {
// Retourne tous les résultats
return resultatRepository.findAll();
} else if ("2".equals(criteria) && searchParam.getDate() != null) {
LocalDate date = searchParam.getDate();
LocalDateTime startOfDay = date.atStartOfDay();
LocalDateTime endOfDay = startOfDay.plusDays(1);
return resultatRepository.findByCourseDate(startOfDay, endOfDay);
} else if ("3".equals(criteria) && searchParam.getId() != null) {
return resultatRepository.findByCourseId(searchParam.getId())
.map(List::of)
.orElse(List.of());
}
// Cas par défaut
return resultatRepository.findAll();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("Erreur lors de la recherche des résultats");
}
}
}