diff options
Diffstat (limited to 'src/main')
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 |
