package org.onehippo.forge.konakart.hst.restapi;
import com.konakart.al.KKAppEng;
import com.konakart.app.KKException;
import com.konakart.appif.ZoneIf;
import org.hippoecm.hst.jaxrs.services.AbstractResource;
import org.onehippo.forge.konakart.hst.model.SelectRepresentation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Path("/checkout/")
public class CheckoutResource extends AbstractResource {
protected Logger log = LoggerFactory.getLogger(CheckoutResource.class);
@GET
@Path("states/{country}/")
@Produces("application/json")
public List<SelectRepresentation> getStatesResources(@Context HttpServletRequest servletRequest,
@Context HttpServletResponse servletResponse, @Context UriInfo uriInfo,
@PathParam("country") Integer country) {
if (country == null || country == -1) {
return Collections.emptyList();
}
List<SelectRepresentation> states = new ArrayList<SelectRepresentation>();
KKAppEng kkAppEng = (KKAppEng) servletRequest.getSession().getAttribute(KKAppEng.KONAKART_KEY);
if (kkAppEng != null) {
// retrieve the list of province
try {
ZoneIf[] zones = kkAppEng.getEng().getZonesPerCountry(country);
for (ZoneIf zone : zones) {
SelectRepresentation state = new SelectRepresentation();
state.setId(zone.getZoneId());
state.setName(zone.getZoneName());
states.add(state);
}
} catch (KKException e) {
log.error("Unable to retrieve the list of states for the country id - " + country, e);
}
}
return states;
}
}