Skip to content
Snippets Groups Projects
Commit ab380105 authored by Holzheu Hannah's avatar Holzheu Hannah
Browse files

added page Handling for getRandomPlants Endpoint #19

parent b9e4d485
No related branches found
No related tags found
1 merge request!22added page Handling for getRandomPlants Endpoint #19
......@@ -13,10 +13,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Random;
import java.util.*;
@Service
@RequiredArgsConstructor
......@@ -37,23 +34,16 @@ public class PlantsService {
}
public Collection<Plant> getRandomPlants(int numberOfPlants) {
List<Plant> allPlants = plantRepository.findAll();
numberOfPlants= Math.min(MAX_PAGE_SIZE, numberOfPlants);
long plantCount= plantRepository.count();
int lastPage= (int)(plantCount/numberOfPlants)-1;
int randomPage= (int) (Math.random()*lastPage);
if (allPlants.size() <= numberOfPlants) {
return allPlants;
} else {
List<Plant> randomPlants = new ArrayList<>();
Random random = new Random();
CustomPageDto<Plant> randomPlantPage= getPlants(randomPage, numberOfPlants);
List<Plant> allPlantsOfPage = new ArrayList<>(randomPlantPage.content());
Collections.shuffle(allPlantsOfPage);
while (randomPlants.size() < numberOfPlants) {
Plant randomPlant = allPlants.get(random.nextInt(allPlants.size()));
if (!randomPlants.contains(randomPlant)) {
randomPlants.add(randomPlant);
}
}
return randomPlants;
}
return allPlantsOfPage;
}
public Collection<Plant> getPlantsSearchedFor(SearchRequest searchRequest) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment