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