Fix following
This commit is contained in:
parent
8f797a51f1
commit
a62980dcd5
1 changed files with 25 additions and 7 deletions
|
|
@ -3,12 +3,16 @@ package org.operaton.fitpub.controller;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.operaton.fitpub.model.dto.TimelineActivityDTO;
|
import org.operaton.fitpub.model.dto.TimelineActivityDTO;
|
||||||
|
import org.operaton.fitpub.model.entity.User;
|
||||||
|
import org.operaton.fitpub.repository.UserRepository;
|
||||||
import org.operaton.fitpub.service.TimelineService;
|
import org.operaton.fitpub.service.TimelineService;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.PageRequest;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||||
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
@ -24,6 +28,20 @@ import java.util.UUID;
|
||||||
public class TimelineController {
|
public class TimelineController {
|
||||||
|
|
||||||
private final TimelineService timelineService;
|
private final TimelineService timelineService;
|
||||||
|
private final UserRepository userRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to get user ID from authenticated UserDetails.
|
||||||
|
*
|
||||||
|
* @param userDetails the authenticated user details
|
||||||
|
* @return the user's UUID
|
||||||
|
* @throws UsernameNotFoundException if user not found
|
||||||
|
*/
|
||||||
|
private UUID getUserId(UserDetails userDetails) {
|
||||||
|
User user = userRepository.findByUsername(userDetails.getUsername())
|
||||||
|
.orElseThrow(() -> new UsernameNotFoundException("User not found: " + userDetails.getUsername()));
|
||||||
|
return user.getId();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the federated timeline for the authenticated user.
|
* Get the federated timeline for the authenticated user.
|
||||||
|
|
@ -31,18 +49,18 @@ public class TimelineController {
|
||||||
*
|
*
|
||||||
* GET /api/timeline/federated?page=0&size=20
|
* GET /api/timeline/federated?page=0&size=20
|
||||||
*
|
*
|
||||||
* @param authentication the authenticated user
|
* @param userDetails the authenticated user details
|
||||||
* @param page page number (default: 0)
|
* @param page page number (default: 0)
|
||||||
* @param size page size (default: 20)
|
* @param size page size (default: 20)
|
||||||
* @return page of timeline activities
|
* @return page of timeline activities
|
||||||
*/
|
*/
|
||||||
@GetMapping("/federated")
|
@GetMapping("/federated")
|
||||||
public ResponseEntity<Page<TimelineActivityDTO>> getFederatedTimeline(
|
public ResponseEntity<Page<TimelineActivityDTO>> getFederatedTimeline(
|
||||||
Authentication authentication,
|
@AuthenticationPrincipal UserDetails userDetails,
|
||||||
@RequestParam(defaultValue = "0") int page,
|
@RequestParam(defaultValue = "0") int page,
|
||||||
@RequestParam(defaultValue = "20") int size
|
@RequestParam(defaultValue = "20") int size
|
||||||
) {
|
) {
|
||||||
UUID userId = UUID.fromString(authentication.getName());
|
UUID userId = getUserId(userDetails);
|
||||||
log.debug("Federated timeline request from user: {}", userId);
|
log.debug("Federated timeline request from user: {}", userId);
|
||||||
|
|
||||||
Pageable pageable = PageRequest.of(page, size);
|
Pageable pageable = PageRequest.of(page, size);
|
||||||
|
|
@ -80,18 +98,18 @@ public class TimelineController {
|
||||||
*
|
*
|
||||||
* GET /api/timeline/user?page=0&size=20
|
* GET /api/timeline/user?page=0&size=20
|
||||||
*
|
*
|
||||||
* @param authentication the authenticated user
|
* @param userDetails the authenticated user details
|
||||||
* @param page page number (default: 0)
|
* @param page page number (default: 0)
|
||||||
* @param size page size (default: 20)
|
* @param size page size (default: 20)
|
||||||
* @return page of timeline activities
|
* @return page of timeline activities
|
||||||
*/
|
*/
|
||||||
@GetMapping("/user")
|
@GetMapping("/user")
|
||||||
public ResponseEntity<Page<TimelineActivityDTO>> getUserTimeline(
|
public ResponseEntity<Page<TimelineActivityDTO>> getUserTimeline(
|
||||||
Authentication authentication,
|
@AuthenticationPrincipal UserDetails userDetails,
|
||||||
@RequestParam(defaultValue = "0") int page,
|
@RequestParam(defaultValue = "0") int page,
|
||||||
@RequestParam(defaultValue = "20") int size
|
@RequestParam(defaultValue = "20") int size
|
||||||
) {
|
) {
|
||||||
UUID userId = UUID.fromString(authentication.getName());
|
UUID userId = getUserId(userDetails);
|
||||||
log.debug("User timeline request from user: {}", userId);
|
log.debug("User timeline request from user: {}", userId);
|
||||||
|
|
||||||
Pageable pageable = PageRequest.of(page, size);
|
Pageable pageable = PageRequest.of(page, size);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue