diff --git a/eatery-service/src/main/java/com/drinkool/entities/InventoryItemEntity.java b/eatery-service/src/main/java/com/drinkool/entities/InventoryItemEntity.java new file mode 100644 index 0000000..397b469 --- /dev/null +++ b/eatery-service/src/main/java/com/drinkool/entities/InventoryItemEntity.java @@ -0,0 +1,29 @@ +package com.drinkool.entities; + +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.transaction.Transactional; + +@Entity +@Table(name = "inventory_items") +public class InventoryItemEntity extends BaseEntity { + + public String name; + public int quantity; + public String unit; + + // Create + @Transactional + public void add(String name, int quantity, String unit) { + this.name = name; + this.quantity = quantity; + this.unit = unit; + + this.persist(); + } + + @Transactional + public void add(String name, int quantity) { + add(name, quantity, "unit"); + } +} diff --git a/eatery-service/src/main/java/com/drinkool/services/InventoryService.java b/eatery-service/src/main/java/com/drinkool/services/InventoryService.java new file mode 100644 index 0000000..1de9561 --- /dev/null +++ b/eatery-service/src/main/java/com/drinkool/services/InventoryService.java @@ -0,0 +1,22 @@ +package com.drinkool.services; + +import com.drinkool.dtos.AddInventory; +import com.drinkool.entities.InventoryItemEntity; +import jakarta.transaction.Transactional; +import jakarta.ws.rs.*; +import jakarta.ws.rs.core.Response; + +@Path("/api/inventory") +public class InventoryService { + + @POST + @Path("/add") + @Transactional + public Response add(AddInventory input) { + InventoryItemEntity newItem = new InventoryItemEntity(); + + newItem.add(input.name, input.quantity, input.unit); + + return Response.ok().build(); + } +} diff --git a/eatery-service/src/test/java/com/drinkool/services/InventoryServiceTest.java b/eatery-service/src/test/java/com/drinkool/services/InventoryServiceTest.java new file mode 100644 index 0000000..8e396cb --- /dev/null +++ b/eatery-service/src/test/java/com/drinkool/services/InventoryServiceTest.java @@ -0,0 +1,36 @@ +package com.drinkool.services; + +import static io.restassured.RestAssured.given; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import com.drinkool.dtos.AddInventory; +import com.drinkool.entities.InventoryItemEntity; +import io.quarkus.test.junit.QuarkusTest; +import io.restassured.http.ContentType; +import java.util.Random; +import java.util.UUID; +import org.junit.jupiter.api.Test; + +@QuarkusTest +public class InventoryServiceTest { + + @Test + void add() { + Random random = new Random(); + + String name = UUID.randomUUID().toString(); + + AddInventory input = new AddInventory(); + input.name = name; + input.quantity = random.nextInt(100); + + given() + .contentType(ContentType.JSON) + .body(input) + .when() + .post("/api/inventory/add") + .then(); + + assertEquals(1, InventoryItemEntity.find("name", name).count()); + } +} diff --git a/lib/src/main/java/com/drinkool/dtos/AddInventory.java b/lib/src/main/java/com/drinkool/dtos/AddInventory.java new file mode 100644 index 0000000..470dec2 --- /dev/null +++ b/lib/src/main/java/com/drinkool/dtos/AddInventory.java @@ -0,0 +1,7 @@ +package com.drinkool.dtos; + +public class AddInventory { + public String name; + public int quantity; + public String unit; +}