From 6c8205b90c1e749835e5f30b2fceacd465fd91d3 Mon Sep 17 00:00:00 2001 From: Sean Date: Tue, 6 Jan 2026 05:46:27 -0500 Subject: [PATCH] small fix --- .../controllers/GoController.java | 38 ------------------ .../ShortLinkRedirectController.java | 39 ++++++++++--------- 2 files changed, 21 insertions(+), 56 deletions(-) delete mode 100644 src/main/java/group/goforward/battlbuilder/controllers/GoController.java diff --git a/src/main/java/group/goforward/battlbuilder/controllers/GoController.java b/src/main/java/group/goforward/battlbuilder/controllers/GoController.java deleted file mode 100644 index 6261b70..0000000 --- a/src/main/java/group/goforward/battlbuilder/controllers/GoController.java +++ /dev/null @@ -1,38 +0,0 @@ -package group.goforward.battlbuilder.controllers; - -import group.goforward.battlbuilder.model.ShortLink; -import group.goforward.battlbuilder.repos.ShortLinkRepository; -import org.springframework.http.HttpHeaders; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; - -@Controller -public class GoController { - - private final ShortLinkRepository repo; - - public GoController(ShortLinkRepository repo) { - this.repo = repo; - } - - @GetMapping("/go/{code}") - public ResponseEntity go(@PathVariable String code) { - ShortLink link = repo.findByCodeAndIsActiveTrue(code).orElse(null); - if (link == null) return ResponseEntity.notFound().build(); - - String dest = link.getDestinationUrl(); - - // Future: BUILD share links can compute a frontend URL here - // if ("BUILD".equalsIgnoreCase(link.getType()) && link.getBuildUuid() != null) { - // dest = "https://app.battlbuilder.com/build/" + link.getBuildUuid(); - // } - - if (dest == null || dest.isBlank()) return ResponseEntity.notFound().build(); - - return ResponseEntity.status(302) - .header(HttpHeaders.LOCATION, dest) - .build(); - } -} \ No newline at end of file diff --git a/src/main/java/group/goforward/battlbuilder/controllers/ShortLinkRedirectController.java b/src/main/java/group/goforward/battlbuilder/controllers/ShortLinkRedirectController.java index beba4cb..86ea5d6 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/ShortLinkRedirectController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/ShortLinkRedirectController.java @@ -3,7 +3,9 @@ package group.goforward.battlbuilder.controllers; import group.goforward.battlbuilder.repos.ShortLinkRepository; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.server.ResponseStatusException; import java.net.URI; @@ -22,27 +24,28 @@ public class ShortLinkRedirectController { var link = repo.findByCodeAndIsActiveTrue(code) .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND)); - if (!"BUY".equals(link.getType()) || link.getDestinationUrl() == null) { + String dest; + + if ("BUY".equalsIgnoreCase(link.getType())) { + dest = link.getDestinationUrl(); + if (dest == null || dest.isBlank()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND); + } + + } else if ("BUILD".equalsIgnoreCase(link.getType())) { + if (link.getBuildUuid() == null) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND); + } + + // ✅ Adjust to your actual frontend route + base URL if needed (dev vs prod) + dest = "/builds/" + link.getBuildUuid(); + + } else { throw new ResponseStatusException(HttpStatus.NOT_FOUND); } return ResponseEntity.status(HttpStatus.FOUND) - .location(URI.create(link.getDestinationUrl())) - .build(); - } - - @GetMapping("/b/{code}") - public ResponseEntity build(@PathVariable String code) { - var link = repo.findByCodeAndIsActiveTrue(code) - .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND)); - - if (!"BUILD".equals(link.getType()) || link.getBuildUuid() == null) { - throw new ResponseStatusException(HttpStatus.NOT_FOUND); - } - - // Adjust to your actual frontend route - return ResponseEntity.status(HttpStatus.FOUND) - .location(URI.create("/builds/" + link.getBuildUuid())) + .location(URI.create(dest)) .build(); } } \ No newline at end of file