package org.jboss.resteasy.test.providers.custom.resource;

import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.PathSegment;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.util.List;

@Path("resource")
public class ResponseContainerResource {

   @Context
   UriInfo info;

   @POST
   @Path("hasentity")
   public Response hasEntity(String entity) {
      Response.ResponseBuilder builder = createResponseWithHeader();
      if (entity != null && entity.length() != 0) {
         builder = builder.entity(entity);
      }
      Response response = builder.build();
      return response;
   }

   private Response.ResponseBuilder createResponseWithHeader() {
      // get value of @Path(value)
      List<PathSegment> segments = info.getPathSegments();
      PathSegment last = segments.get(segments.size() - 1);
      // convert the value to ContextOperation
      Response.ResponseBuilder builder = Response.ok();
      // set a header with ContextOperation so that the filter knows what to do
      builder = builder.header(ResponseContainerResponseFilter.OPERATION, last.getPath()
            .toUpperCase());
      return builder;
   }


}
