package mock.controllers.views;
import com.github.aesteve.vertx.nubes.annotations.Controller;
import com.github.aesteve.vertx.nubes.annotations.View;
import com.github.aesteve.vertx.nubes.annotations.params.ContextData;
import com.github.aesteve.vertx.nubes.annotations.params.Params;
import com.github.aesteve.vertx.nubes.annotations.routing.http.GET;
import com.github.aesteve.vertx.nubes.context.ViewResolver;
import io.vertx.ext.web.RoutingContext;
import mock.domains.Dog;
import java.util.HashMap;
import java.util.Map;
@Controller("/views")
public class ViewTestController {
@GET("/default")
@View("index.html")
public void rootView() {}
@GET("/handlebars")
@View("dog-name.hbs")
public void handlebarsView(RoutingContext context, @Params Dog dog) {
context.data().put("dog", dog);
context.next();
}
@GET("/mvel")
@View("dog-name.templ")
public void mvelView(RoutingContext context, @Params Dog dog) {
context.data().put("dog", dog);
context.next();
}
@GET("/dynamic")
@View
public void dynamicViewName(RoutingContext context, @Params Dog dog) {
ViewResolver.resolve(context, "dog-name.hbs");
context.data().put("dog", dog);
context.next();
}
@GET("/dynamic/sync")
@View
public String dynamicSyncViewName(@ContextData Map<String, Object> data, @Params Dog dog) {
data.put("dog", dog);
return "dog-name.hbs";
}
@GET("/dynamic/map")
@View("dog-name.hbs")
public Map<String, Object> returnMap(@Params Dog dog) {
Map<String, Object> data = new HashMap<>();
data.put("dog", dog);
return data;
}
}