Skip to content

Commit 2e922c1

Browse files
authored
Merge pull request #32 from GDSCINHA/develop
[FEAT] 동아리 박람회 게임 cors 추가 및 전체 랭킹 API 생성
2 parents a1bc6a0 + 9126e09 commit 2e922c1

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

gdgoc/src/main/java/inha/gdgoc/config/CorsConfig.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ public WebMvcConfigurer corsConfigurer() {
1515
@Override
1616
public void addCorsMappings(@NonNull CorsRegistry registry) {
1717
registry.addMapping("/**")
18-
.allowedOrigins("http://localhost:3000", "https://gdgocinha.com")
18+
.allowedOrigins("http://localhost:3000", "https://gdgocinha.com",
19+
"https://typing-game-alpha-umber.vercel.app")
1920
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
2021
.allowedHeaders("*")
2122
.allowCredentials(true);

gdgoc/src/main/java/inha/gdgoc/domain/game/controller/GameUserController.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
import inha.gdgoc.domain.game.dto.request.GameUserRequest;
44
import inha.gdgoc.domain.game.dto.response.GameUserResponse;
5-
import inha.gdgoc.domain.game.entity.GameUser;
65
import inha.gdgoc.domain.game.service.GameUserService;
76
import inha.gdgoc.global.common.ApiResponse;
87
import java.util.List;
98
import lombok.RequiredArgsConstructor;
109
import org.springframework.http.ResponseEntity;
10+
import org.springframework.web.bind.annotation.GetMapping;
1111
import org.springframework.web.bind.annotation.PostMapping;
1212
import org.springframework.web.bind.annotation.RequestBody;
1313
import org.springframework.web.bind.annotation.RestController;
@@ -22,4 +22,9 @@ public class GameUserController {
2222
public ResponseEntity<ApiResponse<List<GameUserResponse>>> saveGameResult(@RequestBody GameUserRequest request) {
2323
return ResponseEntity.ok(ApiResponse.success(gameUserService.saveGameResultAndGetRanking(request)));
2424
}
25+
26+
@GetMapping("/game/results")
27+
public ResponseEntity<ApiResponse<List<GameUserResponse>>> getUserRankings() {
28+
return ResponseEntity.ok(ApiResponse.success(gameUserService.findUserRankings()));
29+
}
2530
}

gdgoc/src/main/java/inha/gdgoc/domain/game/service/GameUserService.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import java.time.ZoneId;
1111
import java.util.List;
1212
import java.util.stream.Collectors;
13-
import java.util.stream.IntStream;
1413
import lombok.RequiredArgsConstructor;
1514
import org.springframework.stereotype.Service;
1615

@@ -37,7 +36,20 @@ public List<GameUserResponse> saveGameResultAndGetRanking(GameUserRequest gameUs
3736
return results.stream()
3837
.map(user -> new GameUserResponse(results.indexOf(user) + 1, user))
3938
.collect(Collectors.toList());
39+
}
40+
41+
public List<GameUserResponse> findUserRankings() {
42+
LocalDate today = LocalDate.now(ZoneId.of("Asia/Seoul"));
43+
LocalDateTime startOfDay = today.atStartOfDay(); // 00:00:00
44+
LocalDateTime endOfDay = today.atTime(23, 59, 59); // 23:59:59
45+
46+
// 전체 유저 순위 리스트 가져오기
47+
List<GameUser> results = gameUserRepository.findAllByCreatedAtBetweenOrderByTypingSpeedAsc(startOfDay,
48+
endOfDay);
4049

50+
return results.stream()
51+
.map(user -> new GameUserResponse(results.indexOf(user) + 1, user))
52+
.collect(Collectors.toList());
4153
}
4254

4355
}

0 commit comments

Comments
 (0)