From dd8506eb6c03b9f673bcbfdfee90b75576033bfa Mon Sep 17 00:00:00 2001 From: YIMSEBIN Date: Tue, 31 Oct 2023 01:03:34 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat(ysb):=20=EA=B2=80=EC=83=89=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 검색 키워드가 제목에 들어있는 경우만 간단하게 구현했습니다,, --- .../domain/game/controller/GameRestController.java | 7 +++++++ .../domain/game/repository/GameRepository.java | 2 ++ .../domain/game/service/GameService.java | 14 ++++++++++++++ 3 files changed, 23 insertions(+) diff --git a/src/main/java/com/cnusw/balancetalk/domain/game/controller/GameRestController.java b/src/main/java/com/cnusw/balancetalk/domain/game/controller/GameRestController.java index 9cdab92..5cac07f 100644 --- a/src/main/java/com/cnusw/balancetalk/domain/game/controller/GameRestController.java +++ b/src/main/java/com/cnusw/balancetalk/domain/game/controller/GameRestController.java @@ -34,6 +34,13 @@ public ResponseEntity create(@RequestBody GameRequest request, HttpServlet return ResponseEntity.ok(gameService.createGame(request, servletRequest)); } + @GetMapping("/games/search") + @Operation(summary = "게임 검색", description = "게임을 검색한다.") + public List search(@RequestParam(value = "searchKeyword") String keyword) { + List gameResponseList = gameService.searchGames(keyword); + return gameResponseList; + } + @GetMapping("/games") @Operation(summary = "모든 게임 조회", description = "모든 게임을 지정한 정렬 방법으로 가져온다.") public List getGames(@Parameter(name = "sortBy", description = "정렬 방법") @RequestParam(name = "sortBy", required = false) String sortBy) { diff --git a/src/main/java/com/cnusw/balancetalk/domain/game/repository/GameRepository.java b/src/main/java/com/cnusw/balancetalk/domain/game/repository/GameRepository.java index b95b907..e912188 100644 --- a/src/main/java/com/cnusw/balancetalk/domain/game/repository/GameRepository.java +++ b/src/main/java/com/cnusw/balancetalk/domain/game/repository/GameRepository.java @@ -16,5 +16,7 @@ public interface GameRepository extends JpaRepository { Game findGameById(Long id); + List findByTitleContaining(String keyword); + List findAllByActivationTrue(Sort sort); } diff --git a/src/main/java/com/cnusw/balancetalk/domain/game/service/GameService.java b/src/main/java/com/cnusw/balancetalk/domain/game/service/GameService.java index 0780ae7..f75728c 100644 --- a/src/main/java/com/cnusw/balancetalk/domain/game/service/GameService.java +++ b/src/main/java/com/cnusw/balancetalk/domain/game/service/GameService.java @@ -81,6 +81,20 @@ public Long createGame(GameRequest gameRequest, HttpServletRequest servletReques return game.getId(); } + // 검색창에서 입력한 키워드가 제목에 들어있는 게임 찾기 + public List searchGames(String keyword) { + List gameList = gameRepository.findByTitleContaining(keyword); + List gameResponseList = new ArrayList<>(); + + if (gameList.isEmpty()) return gameResponseList; + + for(Game game : gameList) { + gameResponseList.add(GameResponse.from(game)); + } + + return gameResponseList; + } + public GameResponse findById(Long id) { Game game = gameRepository.findById(id).orElseThrow(); return GameResponse.from(game); From 8608f0660ba90d339fa3aa00eb0c58a7b08213f4 Mon Sep 17 00:00:00 2001 From: YIMSEBIN Date: Tue, 31 Oct 2023 01:05:34 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat(ysb):=20=ED=8A=B8=EC=9C=84=EC=B9=98=20?= =?UTF-8?q?api=20=EA=B4=80=EB=A0=A8=20application-oauth.yml=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit application.yml파일에 include로 설정해두고 주석처리해뒀씁니다 --- src/main/resources/application-oauth.yml | 23 +++++++++++++++++++++++ src/main/resources/application.yml | 1 + 2 files changed, 24 insertions(+) create mode 100644 src/main/resources/application-oauth.yml diff --git a/src/main/resources/application-oauth.yml b/src/main/resources/application-oauth.yml new file mode 100644 index 0000000..f5a7472 --- /dev/null +++ b/src/main/resources/application-oauth.yml @@ -0,0 +1,23 @@ +#원래는 .gitignore에 넣어야하는 정보들이지만 그냥 올립니다! +spring: + security: + oauth2: + client: + registration: + twitch: + client-id: + client-secret: + client-authentication-method: POST + scope: + authorization-grant-type: authorization_code + provider: twitch + client-name: Twitch + redirect-uri: {baseUrl}/{action}/oauth2/code/{registrationId} + provider: + twitch: + authorization-uri: https://id.twitch.tv/oauth2/authorize?response_type=code + token-uri: https://id.twitch.tv/oauth2/token + user-info-uri: https://id.twitch.tv/oauth2/userinfo + user-info-authentication-method: POST + jwk-set-uri: https://id.twitch.tv/oauth2/keys + user-name-attribute: sub \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index af5428e..8f5ae10 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,6 +1,7 @@ spring: profiles: active: prod +# include: oauth logging: level: