// ======================================================================== // Copyright (C) zeroth Project Team. All rights reserved. // GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 // http://www.gnu.org/licenses/agpl-3.0.txt // ======================================================================== package zeroth.actor.screen.iface.web.rest.home; import java.math.BigDecimal; import java.util.Collection; import javax.ejb.EJB; 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.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import zeroth.actor.screen.iface.web.rest.ResourceException; import zeroth.actor.screen.iface.web.rest.ResourceFault; import zeroth.actor.service.app.misc.NewsApplication; import zeroth.actor.service.domain.misc.News; import zeroth.framework.enterprise.domain.ConstraintsException; /** * News resources. * @author nilcy */ @Path("/home/news") @RequestScoped public class NewsResource { /** news service Local-I/F. */ @EJB private NewsApplication newsService; /** ロガー */ // private final Logger log = Logger.getGlobal(); /** コンストラクタ */ public NewsResource() { super(); } /** * news list. * @return news list */ @GET @Path("/") @Produces({ MediaType.TEXT_XML, MediaType.APPLICATION_JSON }) public Collection<News> getList() { return newsService.findMany(null); } /** * news. * @param aId ID * @return news */ @GET @Path("/{id}") @Produces({ MediaType.TEXT_XML, MediaType.APPLICATION_JSON }) public News getItem(@PathParam("id") final BigDecimal aId) { final News item = newsService.find(aId); if (item == null) { throw new ResourceException(new ResourceFault("ERR001", "GET_ERROR")); } return item; } /** * Post news. * @param aNews news */ @POST @Path("/") @Consumes({ MediaType.TEXT_XML, MediaType.APPLICATION_JSON }) public void postItem(final News aNews) { try { newsService.save(aNews); } catch (final ConstraintsException e) { throw new ResourceException(new ResourceFault("ERR002", "POST_ERROR")); } } /** * Delete news. * @param aId ID */ @DELETE @Path("/{id}") @Consumes({ MediaType.TEXT_XML, MediaType.APPLICATION_JSON }) public void deleteItem(@PathParam("id") final BigDecimal aId) { try { newsService.delete(newsService.find(aId)); } catch (final ConstraintsException e) { throw new ResourceException(new ResourceFault("ERR003", "DELETE_ERROR")); } } }