diff --git a/Api/src/main/java/edu/inventorym/Api.java b/Api/src/main/java/edu/inventorym/Api.java index a41cccf..b9d50e0 100644 --- a/Api/src/main/java/edu/inventorym/Api.java +++ b/Api/src/main/java/edu/inventorym/Api.java @@ -86,7 +86,7 @@ public interface Api { customerCart.add(imgr.INVENTORY.getLast()); TransactionManager tmgr = TransactionManager.getInstance(); - + tmgr.load(); /* * 3. Add a new transaction object to the list manager is handling */ @@ -98,7 +98,7 @@ public interface Api { */ tmgr.compute(tran); tmgr.complete(tran); - tmgr.remove(tran); + //tmgr.remove(tran); /* * 7. Format and return transaction data in print format */ @@ -135,6 +135,7 @@ public interface Api { o.setTitle("Windy Rowing"); o.setDescription("East Market Square find. Local Author."); o.setAuthor("Dave Janson"); + o.setPrice(92.0f); o.setCreated(ZonedDateTime.now()); return o; } @@ -143,6 +144,7 @@ public interface Api { o.setTitle("Walking by the beach."); o.setDescription("East Market Square find. Local Author."); o.setAuthor("Dave Janson"); + o.setPrice(51.0f); o.setCreated(ZonedDateTime.now()); return o; } @@ -151,7 +153,7 @@ public interface Api { o.setTitle("Different day same thing"); o.setDescription("East Market Square find. Local Author."); o.setAuthor("Dave Janson"); - + o.setPrice(102.0f); o.setCreated(ZonedDateTime.now()); return o; } @@ -160,7 +162,8 @@ public interface Api { o.setTitle("Jolly Romp"); o.setDescription("East Market Square find. Local Author."); o.setAuthor("Dave Janson"); - + o.setPrice(32.0f); + o.setWeight(4.0F); o.setCreated(ZonedDateTime.now()); return o; } diff --git a/Api/src/resources/db/inventory.json b/Api/src/resources/db/inventory.json new file mode 100644 index 0000000..8023062 --- /dev/null +++ b/Api/src/resources/db/inventory.json @@ -0,0 +1,22 @@ +[ + { + "Author": "Dave Janson", + "author": "Dave Janson", + "created": "2025-10-30T13:47:16.4766896-04:00[America/New_York]", + "description": "East Market Square find. Local Author.", + "id": "1829220534", + "price": 92.0, + "title": "Windy Rowing", + "type": "DRAWING" + }, + { + "Author": "Dave Janson", + "author": "Dave Janson", + "created": "2025-10-30T13:47:16.4776889-04:00[America/New_York]", + "description": "East Market Square find. Local Author.", + "id": "3269813598", + "price": 102.0, + "title": "Different day same thing", + "type": "PRINT" + } +] \ No newline at end of file diff --git a/Api/src/resources/db/transactions.json b/Api/src/resources/db/transactions.json new file mode 100644 index 0000000..7a35a64 --- /dev/null +++ b/Api/src/resources/db/transactions.json @@ -0,0 +1,31 @@ +[ + { + "completed": "2025-10-30T13:55:22.069972-04:00[America/New_York]", + "created": "2025-10-30T13:55:22.069972-04:00[America/New_York]", + "customerId": "4659170390", + "customerInventoryList": [ + { + "Author": "Dave Janson", + "author": "Dave Janson", + "created": "2025-10-30T13:47:16.4766896-04:00[America/New_York]", + "description": "East Market Square find. Local Author.", + "id": "1829220534", + "price": 92.0, + "title": "Windy Rowing", + "type": "DRAWING" + }, + { + "Author": "Dave Janson", + "author": "Dave Janson", + "created": "2025-10-30T13:47:16.4776889-04:00[America/New_York]", + "description": "East Market Square find. Local Author.", + "id": "3269813598", + "price": 102.0, + "title": "Different day same thing", + "type": "PRINT" + } + ], + "id": "h3kaUzeDU8llUhCPsdPacg", + "totalPrice": 194.0 + } +] \ No newline at end of file diff --git a/Model/src/main/java/edu/inventorym/model/DataRepository.java b/Model/src/main/java/edu/inventorym/model/DataRepository.java index d3a50d5..c8387c5 100644 --- a/Model/src/main/java/edu/inventorym/model/DataRepository.java +++ b/Model/src/main/java/edu/inventorym/model/DataRepository.java @@ -66,7 +66,11 @@ public class DataRepository { read(manager, path); } - public static void WalkFileSystemTree(final TransactionManager manager) throws IOException { + public static void WalkFileSystemTree(final TransactionManager manager) throws JsonException, IOException, Exception { + String dataRoot = getRepositoryConfig.getPath(); + dataRoot = dataRoot + "/transactions.json"; + Path path = Paths.get(dataRoot); + read(manager, path); } static void serialize_deserialize() { @@ -129,6 +133,21 @@ public class DataRepository { } } + public static void write(TransactionManager mgr) throws IOException { + JsonbConfig config = new JsonbConfig() + .withFormatting(true); // Enable pretty-printing + Jsonb jsonb = JsonbBuilder.create(config); + String result = jsonb.toJson(mgr.TRANSACTIONS); + + String dataRoot = getRepositoryConfig.getPath(); + dataRoot = dataRoot + "/transactions.json"; + Path path = Paths.get(dataRoot); + try (BufferedWriter writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8)) { + writer.write(result); + writer.flush(); + } + } + private static void read(CustomerManager customerManager, Path path) throws Exception { String result; try (BufferedReader in = new BufferedReader(new FileReader(path.toFile(), StandardCharsets.UTF_8))) { @@ -141,7 +160,19 @@ public class DataRepository { customerManager.CUSTOMERS.addAll(customers); } - private static void read(InventoryManager manager, Path path) throws JsonException, IOException, Exception { + private static void read(TransactionManager manager, Path path) throws Exception { + String result; + try (BufferedReader in = new BufferedReader(new FileReader(path.toFile(), StandardCharsets.UTF_8))) { + result = in.readAllAsString(); + } + + List transactions = mapJsonToObjectList(result, Transaction.class); + + manager.TRANSACTIONS.clear(); + manager.TRANSACTIONS.addAll(transactions); + } + + private static void read(InventoryManager manager, Path path) throws JsonException, IOException, InvalidRecordDataException, Exception { String result; try (BufferedReader in = new BufferedReader(new FileReader(path.toFile(), StandardCharsets.UTF_8))) { result = in.readAllAsString(); @@ -188,5 +219,4 @@ public class DataRepository { return home.replace('\\', '/') + "/workspace/inventorym/Api/src/resources/db"; } } - } diff --git a/Model/src/main/java/edu/inventorym/model/Transaction.java b/Model/src/main/java/edu/inventorym/model/Transaction.java index 2bf22a6..f0e30f6 100644 --- a/Model/src/main/java/edu/inventorym/model/Transaction.java +++ b/Model/src/main/java/edu/inventorym/model/Transaction.java @@ -92,6 +92,10 @@ public class Transaction { this.customerId = id; } + public void check() throws InvalidTransactionException { + + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); diff --git a/Model/src/main/java/edu/inventorym/model/TransactionList.java b/Model/src/main/java/edu/inventorym/model/TransactionList.java index 7a862cc..8b6d684 100644 --- a/Model/src/main/java/edu/inventorym/model/TransactionList.java +++ b/Model/src/main/java/edu/inventorym/model/TransactionList.java @@ -13,7 +13,7 @@ public class TransactionList extends ArrayList { @Override public boolean add(Transaction e) { - // TODO Auto-generated method stub + // TODO check transaction return super.add(e); } } diff --git a/Model/src/main/java/edu/inventorym/model/TransactionManager.java b/Model/src/main/java/edu/inventorym/model/TransactionManager.java index 324c2a6..6035ff9 100644 --- a/Model/src/main/java/edu/inventorym/model/TransactionManager.java +++ b/Model/src/main/java/edu/inventorym/model/TransactionManager.java @@ -4,6 +4,8 @@ */ package edu.inventorym.model; +import java.io.FileNotFoundException; +import java.io.IOException; import java.time.ZonedDateTime; public class TransactionManager { @@ -19,6 +21,7 @@ public class TransactionManager { public Transaction TransactRequest(Customer customer, InventoryList iPieces) { Transaction transacted = new Transaction(customer, iPieces); transacted.setShipToAddress(customer.getMailing()); + add(transacted); compute(transacted); return transacted; } @@ -47,12 +50,31 @@ public class TransactionManager { return null; } + + public void add(Transaction tran) { + TRANSACTIONS.add(tran); + } + public void remove(Transaction tran) { } public void save() { + try { + DataRepository.write(this); + } catch (IOException e) { + e.printStackTrace(); + } + } + public void load() { + try { + DataRepository.WalkFileSystemTree(this); + } catch (FileNotFoundException e) { + System.out.println(String.format("TRANSACTIONS: %s", e.getLocalizedMessage().toString())); + } catch (Exception e) { + e.printStackTrace(); + } } }