package controllers;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import dao.BookDao;
import models.Book;
import models.BookDto;
import ninja.Context;
import ninja.Result;
import ninja.Results;
import ninja.validation.FieldViolation;
import ninja.validation.JSR303Validation;
import ninja.validation.Validation;
import java.util.List;
@Singleton
public class BookController {
@Inject
BookDao bookDao;
public Result index() {
List<Book> books = bookDao.findAll();
return Results.html().render("books", books);
}
public Result newBook() {
BookDto dto = new BookDto();
return Results.html()
.template("views/BookController/form.ftl.html")
.render("dto", dto);
}
public Result create(@JSR303Validation BookDto dto,
Validation validation) {
if(validation.hasViolations()) {
List<FieldViolation> errors = validation.getBeanViolations();
return Results.html()
.template("views/BookController/form.ftl.html")
.render("dto", dto)
.render("errors", errors);
}
Book book = new Book();
book.title = dto.title;
book.author = dto.author;
if(dto.price.equals("")) {
book.price = null;
} else {
book.price = Integer.parseInt(dto.price);
}
bookDao.add(book);
return Results.redirect("/book");
}
}