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); 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: