package org.jooby.swagger;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import javax.inject.Singleton;
import org.jooby.Err;
import org.jooby.mvc.Body;
import org.jooby.mvc.GET;
import org.jooby.mvc.POST;
import org.jooby.mvc.Path;
import com.google.common.collect.Lists;
@Path("/api/pets")
@Singleton
public class Pets {
private Map<Integer, Pet> pets = new HashMap<>();
@GET
@Path("/{id}")
public Pet get(final int id) {
Pet pet = pets.get(id);
if (pet == null) {
throw new Err(404, "" + id);
}
return pet;
}
@GET
public Iterable<Pet> list(final Optional<Integer> size) {
return Lists.newArrayList(pets.values()).subList(0, size.orElse(pets.values().size()));
}
@POST
public Pet create(@Body final Pet pet) {
pet.setId(pets.size() + 1);
pets.put(pet.getId(), pet);
return pet;
}
}