diff --git a/src/main/java/com/pecacm/backend/controllers/UserController.java b/src/main/java/com/pecacm/backend/controllers/UserController.java index a466a2c..660c623 100644 --- a/src/main/java/com/pecacm/backend/controllers/UserController.java +++ b/src/main/java/com/pecacm/backend/controllers/UserController.java @@ -10,7 +10,7 @@ import com.pecacm.backend.model.AuthenticationRequest; import com.pecacm.backend.response.AuthenticationResponse; import com.pecacm.backend.response.RegisterResponse; -import com.pecacm.backend.response.UserEventResponse; +import com.pecacm.backend.response.UserEventDetails; import com.pecacm.backend.services.VerificationService; import com.pecacm.backend.services.JwtService; import com.pecacm.backend.services.UserService; @@ -28,6 +28,7 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.UUID; @RestController @@ -111,7 +112,7 @@ public ResponseEntity getRank(@RequestParam @NonNull Integer score) { } @GetMapping("/leaderboard") - public ResponseEntity> getLeaderboard(@RequestParam @Nullable Integer offset, @RequestParam @Nullable Integer pageSize) { + public ResponseEntity> getLeaderboard(@RequestParam @Nullable Integer offset, @RequestParam @Nullable Integer pageSize) { if (offset == null) offset = 0; if (pageSize == null) pageSize = 20; // returning first 20 users @@ -122,14 +123,14 @@ public ResponseEntity> getLeaderboard(@RequestParam @Nullable Integer } @GetMapping("/leaderboard/{batch}") - public ResponseEntity> getLeaderboardByBatch(@PathVariable Integer batch, @RequestParam @Nullable Integer offset, @RequestParam @Nullable Integer pageSize) { + public ResponseEntity> getLeaderboardByBatch(@PathVariable Integer batch, @RequestParam @Nullable Integer offset, @RequestParam @Nullable Integer pageSize) { if (offset == null) offset = 0; if (pageSize == null) pageSize = 20; // returning first 20 users if (offset < 0) throw new AcmException("offset cannot be < 0", HttpStatus.BAD_REQUEST); if (pageSize <= 0) throw new AcmException("pageSize must be >= 0", HttpStatus.BAD_REQUEST); - Page users = userService.getLeaderboardByBatch(batch, offset, pageSize); + List users = userService.getLeaderboardByBatch(batch, offset, pageSize); return ResponseEntity.ok(users); } @@ -143,7 +144,7 @@ public ResponseEntity updateUser(@RequestBody User user) { @GetMapping("/events") @PreAuthorize(Constants.HAS_ROLE_MEMBER_AND_ABOVE) - public ResponseEntity> getEventsForUser(@RequestParam @Nullable EventRole eventRole, @RequestParam @Nullable Integer pageSize, @RequestParam @Nullable Integer offset) { + public ResponseEntity> getEventsForUser(@RequestParam @Nullable EventRole eventRole, @RequestParam @Nullable Integer pageSize, @RequestParam @Nullable Integer offset) { if (offset == null) offset = 0; if (pageSize == null) pageSize = 20; // returning first 20 users diff --git a/src/main/java/com/pecacm/backend/response/UserEventResponse.java b/src/main/java/com/pecacm/backend/response/UserEventResponse.java deleted file mode 100644 index 816e61a..0000000 --- a/src/main/java/com/pecacm/backend/response/UserEventResponse.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.pecacm.backend.response; - -import com.pecacm.backend.enums.EventRole; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.Setter; - -import java.time.LocalDate; -import java.time.LocalDateTime; - -@AllArgsConstructor -@Setter -@Getter -public class UserEventResponse { - private Integer eventId; - private String eventName; - private EventRole eventRole; - private Integer xp_gained; - private LocalDateTime eventEnd; -} diff --git a/src/main/java/com/pecacm/backend/services/UserService.java b/src/main/java/com/pecacm/backend/services/UserService.java index b148b48..b51f98b 100644 --- a/src/main/java/com/pecacm/backend/services/UserService.java +++ b/src/main/java/com/pecacm/backend/services/UserService.java @@ -4,7 +4,6 @@ import com.pecacm.backend.constants.ErrorConstants; import com.pecacm.backend.entities.Transaction; import com.pecacm.backend.entities.User; -import com.pecacm.backend.entities.Event; import com.pecacm.backend.entities.VerificationToken; import com.pecacm.backend.enums.EventRole; import com.pecacm.backend.enums.Role; @@ -13,11 +12,9 @@ import com.pecacm.backend.repository.TransactionRepository; import com.pecacm.backend.repository.UserRepository; import com.pecacm.backend.repository.VerificationTokenRepository; -import com.pecacm.backend.response.UserEventResponse; +import com.pecacm.backend.response.UserEventDetails; import org.apache.logging.log4j.util.Strings; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.http.HttpStatus; import org.springframework.security.core.context.SecurityContextHolder; @@ -27,7 +24,6 @@ import org.springframework.transaction.annotation.Transactional; import java.util.*; -import java.util.stream.Collectors; @Service public class UserService implements UserDetailsService { @@ -121,8 +117,8 @@ public Long getRank(Integer score) { return userRepository.countByXpGreaterThan(score) + 1; } - public Page getLeaderboard(Integer offset, Integer pageSize) { - return userRepository.findAllByOrderByXpDesc(PageRequest.of(offset, pageSize)); + public List getLeaderboard(Integer offset, Integer pageSize) { + return userRepository.findAllByOrderByXpDesc(PageRequest.of(offset, pageSize)).getContent(); } public User updateUser(User updatedUser, String email) { @@ -158,17 +154,17 @@ public User updateUser(User updatedUser, String email) { } } - public Page getLeaderboardByBatch(Integer batch, Integer offset, Integer pageSize) { - return userRepository.findAllByBatch(batch, PageRequest.of(offset, pageSize)); + public List getLeaderboardByBatch(Integer batch, Integer offset, Integer pageSize) { + return userRepository.findAllByBatch(batch, PageRequest.of(offset, pageSize)).getContent(); } - public Page getEventsForUserWithRole(EventRole eventRole, Integer pageSize, Integer offset) { + public List getEventsForUserWithRole(EventRole eventRole, Integer pageSize, Integer offset) { String email = (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); User user = this.loadUserByUsername(email); Page transactionsPage = transactionRepository.findByUserIdAndRole(user.getId(), eventRole, PageRequest.of(offset, pageSize)); - List eventResponseList = transactionsPage.getContent().stream() - .map(transaction -> new UserEventResponse( + return transactionsPage.getContent().stream() + .map(transaction -> new UserEventDetails( transaction.getEvent().getId(), transaction.getEvent().getTitle(), eventRole, @@ -176,17 +172,15 @@ public Page getEventsForUserWithRole(EventRole eventRole, Int transaction.getEvent().getEndDate() )) .toList(); - - return new PageImpl<>(eventResponseList, transactionsPage.getPageable(), transactionsPage.getTotalElements()); } - public Page getEventsForUser(Integer pageSize, Integer offset) { + public List getEventsForUser(Integer pageSize, Integer offset) { String email = (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); User user = this.loadUserByUsername(email); Page transactionsPage = transactionRepository.findByUserId(user.getId(), PageRequest.of(offset, pageSize)); - List eventResponseList = transactionsPage.getContent().stream() - .map(transaction -> new UserEventResponse( + return transactionsPage.getContent().stream() + .map(transaction -> new UserEventDetails( transaction.getEvent().getId(), transaction.getEvent().getTitle(), transaction.getRole(), @@ -194,7 +188,5 @@ public Page getEventsForUser(Integer pageSize, Integer offset transaction.getEvent().getEndDate() )) .toList(); - - return new PageImpl<>(eventResponseList, transactionsPage.getPageable(), transactionsPage.getTotalElements()); } }