diff --git a/bookmark-service/src/main/java/fr/loicmathieu/bookmarkit/Bookmark.java b/bookmark-service/src/main/java/fr/loicmathieu/bookmarkit/Bookmark.java index 0f70044..5daff8f 100644 --- a/bookmark-service/src/main/java/fr/loicmathieu/bookmarkit/Bookmark.java +++ b/bookmark-service/src/main/java/fr/loicmathieu/bookmarkit/Bookmark.java @@ -1,9 +1,11 @@ package fr.loicmathieu.bookmarkit; +import io.quarkus.hibernate.orm.panache.PanacheEntity; + import javax.persistence.Entity; @Entity -public class Bookmark { +public class Bookmark extends PanacheEntity { public String title; public String url; public String description; diff --git a/bookmark-service/src/main/java/fr/loicmathieu/bookmarkit/BookmarkResource.java b/bookmark-service/src/main/java/fr/loicmathieu/bookmarkit/BookmarkResource.java index a232188..ae8ed09 100644 --- a/bookmark-service/src/main/java/fr/loicmathieu/bookmarkit/BookmarkResource.java +++ b/bookmark-service/src/main/java/fr/loicmathieu/bookmarkit/BookmarkResource.java @@ -1,10 +1,17 @@ package fr.loicmathieu.bookmarkit; +import javax.transaction.Transactional; import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +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.Response; +import java.net.URI; import java.util.List; @Path("/bookmarks") @@ -12,23 +19,39 @@ @Consumes(MediaType.APPLICATION_JSON) public class BookmarkResource { - public List listBookmarks() { - throw new UnsupportedOperationException("not yet implemented"); + @GET + public List listAll() { + return Bookmark.listAll(); } - public Bookmark getBookmark(Long id) { - throw new UnsupportedOperationException("not yet implemented"); + @GET + @Path("/{id}") + public Bookmark get(@PathParam("id") Long id) { + return Bookmark.findById(id); } - public Response createBookmark(Bookmark bookmark) { - throw new UnsupportedOperationException("not yet implemented"); + @POST + @Transactional + public Response create(Bookmark bookmark) { + bookmark.persist(); + return Response.created(URI.create("/bookmarks/" + bookmark.id)).build(); } - public Response updateBookmark(Bookmark bookmark, Long id) { - throw new UnsupportedOperationException("not yet implemented"); + @PUT + @Path("/{id}") + @Transactional + public void update(Bookmark bookmark) { + Bookmark existing = Bookmark.findById(bookmark.id); + existing.url = bookmark.url; + existing.description = bookmark.description; + existing.title = bookmark.title; } - public Response deleteBookmark(Long id) { - throw new UnsupportedOperationException("not yet implemented"); + @DELETE + @Path("/{id}") + @Transactional + public void delete(@PathParam("id") Long id) { + Bookmark existing = Bookmark.findById(id); + existing.delete(); } }