import com.logicbig.example.Item;
import com.logicbig.example.DataService;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.util.List;
@Path("items")
public class ItemRestService {
@Context
private UriInfo uriInfo;
private DataService dataService = DataService.getInstance();
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Item> getItems() {
return dataService.getItemList();
}
@Path("{sku}")
@PUT
@Consumes(MediaType.APPLICATION_JSON)
public Response createItem(Item item,
@PathParam("sku") String sku) {
System.out.println(item);
if (dataService.itemExists(sku)) {
//status code 204
System.out.println("no content");
return Response.noContent()
.build();
} else {
dataService.createItem(item, sku);
//status code 201
//sends back new URI in header key = 'LOCATION'
System.out.println("good");
return Response.created(uriInfo.getAbsolutePath())
.build();
}
}
@GET
@Path("{sku}")
@Produces(MediaType.APPLICATION_JSON)
public Response getCustomer(@PathParam("sku") String sku) {
Item item = dataService.getItemBySku(sku);
if (item == null) {
return Response.status(Response.Status.NOT_FOUND)
.build();
} else {
return Response.ok()
.entity(item)
.build();
}
}
}