From 7074ea7ca44e0eb5bb6bdbb9b96160a81883a7f5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 15:45:22 +0000 Subject: [PATCH 1/3] Initial plan From 6f94517eca969d82210e2db2ee07c9aaae2b804e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 15:48:23 +0000 Subject: [PATCH 2/3] Add startDate <= endDate validation in compare endpoint Co-authored-by: lukepring <68820847+lukepring@users.noreply.github.com> --- .../sharecomparison/presentation/WebPageController.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/stockscope/src/main/java/com/sharecomparison/presentation/WebPageController.java b/stockscope/src/main/java/com/sharecomparison/presentation/WebPageController.java index 78ff57d..f123bc8 100644 --- a/stockscope/src/main/java/com/sharecomparison/presentation/WebPageController.java +++ b/stockscope/src/main/java/com/sharecomparison/presentation/WebPageController.java @@ -48,6 +48,15 @@ public String compare( symbol1 = symbol1.trim().toUpperCase(); symbol2 = symbol2.trim().toUpperCase(); + if (start.isAfter(end)) { + model.addAttribute("error", "Start date must be on or before end date."); + model.addAttribute("symbol1", symbol1); + model.addAttribute("symbol2", symbol2); + model.addAttribute("startDate", start.toString()); + model.addAttribute("endDate", end.toString()); + return "index"; + } + List data1 = marketDataService.fetchSharePrices(symbol1, start, end); List data2 = marketDataService.fetchSharePrices(symbol2, start, end); From 577066df92eb8688cc45d6ec7ccf290675862f94 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 16:16:53 +0000 Subject: [PATCH 3/3] Fix WebPageController merge regression and keep date validation Co-authored-by: lukepring <68820847+lukepring@users.noreply.github.com> --- .../com/sharecomparison/presentation/WebPageController.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/stockscope/src/main/java/com/sharecomparison/presentation/WebPageController.java b/stockscope/src/main/java/com/sharecomparison/presentation/WebPageController.java index 4e2fae2..1801159 100644 --- a/stockscope/src/main/java/com/sharecomparison/presentation/WebPageController.java +++ b/stockscope/src/main/java/com/sharecomparison/presentation/WebPageController.java @@ -21,7 +21,6 @@ public WebPageController(IPriceController priceController) { @GetMapping("/") public String showForm(Model model) { - // Defaults for empty form on first visit model.addAttribute("symbol1", "AAPL"); model.addAttribute("symbol2", "MSFT"); model.addAttribute("startDate", LocalDate.now().minusYears(1).toString()); @@ -52,8 +51,7 @@ public String compare( return "index"; } - List data1 = marketDataService.fetchSharePrices(symbol1, start, end); - List data2 = marketDataService.fetchSharePrices(symbol2, start, end); + ComparisonResult result = priceController.comparePrices(symbol1, symbol2, start, end); if (result.getSymbol1Data().isEmpty() || result.getSymbol2Data().isEmpty()) { model.addAttribute("error", "No data available for one or both symbols in this range.");