Skip to content
Snippets Groups Projects

Issue #18, #19 resolved

1 file
+ 18
9
Compare changes
  • Side-by-side
  • Inline
@@ -3,25 +3,34 @@ package nl.utwente.mod4.pokemon.routes;
import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.*;
import nl.utwente.mod4.pokemon.dao.PokemonDao;
import nl.utwente.mod4.pokemon.model.Pokemon;
import nl.utwente.mod4.pokemon.model.ResourceCollection;
@Path("/pokemon")
public class PokemonRoute {
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Pokemon> getPokemon(@QueryParam("sortBy") String sortOrder) {
Integer pageSize = Integer.MAX_VALUE;
List<Pokemon> pokemons = PokemonDao.INSTANCE.getPokemon(pageSize, 1);
public ResourceCollection<Pokemon> getPokemon(
@QueryParam("sortBy") String sortOrder,
@QueryParam("pageSize") int pageSize,
@QueryParam("pageNumber") int pageNum
) {
Integer ps = pageSize > 0 ? pageSize : Integer.MAX_VALUE;
Integer pn = pageNum > 0 ? pageNum : 1;
Pokemon [] pokemons = PokemonDao.INSTANCE.getPokemon(ps, pn).toArray(new Pokemon[0]);
if (sortOrder != null && sortOrder.equals("name")) {
pokemons.sort(Comparator.comparing(pok -> pok.name));
pokemons = Arrays.stream(pokemons).sorted(Comparator.comparing(p -> p.name)).toArray(Pokemon[]::new);
// pokemons.sort(Comparator.comparing(pok -> pok.name));
}
Integer totalPokemons = PokemonDao.INSTANCE.getTotalPokemon();
ps = pokemons == null ? 0 : pokemons.length;
return pokemons;
return new ResourceCollection<>(pokemons, ps, pn, totalPokemons);
}
@POST
Loading