package ogloszenia.rest;

import java.util.List;

import javax.enterprise.context.RequestScoped;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;

import ogloszenia.model.Sprzedawca;

@RequestScoped
@Path("/sprzedawcas")
@Produces({ "application/xml", "application/json" })
@Consumes({ "application/xml", "application/json" })
public class SprzedawcaEndpoint {

	@POST
	public Response create(final Sprzedawca sprzedawca) {
		//TODO: process the given sprzedawca 
		//you may want to use the following return statement, assuming that Sprzedawca#getId() or a similar method 
		//would provide the identifier to retrieve the created Sprzedawca resource:
		//return Response.created(UriBuilder.fromResource(SprzedawcaEndpoint.class).path(String.valueOf(sprzedawca.getId())).build()).build();
		return Response.created(null).build();
	}

	@GET
	@Path("/{id:[0-9][0-9]*}")
	public Response findById(@PathParam("id") final Long id) {
		//TODO: retrieve the sprzedawca 
		Sprzedawca sprzedawca = null;
		if (sprzedawca == null) {
			return Response.status(Status.NOT_FOUND).build();
		}
		return Response.ok(sprzedawca).build();
	}

	@GET
	public List<Sprzedawca> listAll(@QueryParam("start") final Integer startPosition,
			@QueryParam("max") final Integer maxResult) {
		//TODO: retrieve the sprzedawcas 
		final List<Sprzedawca> sprzedawcas = null;
		return sprzedawcas;
	}

	@PUT
	@Path("/{id:[0-9][0-9]*}")
	public Response update(@PathParam("id") Long id, final Sprzedawca sprzedawca) {
		//TODO: process the given sprzedawca 
		return Response.noContent().build();
	}

	@DELETE
	@Path("/{id:[0-9][0-9]*}")
	public Response deleteById(@PathParam("id") final Long id) {
		//TODO: process the sprzedawca matching by the given id 
		return Response.noContent().build();
	}

}
