aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorKevin J Hoerr <kjhoerr@protonmail.com>2022-12-29 18:03:41 -0500
committerKevin J Hoerr <kjhoerr@protonmail.com>2025-08-18 11:51:00 -0400
commitfdf36c0af83db4fa015794e9827ccce0aa8b5a5e (patch)
tree63a1cb8a74a6f50167583d24b574bd423cd47e39 /src/main/java
parent5f6acdf1119669c49490eb5b5aefb5eacc472bd2 (diff)
downloadpantry-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.java24
-rw-r--r--src/main/java/dev/submelon/rest/json/PantryItemResource.java20
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();
}
}
}