package br.com.caelum.vraptor.restbucks.web;
import static br.com.caelum.vraptor.view.Results.xml;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.restbucks.Item;
import br.com.caelum.vraptor.restbucks.Order;
import br.com.caelum.vraptor.restbucks.OrderDatabase;
import br.com.caelum.vraptor.view.Status;
@Resource
public class ItemController {
private final Result result;
private final Status status;
private final OrderDatabase database;
public ItemController(Result result, Status status,
OrderDatabase database) {
this.result = result;
this.status = status;
this.database = database;
}
@Path("/orders/{order.id}/items/{item.id}")
public void get(Order order, Item item) {
order = database.getOrder(order.getId());
if (order != null) {
result.use(xml()).from(order.findItem(item.getId())).serialize();
} else {
status.notFound();
}
}
@Path("/orders/{order.id}/items")
public void index(Order order) {
order = database.getOrder(order.getId());
if (order != null) {
result.use(xml()).from(order.getItems(), "items").serialize();
} else {
status.notFound();
}
}
}