franta-hg@86: package cz.frantovo.nekurak.rest; franta-hg@86: franta-hg@90: import cz.frantovo.nekurak.dto.Clanek; franta-hg@92: import cz.frantovo.nekurak.web.HledacSluzby; franta-hg@90: import cz.frantovo.nekurak.xml.ClanekXML; franta-hg@92: import java.util.ArrayList; franta-hg@92: import java.util.Collection; franta-hg@87: import javax.ws.rs.Consumes; franta-hg@89: import javax.ws.rs.DELETE; franta-hg@86: import javax.ws.rs.GET; franta-hg@89: import javax.ws.rs.POST; franta-hg@87: import javax.ws.rs.PUT; franta-hg@86: import javax.ws.rs.Path; franta-hg@88: import javax.ws.rs.PathParam; franta-hg@86: import javax.ws.rs.Produces; franta-hg@86: franta-hg@86: @Path("clanek") franta-hg@86: public class ClankyREST { franta-hg@86: franta-hg@145: private static final String MIME_XML = "text/xml"; franta-hg@145: private static final String MIME_TEXT = "text/plain"; franta-hg@145: private HledacSluzby hledac = new HledacSluzby(); franta-hg@92: franta-hg@145: /** Vypíšeme seznam všech článků v systému */ franta-hg@145: @GET franta-hg@145: @Path("/") franta-hg@145: @Produces(MIME_XML) franta-hg@145: public Collection seznam() { franta-hg@145: Collection vysledek = new ArrayList(); franta-hg@145: Collection clanky = hledac.getClanekEJB().getClanky(); franta-hg@145: franta-hg@145: for (Clanek c : clanky) { franta-hg@145: vysledek.add(new ClanekXML(c)); franta-hg@145: } franta-hg@145: franta-hg@145: return vysledek; franta-hg@92: } franta-hg@92: franta-hg@145: /** Získáme konkrétní článek */ franta-hg@145: @GET franta-hg@145: @Path("/{id}") franta-hg@145: @Produces(MIME_XML) franta-hg@145: public ClanekXML ziskej(@PathParam("id") int id) { franta-hg@145: Clanek c = hledac.getClanekEJB().getClanek(id); franta-hg@145: return new ClanekXML(c); franta-hg@145: } franta-hg@89: franta-hg@145: /** franta-hg@145: * Vložíme nový článek franta-hg@145: * @return ID založeného článku (návratový typ musí být String – ne int) franta-hg@145: */ franta-hg@145: @POST franta-hg@145: @Consumes(MIME_XML) franta-hg@145: @Produces(MIME_TEXT) franta-hg@145: public String zaloz(ClanekXML xml) { franta-hg@145: int id = hledac.getClanekEJB().zalozClanek(xml.getClanek()); franta-hg@145: return id + "\n"; franta-hg@145: } franta-hg@87: franta-hg@145: /** Aktualizujeme článek */ franta-hg@145: @PUT franta-hg@145: @Consumes(MIME_XML) franta-hg@145: @Path("/{id}") franta-hg@145: public void uprav(@PathParam("id") int id, ClanekXML xml) { franta-hg@145: xml.setId(id); franta-hg@145: hledac.getClanekEJB().upravClanek(xml.getClanek()); franta-hg@145: } franta-hg@89: franta-hg@145: /** Smažeme článek */ franta-hg@145: @DELETE franta-hg@145: @Path("/{id}") franta-hg@145: public void smaz(@PathParam("id") int id) { franta-hg@145: Clanek c = new Clanek(); franta-hg@145: c.setId(id); franta-hg@145: hledac.getClanekEJB().smazClanek(c); franta-hg@145: } franta-hg@86: }