EventUserRestViewV1.java 1.51 KB
package fi.codecrew.moya.rest.meta.v1;

import java.util.List;

import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.ws.rs.Consumes;
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.core.MediaType;
import javax.ws.rs.core.PathSegment;

import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.model.EventUser;

@RequestScoped
@Path("/meta/v1/eventuser")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON + "; charset=UTF-8" })
public class EventUserRestViewV1 extends AbstractRestViewV1 {

	@EJB
	UserBeanLocal userBean;

	@GET
	@Path("/{id}/{path:.*}")
	public String getMeta(@PathParam("id") Integer id,
			@PathParam("path") List<PathSegment> path) {

		EventUser eventUser = userBean.findByEventUserId(id);
		return getEntityMeta(eventUser, path);
	}

	@PUT
	@Path("/{id}/{path:.*}")
	public void putMeta(@PathParam("id") Integer id,
			@PathParam("path") List<PathSegment> path, String jsonString) {

		EventUser eventUser = userBean.findByEventUserId(id);
		setEntityMeta(eventUser, path, jsonString);
		userBean.mergeChanges(eventUser);
	}

	@POST
	@Path("/{id}/{path:.*}")
	public void postMeta(@PathParam("id") Integer id,
			@PathParam("path") List<PathSegment> path, String jsonString) {

		EventUser eventUser = userBean.findByEventUserId(id);
		setEntityMeta(eventUser, path, jsonString);
		userBean.mergeChanges(eventUser);
	}
}