diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/dev/submelon/rest/json/PantryItem.java | 24 | ||||
| -rw-r--r-- | src/main/java/dev/submelon/rest/json/PantryItemResource.java | 20 |
2 files changed, 24 insertions, 20 deletions
diff --git a/src/main/java/dev/submelon/rest/json/PantryItem.java b/src/main/java/dev/submelon/rest/json/PantryItem.java index d476e3c..6a30031 100644 --- a/src/main/java/dev/submelon/rest/json/PantryItem.java +++ b/src/main/java/dev/submelon/rest/json/PantryItem.java @@ -1,29 +1,29 @@ package dev.submelon.rest.json; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; +import java.util.UUID; -import io.quarkus.hibernate.orm.panache.PanacheEntity; +import org.bson.codecs.pojo.annotations.BsonId; + +import io.quarkus.mongodb.panache.PanacheMongoEntityBase; +import io.quarkus.mongodb.panache.common.MongoEntity; import lombok.Data; import lombok.EqualsAndHashCode; -@Entity -@Table(name = "pantryitem") @Data -@EqualsAndHashCode(callSuper = false) -public class PantryItem extends PanacheEntity { +@EqualsAndHashCode(callSuper = false, onlyExplicitlyIncluded = true) +@MongoEntity(collection = "item") +public class PantryItem extends PanacheMongoEntityBase { - @Column(nullable = false) + @BsonId + @EqualsAndHashCode.Include + private UUID id; + private String name; - @Column private String description; - @Column(nullable = false) private double quantity; - @Column(nullable = false) private String quantityUnitType; } diff --git a/src/main/java/dev/submelon/rest/json/PantryItemResource.java b/src/main/java/dev/submelon/rest/json/PantryItemResource.java index 4bb51c0..75a986d 100644 --- a/src/main/java/dev/submelon/rest/json/PantryItemResource.java +++ b/src/main/java/dev/submelon/rest/json/PantryItemResource.java @@ -1,6 +1,7 @@ package dev.submelon.rest.json; import java.util.List; +import java.util.UUID; import javax.transaction.Transactional; import javax.ws.rs.DELETE; @@ -16,7 +17,7 @@ import javax.ws.rs.core.Response; @Path("/items") public class PantryItemResource { - + @GET @Produces(MediaType.APPLICATION_JSON) public List<PantryItem> getItems() { @@ -36,8 +37,9 @@ public class PantryItemResource { @PUT @Path("/{id}") @Produces(MediaType.APPLICATION_JSON) - public PantryItem putItem(@PathParam("id") Long id, PantryItem item) { - if (item.id.equals(id)) { + public PantryItem putItem(@PathParam("id") String id, PantryItem item) { + UUID _id = UUID.fromString(id); + if (item.getId().equals(_id)) { PantryItem.persist(item); } else { throw new WebApplicationException(Response.status(400).entity("ID does not match body").build()); @@ -49,11 +51,13 @@ public class PantryItemResource { @Transactional @DELETE @Path("/{id}") - public void deleteItem(@PathParam("id") Long id) { - boolean result = PantryItem.deleteById(id); - - if (!result) { - throw new WebApplicationException(Response.status(404).entity("Could not find item").build()); + public Response deleteItem(@PathParam("id") String id) { + UUID _id = UUID.fromString(id); + boolean result = PantryItem.deleteById(_id); + if (result) { + return Response.ok().build(); + } else { + return Response.status(404).entity("Could not find item").build(); } } } |
