diff options
| author | Kevin J Hoerr <kjhoerr@protonmail.com> | 2022-12-29 18:03:41 -0500 |
|---|---|---|
| committer | Kevin J Hoerr <kjhoerr@protonmail.com> | 2025-08-18 11:51:00 -0400 |
| commit | fdf36c0af83db4fa015794e9827ccce0aa8b5a5e (patch) | |
| tree | 63a1cb8a74a6f50167583d24b574bd423cd47e39 /src/main/java | |
| parent | 5f6acdf1119669c49490eb5b5aefb5eacc472bd2 (diff) | |
| download | pantry-fdf36c0af83db4fa015794e9827ccce0aa8b5a5e.tar.gz pantry-fdf36c0af83db4fa015794e9827ccce0aa8b5a5e.tar.bz2 pantry-fdf36c0af83db4fa015794e9827ccce0aa8b5a5e.zip | |
Update; Switch to MongoDB
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(); } } } |
