package mock.controllers.api.json; import com.github.aesteve.vertx.nubes.annotations.Controller; import com.github.aesteve.vertx.nubes.annotations.mixins.ContentType; import com.github.aesteve.vertx.nubes.annotations.params.RequestBody; import com.github.aesteve.vertx.nubes.annotations.routing.http.GET; import com.github.aesteve.vertx.nubes.annotations.routing.http.POST; import io.vertx.core.json.JsonArray; import io.vertx.core.json.JsonObject; import mock.domains.Dog; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Controller("/json/sync/") @ContentType("application/json") public class JsonSyncApiTestController { @GET("noContent") public void noContent() {} @GET("jsonobject") public JsonObject sendJsonObject() { JsonObject json = new JsonObject(); json.put("Bill", "Cocker"); return json; } @GET("jsonarray") public JsonArray sendJsonArray() { JsonObject json = new JsonObject(); json.put("Bill", "Cocker"); List<JsonObject> list = new ArrayList<>(1); list.add(json); return new JsonArray(list); } @GET("map") public Map<String, String> sendMap() { Map<String, String> dogs = new HashMap<>(2); dogs.put("Snoopy", "Beagle"); dogs.put("Bill", "Cocker"); return dogs; } @GET("array") public List<String> sendArray() { List<String> dogs = new ArrayList<>(2); dogs.add("Snoopy"); dogs.add("Bill"); return dogs; } @GET("dog") public Dog sendDomainObject() { return new Dog("Snoopy", "Beagle"); } @GET("dogs") public List<Dog> sendManyDomainObjects() { List<Dog> dogs = new ArrayList<>(2); Dog snoopy = new Dog("Snoopy", "Beagle"); Dog bill = new Dog("Bill", "Cocker"); dogs.add(snoopy); dogs.add(bill); return dogs; } @POST("postdog") public Dog postDog(@RequestBody Dog dog) { return dog; } @GET("nothing") public Dog returnNothing() { return null; } }