package br.com.caelum.example.controller;
import static br.com.caelum.vraptor.view.Results.representation;
import static br.com.caelum.vraptor.view.Results.status;
import java.util.List;
import br.com.caelum.example.infra.Database;
import br.com.caelum.example.model.Item;
import br.com.caelum.vraptor.Consumes;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
@Resource
public class ItemsController {
private final Database database;
private final Result result;
public ItemsController(Database database, Result result) {
this.database = database;
this.result = result;
}
@Get
@Path("/items")
public void list() {
List<Item> list = database.lista();
result.use(representation()).from(list, "items").serialize();
}
@Get
@Path("/items/{id}")
public void show(int id) {
Item item = database.get(id);
result.use(representation()).from(item).serialize();
}
@Post
@Consumes
@Path("/items")
public void create(Item item) {
database.adiciona(item);
result.use(status()).created("/items/" + item.getId());
}
}