aboutsummaryrefslogtreecommitdiffstats
path: root/api/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'api/src/main')
-rw-r--r--api/src/main/java/market/guess/api/AccountDTO.java1
-rw-r--r--api/src/main/java/market/guess/api/CatalogContext.java6
-rw-r--r--api/src/main/java/market/guess/api/GuessMarketContext.java10
-rw-r--r--api/src/main/java/market/guess/api/LoadResultDTO.java14
-rw-r--r--api/src/main/java/market/guess/api/PurchaseReceiptDTO.java11
-rw-r--r--api/src/main/java/market/guess/api/Result.java22
-rw-r--r--api/src/main/java/market/guess/model/event/EventDetailDTO.java (renamed from api/src/main/java/market/guess/api/EventDetailDTO.java)4
-rw-r--r--api/src/main/java/market/guess/model/event/EventStatus.java (renamed from api/src/main/java/market/guess/api/EventStatus.java)2
-rw-r--r--api/src/main/java/market/guess/model/event/EventSummaryDTO.java (renamed from api/src/main/java/market/guess/api/EventSummaryDTO.java)4
-rw-r--r--api/src/main/java/market/guess/model/ledger/LedgerEntryDTO.java (renamed from api/src/main/java/market/guess/api/LedgerEntryDTO.java)2
-rw-r--r--api/src/main/java/market/guess/model/ledger/LedgerType.java (renamed from api/src/main/java/market/guess/api/LedgerType.java)2
11 files changed, 38 insertions, 40 deletions
diff --git a/api/src/main/java/market/guess/api/AccountDTO.java b/api/src/main/java/market/guess/api/AccountDTO.java
index 8e7123e..134c88b 100644
--- a/api/src/main/java/market/guess/api/AccountDTO.java
+++ b/api/src/main/java/market/guess/api/AccountDTO.java
@@ -1,6 +1,7 @@
1package market.guess.api; 1package market.guess.api;
2 2
3import java.util.List; 3import java.util.List;
4import market.guess.model.ledger.LedgerEntryDTO;
4 5
5public record AccountDTO( 6public record AccountDTO(
6 String owner, String balance, boolean blocked, List<LedgerEntryDTO> entries) {} 7 String owner, String balance, boolean blocked, List<LedgerEntryDTO> entries) {}
diff --git a/api/src/main/java/market/guess/api/CatalogContext.java b/api/src/main/java/market/guess/api/CatalogContext.java
index 7e80042..c980ba8 100644
--- a/api/src/main/java/market/guess/api/CatalogContext.java
+++ b/api/src/main/java/market/guess/api/CatalogContext.java
@@ -2,6 +2,8 @@ package market.guess.api;
2 2
3import java.nio.file.Path; 3import java.nio.file.Path;
4import java.util.List; 4import java.util.List;
5import market.guess.model.event.EventDetailDTO;
6import market.guess.model.event.EventSummaryDTO;
5 7
6public interface CatalogContext { 8public interface CatalogContext {
7 Result<LoadResultDTO> loadEvents(Path path); 9 Result<LoadResultDTO> loadEvents(Path path);
@@ -9,4 +11,8 @@ public interface CatalogContext {
9 Result<List<EventSummaryDTO>> getAllEvents(); 11 Result<List<EventSummaryDTO>> getAllEvents();
10 12
11 Result<EventDetailDTO> getEvent(String eventKey); 13 Result<EventDetailDTO> getEvent(String eventKey);
14
15 Result<Void> saveState(Path path);
16
17 Result<LoadResultDTO> restoreState(Path path);
12} 18}
diff --git a/api/src/main/java/market/guess/api/GuessMarketContext.java b/api/src/main/java/market/guess/api/GuessMarketContext.java
index 4eee37e..7ec7323 100644
--- a/api/src/main/java/market/guess/api/GuessMarketContext.java
+++ b/api/src/main/java/market/guess/api/GuessMarketContext.java
@@ -1,16 +1,10 @@
1package market.guess.api; 1package market.guess.api;
2 2
3import java.nio.file.Path; 3import market.guess.model.event.EventDetailDTO;
4 4
5public interface GuessMarketContext { 5public interface GuessMarketContext {
6 Result<PurchaseReceiptDTO> buyShares( 6 Result<PurchaseReceiptDTO> buyShares(
7 String userName, String eventKey, String optionKey, int quantity); 7 String userName, String eventKey, String optionKey, int quantity);
8 8
9 Result<EventDetailDTO> closeEvent(String userName, String eventKey, String winningOptionKey); 9 Result<EventDetailDTO> settleEvent(String userName, String eventKey, String winningOptionKey);
10
11 Result<AccountDTO> account(String userName);
12
13 Result<Void> saveState(Path path);
14
15 Result<LoadResultDTO> restoreState(Path path);
16} 10}
diff --git a/api/src/main/java/market/guess/api/LoadResultDTO.java b/api/src/main/java/market/guess/api/LoadResultDTO.java
index 8cae3c0..95c23e7 100644
--- a/api/src/main/java/market/guess/api/LoadResultDTO.java
+++ b/api/src/main/java/market/guess/api/LoadResultDTO.java
@@ -1,15 +1,3 @@
1package market.guess.api; 1package market.guess.api;
2 2
3import java.util.List; 3public record LoadResultDTO(String source, int eventsLoaded) {}
4
5public record LoadResultDTO(
6 boolean success, String source, int eventsLoaded, List<ProblemDTO> issues) {
7
8 public static LoadResultDTO success(String sourceLabel, int eventsLoaded) {
9 return new LoadResultDTO(true, sourceLabel, eventsLoaded, List.of());
10 }
11
12 public static LoadResultDTO failure(String sourceLabel, List<ProblemDTO> problems) {
13 return new LoadResultDTO(false, sourceLabel, 0, List.copyOf(problems));
14 }
15}
diff --git a/api/src/main/java/market/guess/api/PurchaseReceiptDTO.java b/api/src/main/java/market/guess/api/PurchaseReceiptDTO.java
index bd5b2f7..e98a080 100644
--- a/api/src/main/java/market/guess/api/PurchaseReceiptDTO.java
+++ b/api/src/main/java/market/guess/api/PurchaseReceiptDTO.java
@@ -1,10 +1,5 @@
1package market.guess.api; 1package market.guess.api;
2 2
3public record PurchaseReceiptDTO( 3import java.util.List;
4 String eventKey, 4
5 String optionName, 5public record PurchaseReceiptDTO(List<TradeRowDTO> trades, MarketStateDTO stateAfter) {}
6 long quantity,
7 String sharesCost,
8 String commission,
9 String totalPaid,
10 MarketStateDTO stateAfter) {}
diff --git a/api/src/main/java/market/guess/api/Result.java b/api/src/main/java/market/guess/api/Result.java
index 15ac5db..ff66761 100644
--- a/api/src/main/java/market/guess/api/Result.java
+++ b/api/src/main/java/market/guess/api/Result.java
@@ -5,30 +5,36 @@ import java.time.Instant;
5public final class Result<T> { 5public final class Result<T> {
6 private final boolean success; 6 private final boolean success;
7 private final String message; 7 private final String message;
8 private final String details;
8 private final T data; 9 private final T data;
9 private final Instant timeStamp; 10 private final Instant timeStamp;
10 11
11 private Result(boolean success, String message, T data) { 12 private Result(boolean success, String message, String details, T data) {
12 this.success = success; 13 this.success = success;
13 this.message = message; 14 this.message = message;
14 this.data = data; 15 this.data = data;
16 this.details = details;
15 this.timeStamp = Instant.now(); 17 this.timeStamp = Instant.now();
16 } 18 }
17 19
18 public static <T> Result<T> ok() { 20 public static <T> Result<T> ok() {
19 return new Result<T>(true, "Operation successful", null); 21 return new Result<T>(true, "Operation successful", "", null);
20 } 22 }
21 23
22 public static <T> Result<T> ok(T data) { 24 public static <T> Result<T> ok(T data) {
23 return new Result<>(true, "Operation successful", data); 25 return new Result<>(true, "Operation successful", "", data);
24 } 26 }
25 27
26 public static <T> Result<T> error(String message, T data) { 28 public static <T> Result<T> error(String message, String details, T data) {
27 return new Result<>(false, message, data); 29 return new Result<>(false, message, details, data);
30 }
31
32 public static <T> Result<T> error(String message, String details) {
33 return error(message, details, null);
28 } 34 }
29 35
30 public static <T> Result<T> error(String message) { 36 public static <T> Result<T> error(String message) {
31 return new Result<>(false, message, null); 37 return error(message, null, null);
32 } 38 }
33 39
34 public boolean isSuccess() { 40 public boolean isSuccess() {
@@ -39,6 +45,10 @@ public final class Result<T> {
39 return message; 45 return message;
40 } 46 }
41 47
48 public String getDetails() {
49 return details;
50 }
51
42 public T getData() { 52 public T getData() {
43 return data; 53 return data;
44 } 54 }
diff --git a/api/src/main/java/market/guess/api/EventDetailDTO.java b/api/src/main/java/market/guess/model/event/EventDetailDTO.java
index 893f153..e45458b 100644
--- a/api/src/main/java/market/guess/api/EventDetailDTO.java
+++ b/api/src/main/java/market/guess/model/event/EventDetailDTO.java
@@ -1,6 +1,8 @@
1package market.guess.api; 1package market.guess.model.event;
2 2
3import java.util.List; 3import java.util.List;
4import market.guess.api.MarketStateDTO;
5import market.guess.api.TradeRowDTO;
4 6
5public record EventDetailDTO( 7public record EventDetailDTO(
6 EventSummaryDTO summary, 8 EventSummaryDTO summary,
diff --git a/api/src/main/java/market/guess/api/EventStatus.java b/api/src/main/java/market/guess/model/event/EventStatus.java
index 6580157..c6460f9 100644
--- a/api/src/main/java/market/guess/api/EventStatus.java
+++ b/api/src/main/java/market/guess/model/event/EventStatus.java
@@ -1,4 +1,4 @@
1package market.guess.api; 1package market.guess.model.event;
2 2
3public enum EventStatus { 3public enum EventStatus {
4 DRAFT, 4 DRAFT,
diff --git a/api/src/main/java/market/guess/api/EventSummaryDTO.java b/api/src/main/java/market/guess/model/event/EventSummaryDTO.java
index d185103..1595f81 100644
--- a/api/src/main/java/market/guess/api/EventSummaryDTO.java
+++ b/api/src/main/java/market/guess/model/event/EventSummaryDTO.java
@@ -1,6 +1,8 @@
1package market.guess.api; 1package market.guess.model.event;
2 2
3import java.util.List; 3import java.util.List;
4import market.guess.api.CommissionTiming;
5import market.guess.api.MechanismType;
4 6
5public record EventSummaryDTO( 7public record EventSummaryDTO(
6 String key, 8 String key,
diff --git a/api/src/main/java/market/guess/api/LedgerEntryDTO.java b/api/src/main/java/market/guess/model/ledger/LedgerEntryDTO.java
index b8f994c..733ad03 100644
--- a/api/src/main/java/market/guess/api/LedgerEntryDTO.java
+++ b/api/src/main/java/market/guess/model/ledger/LedgerEntryDTO.java
@@ -1,4 +1,4 @@
1package market.guess.api; 1package market.guess.model.ledger;
2 2
3public record LedgerEntryDTO( 3public record LedgerEntryDTO(
4 long seq, String at, LedgerType type, String amount, String balanceAfter, String note) {} 4 long seq, String at, LedgerType type, String amount, String balanceAfter, String note) {}
diff --git a/api/src/main/java/market/guess/api/LedgerType.java b/api/src/main/java/market/guess/model/ledger/LedgerType.java
index 3402b84..b1fe15b 100644
--- a/api/src/main/java/market/guess/api/LedgerType.java
+++ b/api/src/main/java/market/guess/model/ledger/LedgerType.java
@@ -1,4 +1,4 @@
1package market.guess.api; 1package market.guess.model.ledger;
2 2
3public enum LedgerType { 3public enum LedgerType {
4 SUBSIDY, 4 SUBSIDY,