This commit is contained in:
2025-10-30 14:01:16 -04:00
parent a2274d8ef2
commit 8b41c89e02
7 changed files with 120 additions and 8 deletions

View File

@@ -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;
}

View File

@@ -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"
}
]

View File

@@ -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
}
]

View File

@@ -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<Transaction> 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";
}
}
}

View File

@@ -92,6 +92,10 @@ public class Transaction {
this.customerId = id;
}
public void check() throws InvalidTransactionException {
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();

View File

@@ -13,7 +13,7 @@ public class TransactionList extends ArrayList<Transaction> {
@Override
public boolean add(Transaction e) {
// TODO Auto-generated method stub
// TODO check transaction
return super.add(e);
}
}

View File

@@ -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();
}
}
}