package com.sample.web.app;
import com.sample.web.api.Hotel;
import com.sample.web.api.HotelProvider;
import com.sample.web.fwk.api.Controller;
import com.sample.web.fwk.view.Render;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.osgi.cdi.api.extension.Service;
import org.osgi.cdi.api.extension.annotation.Required;
@Path("hotels")
public class HotelController implements Controller {
@Inject @Required Service<HotelProvider> providers;
@Inject App app;
@GET
@Path("all")
public Response all() {
List<Hotel> hotels = new ArrayList<Hotel>();
for (HotelProvider provider : providers) {
hotels.addAll(provider.hotels());
}
if (app.isValid()) {
return Render.view("hotel/all.xhtml", getClass())
.param("hotels", hotels)
.param("providers", providers)
.render();
} else {
return Render.view("hotel/none.xhtml", getClass())
.param("hotels", hotels)
.param("providers", providers)
.render();
}
}
@GET
@Path("index")
public Response index() {
return Render.view("index.xhtml", getClass())
.render();
}
}