aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/dev/submelon/rest/json/PantryItem.java24
-rw-r--r--src/main/java/dev/submelon/rest/json/PantryItemResource.java20
-rw-r--r--src/main/resources/application.properties5
-rw-r--r--src/main/resources/db/changeLog.xml9
-rw-r--r--src/main/resources/db/changelogs/20220804-add-pantryitem.xml30
-rw-r--r--src/main/resources/db/changelogs/20220814-test-data.xml93
6 files changed, 26 insertions, 155 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();
}
}
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index f36fb33..81f5248 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,3 +1,2 @@
-quarkus.liquibase.clean-at-start=true
-quarkus.liquibase.migrate-at-start=true
-quarkus.liquibase.contexts=migrate,test
+#quarkus.mongodb.connection-string=mongodb://localhost:27017
+quarkus.mongodb.database = pantry
diff --git a/src/main/resources/db/changeLog.xml b/src/main/resources/db/changeLog.xml
deleted file mode 100644
index 870baf4..0000000
--- a/src/main/resources/db/changeLog.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<databaseChangeLog
- xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
- xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd
- http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
- <include file="db/changelogs/20220804-add-pantryitem.xml" />
- <include file="db/changelogs/20220814-test-data.xml" />
-</databaseChangeLog> \ No newline at end of file
diff --git a/src/main/resources/db/changelogs/20220804-add-pantryitem.xml b/src/main/resources/db/changelogs/20220804-add-pantryitem.xml
deleted file mode 100644
index f6ab0ee..0000000
--- a/src/main/resources/db/changelogs/20220804-add-pantryitem.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<databaseChangeLog
- xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
- xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd
- http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
- <changeSet id="20220804-add-pantryitem" author="kjhoerr" context="migrate">
- <validCheckSum>8:350c0b8d4ff8ce36a2453a0fe2373684</validCheckSum>
- <createSequence
- sequenceName="hibernate_sequence"
- incrementBy="1"
- startValue="1"
- />
- <createTable tableName="pantryitem">
- <column name="id" type="int8">
- <constraints primaryKey="true" primaryKeyName="pk_pantryitem_id" nullable="false" />
- </column>
- <column name="name" type="varchar(80)">
- <constraints nullable="false" />
- </column>
- <column name="description" type="varchar(1000)" />
- <column name="quantity" type="float8">
- <constraints nullable="false" />
- </column>
- <column name="quantityunittype" type="varchar(40)">
- <constraints nullable="false" />
- </column>
- </createTable>
- </changeSet>
-</databaseChangeLog> \ No newline at end of file
diff --git a/src/main/resources/db/changelogs/20220814-test-data.xml b/src/main/resources/db/changelogs/20220814-test-data.xml
deleted file mode 100644
index b8b9ad3..0000000
--- a/src/main/resources/db/changelogs/20220814-test-data.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<databaseChangeLog
- xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
- xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd
- http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
- <changeSet id="20220814-test-data" author="kjhoerr" context="test">
- <insert tableName="pantryitem">
- <column name="id" valueSequenceNext="hibernate_sequence"/>
- <column name="name" value="Flour"/>
- <column name="description" value="Unbleached white"/>
- <column name="quantity" value="2.3"/>
- <column name="quantityunittype" value="lb"/>
- </insert>
- <insert tableName="pantryitem">
- <column name="id" valueSequenceNext="hibernate_sequence"/>
- <column name="name" value="Sugar"/>
- <column name="description" value="Granulated"/>
- <column name="quantity" value="9.3"/>
- <column name="quantityunittype" value="oz"/>
- </insert>
- <insert tableName="pantryitem">
- <column name="id" valueSequenceNext="hibernate_sequence"/>
- <column name="name" value="Eggs"/>
- <column name="description" value="Large white"/>
- <column name="quantity" value="10"/>
- <column name="quantityunittype" value="ct"/>
- </insert>
- <insert tableName="pantryitem">
- <column name="id" valueSequenceNext="hibernate_sequence"/>
- <column name="name" value="Baking Powder"/>
- <column name="description" value="Double acting"/>
- <column name="quantity" value="3.3"/>
- <column name="quantityunittype" value="oz"/>
- </insert>
- <insert tableName="pantryitem">
- <column name="id" valueSequenceNext="hibernate_sequence"/>
- <column name="name" value="Oat Milk"/>
- <column name="description" value="Unsweetened/no flavoring"/>
- <column name="quantity" value="107"/>
- <column name="quantityunittype" value="oz"/>
- </insert>
- <insert tableName="pantryitem">
- <column name="id" valueSequenceNext="hibernate_sequence"/>
- <column name="name" value="Vanilla Extract"/>
- <column name="description" value=""/>
- <column name="quantity" value="8.8"/>
- <column name="quantityunittype" value="oz"/>
- </insert>
- <insert tableName="pantryitem">
- <column name="id" valueSequenceNext="hibernate_sequence"/>
- <column name="name" value="Almond Extract"/>
- <column name="description" value=""/>
- <column name="quantity" value="1.07"/>
- <column name="quantityunittype" value="oz"/>
- </insert>
- <insert tableName="pantryitem">
- <column name="id" valueSequenceNext="hibernate_sequence"/>
- <column name="name" value="Canola Oil"/>
- <column name="description" value=""/>
- <column name="quantity" value="51"/>
- <column name="quantityunittype" value="oz"/>
- </insert>
- <insert tableName="pantryitem">
- <column name="id" valueSequenceNext="hibernate_sequence"/>
- <column name="name" value="Salt"/>
- <column name="description" value="Iodized"/>
- <column name="quantity" value="4.5"/>
- <column name="quantityunittype" value="oz"/>
- </insert>
- <insert tableName="pantryitem">
- <column name="id" valueSequenceNext="hibernate_sequence"/>
- <column name="name" value="Baking Soda"/>
- <column name="description" value=""/>
- <column name="quantity" value="6.5"/>
- <column name="quantityunittype" value="oz"/>
- </insert>
- <insert tableName="pantryitem">
- <column name="id" valueSequenceNext="hibernate_sequence"/>
- <column name="name" value="Butter"/>
- <column name="description" value="Salted"/>
- <column name="quantity" value="3.5"/>
- <column name="quantityunittype" value="cups"/>
- </insert>
- <insert tableName="pantryitem">
- <column name="id" valueSequenceNext="hibernate_sequence"/>
- <column name="name" value="Brown Sugar"/>
- <column name="description" value=""/>
- <column name="quantity" value="15"/>
- <column name="quantityunittype" value="oz"/>
- </insert>
- </changeSet>
-</databaseChangeLog> \ No newline at end of file