From c6185b0b263f6133e77ea448d93e694fa1e51009 Mon Sep 17 00:00:00 2001 From: nnijgnus Date: Tue, 20 Aug 2024 15:02:19 +0900 Subject: [PATCH 1/4] =?UTF-8?q?chore:=20log=20=ED=8C=8C=EC=9D=BC=EB=93=A4?= =?UTF-8?q?=20gitignore=EC=97=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ab1d5719..27242490 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,6 @@ /.idea/ /Server/out/ /Server/src/main/resources/application-local.yml -/logs/ \ No newline at end of file +/Server/logs/ +/logs/ + From 212c3b6bdfde88b019386df3bd72d533014748f7 Mon Sep 17 00:00:00 2001 From: nnijgnus Date: Tue, 20 Aug 2024 15:12:34 +0900 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=EC=9E=98=EB=AA=BB=EB=90=9C=20url?= =?UTF-8?q?=20=EC=9E=85=EB=A0=A5=EC=8B=9C=20=EB=A9=94=EC=9D=B8=20=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=EB=A1=9C=20=EB=A6=AC=EB=8B=A4=EC=9D=B4?= =?UTF-8?q?=EB=A0=89=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/JGS/CasperEvent/domain/url/service/UrlService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Server/src/main/java/JGS/CasperEvent/domain/url/service/UrlService.java b/Server/src/main/java/JGS/CasperEvent/domain/url/service/UrlService.java index 544d4846..263c18a9 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/url/service/UrlService.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/url/service/UrlService.java @@ -60,9 +60,9 @@ public ShortenUrlResponseDto generateShortUrl(BaseUser user) throws NoSuchPaddin } // 원본 url 조회 테스트 - public String getOriginalUrl(String encodedId){ + public String getOriginalUrl(String encodedId) { Long urlId = Base62Utils.decode(encodedId); - Url url = urlRepository.findById(urlId).orElseThrow(NoSuchElementException::new); + Url url = urlRepository.findById(urlId).orElseGet(() -> new Url(clientUrl)); return url.getOriginalUrl(); } From 1628207e200a5d2daf2b23d7dde0a4a5718d62ab Mon Sep 17 00:00:00 2001 From: nnijgnus Date: Tue, 20 Aug 2024 15:13:28 +0900 Subject: [PATCH 3/4] =?UTF-8?q?docs:=20url=20Service=EC=97=90=20Swagger=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9=ED=95=9C=20=EB=AC=B8=EC=84=9C=ED=99=94=20?= =?UTF-8?q?=EC=A7=84=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/url/controller/UrlController.java | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/Server/src/main/java/JGS/CasperEvent/domain/url/controller/UrlController.java b/Server/src/main/java/JGS/CasperEvent/domain/url/controller/UrlController.java index 28c1086f..35157526 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/url/controller/UrlController.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/url/controller/UrlController.java @@ -3,6 +3,9 @@ import JGS.CasperEvent.domain.url.dto.ShortenUrlResponseDto; import JGS.CasperEvent.domain.url.service.UrlService; import JGS.CasperEvent.global.entity.BaseUser; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -26,21 +29,31 @@ public UrlController(UrlService urlService) { this.urlService = urlService; } - // 공유링크 생성 + @Operation(summary = "공유 링크 생성", description = "사용자가 공유할 URL을 단축 링크로 생성합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "201", description = "공유 링크 생성 성공"), + @ApiResponse(responseCode = "400", description = "잘못된 요청 데이터") + }) @PostMapping - public ResponseEntity generateShortUrl(HttpServletRequest request) throws NoSuchPaddingException, IllegalBlockSizeException, NoSuchAlgorithmException, BadPaddingException, InvalidKeyException { + public ResponseEntity generateShortUrl(HttpServletRequest request) + throws NoSuchPaddingException, IllegalBlockSizeException, NoSuchAlgorithmException, BadPaddingException, InvalidKeyException { BaseUser user = (BaseUser) request.getAttribute("user"); return ResponseEntity .status(HttpStatus.CREATED) .body(urlService.generateShortUrl(user)); } - // 공유링크 접속 + @Operation(summary = "공유 링크 접속", description = "단축 링크를 통해 원본 URL로 리다이렉트합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "302", description = "리다이렉트 성공"), + @ApiResponse(responseCode = "404", description = "짧은 링크가 존재하지 않음") + }) @GetMapping("/{encodedId}") - public ResponseEntity redirectOriginalUrl(@PathVariable String encodedId){ + public ResponseEntity redirectOriginalUrl(@PathVariable String encodedId) { + String originalUrl = urlService.getOriginalUrl(encodedId); return ResponseEntity .status(HttpStatus.FOUND) - .header("Location", urlService.getOriginalUrl(encodedId)) + .header("Location", originalUrl) .build(); } } From 77446f50292b27ae04c5d62df9ee81442d9e6af5 Mon Sep 17 00:00:00 2001 From: nnijgnus Date: Tue, 20 Aug 2024 15:14:36 +0900 Subject: [PATCH 4/4] =?UTF-8?q?chore:=20=EC=BB=A8=EB=B2=A4=EC=85=98?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=9D=BC=20=EB=B0=98=ED=99=98=EA=B0=92=20?= =?UTF-8?q?=EC=98=81=EC=96=B4=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/url/controller/UrlController.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Server/src/main/java/JGS/CasperEvent/domain/url/controller/UrlController.java b/Server/src/main/java/JGS/CasperEvent/domain/url/controller/UrlController.java index 35157526..7c206cc5 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/url/controller/UrlController.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/url/controller/UrlController.java @@ -30,10 +30,7 @@ public UrlController(UrlService urlService) { } @Operation(summary = "공유 링크 생성", description = "사용자가 공유할 URL을 단축 링크로 생성합니다.") - @ApiResponses(value = { - @ApiResponse(responseCode = "201", description = "공유 링크 생성 성공"), - @ApiResponse(responseCode = "400", description = "잘못된 요청 데이터") - }) + @ApiResponse(responseCode = "201", description = "Short URL creation successful") @PostMapping public ResponseEntity generateShortUrl(HttpServletRequest request) throws NoSuchPaddingException, IllegalBlockSizeException, NoSuchAlgorithmException, BadPaddingException, InvalidKeyException { @@ -44,10 +41,7 @@ public ResponseEntity generateShortUrl(HttpServletRequest } @Operation(summary = "공유 링크 접속", description = "단축 링크를 통해 원본 URL로 리다이렉트합니다.") - @ApiResponses(value = { - @ApiResponse(responseCode = "302", description = "리다이렉트 성공"), - @ApiResponse(responseCode = "404", description = "짧은 링크가 존재하지 않음") - }) + @ApiResponse(responseCode = "302", description = "Redirect successful") @GetMapping("/{encodedId}") public ResponseEntity redirectOriginalUrl(@PathVariable String encodedId) { String originalUrl = urlService.getOriginalUrl(encodedId);