Skip to content

Commit 5ad9543

Browse files
committed
rm deprecated endpoint & dto + fix tests
1 parent 89b2765 commit 5ad9543

9 files changed

Lines changed: 26 additions & 52 deletions

File tree

src/main/java/com/danielagapov/spawn/activity/internal/repositories/IActivityRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,6 @@ List<Activity> getPastActivitiesWhereUserInvited(
4444
@Param("now") OffsetDateTime now);
4545

4646
// finds the most recently updated activity created by a user
47-
@Query("SELECT a FROM Activity a WHERE a.creator.id = :creatorId ORDER BY a.lastUpdated DESC LIMIT 1")
48-
Optional<Activity> findTopByCreatorIdOrderByLastUpdatedDesc(@Param("creatorId") UUID creatorId);
47+
@Query("SELECT a FROM Activity a WHERE a.creator.id = :creatorId ORDER BY a.lastUpdated DESC")
48+
Optional<Activity> findTopByCreatorIdOrderByLastUpdatedDesc(@Param("creatorId") UUID creatorId, org.springframework.data.domain.Limit limit);
4949
}

src/main/java/com/danielagapov/spawn/activity/internal/repositories/IActivityUserRepository.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@
88
import org.springframework.data.jpa.repository.JpaRepository;
99
import org.springframework.data.jpa.repository.Query;
1010
import org.springframework.data.repository.query.Param;
11+
import org.springframework.stereotype.Repository;
1112

1213
import java.time.OffsetDateTime;
1314
import java.util.List;
1415
import java.util.Optional;
1516
import java.util.UUID;
1617

18+
@Repository
1719
public interface IActivityUserRepository extends JpaRepository<ActivityUser, ActivityUsersId> {
1820
List<ActivityUser> findByActivity_Id(UUID activityId);
1921

@@ -30,7 +32,7 @@ public interface IActivityUserRepository extends JpaRepository<ActivityUser, Act
3032
@Query("SELECT au.activity.id FROM ActivityUser au WHERE au.user.id = :userId AND au.status = :status AND au.activity.endTime <= :now")
3133
List<UUID> findPastActivityIdsForUser(@Param("userId") UUID userId, @Param("status") ParticipationStatus status, @Param("now") OffsetDateTime now, Limit limit);
3234

33-
@Query("SELECT DISTINCT new com.danielagapov.spawn.activity.api.dto.UserIdActivityTimeDTO(au.user.id, MAX(au.activity.startTime)) FROM ActivityUser au WHERE au.activity.id IN :activityIds AND au.status = :status AND au.user.id != :userId GROUP BY au.user.id ORDER BY MAX(au.activity.startTime) DESC")
35+
@Query("SELECT DISTINCT new com.danielagapov.spawn.activity.api.dto.UserIdActivityTimeDTO(au.user.id, MAX(au.activity.startTime)) FROM ActivityUser au WHERE au.activity.id IN :activityIds AND au.status = :status AND au.user.id <> :userId GROUP BY au.user.id ORDER BY MAX(au.activity.startTime) DESC")
3436
List<UserIdActivityTimeDTO> findOtherUserIdsByActivityIds(List<UUID> activityIds, UUID userId, ParticipationStatus status);
3537

3638
Optional<ActivityUser> findByActivity_IdAndUser_Id(UUID activityId, UUID userId);
@@ -56,6 +58,6 @@ public interface IActivityUserRepository extends JpaRepository<ActivityUser, Act
5658
@Query("SELECT au FROM ActivityUser au WHERE au.activity.id IN :activityIds")
5759
List<ActivityUser> findAllByActivityIds(@Param("activityIds") List<UUID> activityIds);
5860

59-
@Query("SELECT au FROM ActivityUser au JOIN au.activity a WHERE au.user.id = :userId AND au.status = :status ORDER BY a.lastUpdated DESC LIMIT 1")
60-
Optional<ActivityUser> findTopByUserIdAndStatusOrderByActivityLastUpdatedDesc(@Param("userId") UUID userId, @Param("status") ParticipationStatus status);
61+
@Query("SELECT au FROM ActivityUser au JOIN au.activity a WHERE au.user.id = :userId AND au.status = :status ORDER BY a.lastUpdated DESC")
62+
Optional<ActivityUser> findTopByUserIdAndStatusOrderByActivityLastUpdatedDesc(@Param("userId") UUID userId, @Param("status") ParticipationStatus status, org.springframework.data.domain.Limit limit);
6163
}

src/main/java/com/danielagapov/spawn/activity/internal/services/ActivityService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,7 +1168,7 @@ public List<FullFeedActivityDTO> convertActivitiesToFullFeedSelfOwnedActivities(
11681168
@Override
11691169
public Instant getLatestCreatedActivityTimestamp(UUID userId) {
11701170
try {
1171-
return repository.findTopByCreatorIdOrderByLastUpdatedDesc(userId)
1171+
return repository.findTopByCreatorIdOrderByLastUpdatedDesc(userId, org.springframework.data.domain.Limit.of(1))
11721172
.map(Activity::getLastUpdated)
11731173
.orElse(null);
11741174
} catch (DataAccessException e) {
@@ -1180,7 +1180,7 @@ public Instant getLatestCreatedActivityTimestamp(UUID userId) {
11801180
@Override
11811181
public Instant getLatestInvitedActivityTimestamp(UUID userId) {
11821182
try {
1183-
return activityUserRepository.findTopByUserIdAndStatusOrderByActivityLastUpdatedDesc(userId, ParticipationStatus.invited)
1183+
return activityUserRepository.findTopByUserIdAndStatusOrderByActivityLastUpdatedDesc(userId, ParticipationStatus.invited, org.springframework.data.domain.Limit.of(1))
11841184
.map(ActivityUser -> ActivityUser.getActivity().getLastUpdated())
11851185
.orElse(null);
11861186
} catch (DataAccessException e) {
@@ -1192,7 +1192,7 @@ public Instant getLatestInvitedActivityTimestamp(UUID userId) {
11921192
@Override
11931193
public Instant getLatestUpdatedActivityTimestamp(UUID userId) {
11941194
try {
1195-
return activityUserRepository.findTopByUserIdAndStatusOrderByActivityLastUpdatedDesc(userId, ParticipationStatus.participating)
1195+
return activityUserRepository.findTopByUserIdAndStatusOrderByActivityLastUpdatedDesc(userId, ParticipationStatus.participating, org.springframework.data.domain.Limit.of(1))
11961196
.map(ActivityUser -> ActivityUser.getActivity().getLastUpdated())
11971197
.orElse(null);
11981198
} catch (DataAccessException e) {

src/main/java/com/danielagapov/spawn/analytics/internal/repositories/IFeedbackSubmissionRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
import com.danielagapov.spawn.analytics.internal.domain.FeedbackSubmission;
44
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.stereotype.Repository;
56

67
import java.util.UUID;
78

9+
@Repository
810
public interface IFeedbackSubmissionRepository extends JpaRepository<FeedbackSubmission, UUID> {
911
}

src/main/java/com/danielagapov/spawn/analytics/internal/repositories/IReportedContentRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
import com.danielagapov.spawn.shared.util.ReportType;
55
import com.danielagapov.spawn.analytics.internal.domain.ReportedContent;
66
import org.springframework.data.jpa.repository.JpaRepository;
7+
import org.springframework.stereotype.Repository;
78

89
import java.util.List;
910
import java.util.UUID;
1011

12+
@Repository
1113
public interface IReportedContentRepository extends JpaRepository<ReportedContent, UUID> {
1214
List<ReportedContent> getAllByContentTypeAndReportType(EntityType contentType, ReportType reportType);
1315

src/main/java/com/danielagapov/spawn/auth/internal/repositories/IEmailVerificationRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import com.danielagapov.spawn.auth.internal.domain.EmailVerification;
44
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.stereotype.Repository;
56

67
import java.util.UUID;
78

9+
@Repository
810
public interface IEmailVerificationRepository extends JpaRepository<EmailVerification, UUID> {
911

1012
EmailVerification findByEmail(String email);

src/main/java/com/danielagapov/spawn/user/api/UserController.java

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -290,32 +290,6 @@ public ResponseEntity<List<RecentlySpawnedUserDTO>> getRecentlySpawnedWithUsers(
290290
}
291291
}
292292

293-
// full path: /api/v1/users/{userId}/is-friend/{potentialFriendId}
294-
// @deprecated Use GET /api/v1/users/{id}?requestingUserId={requestingUserId} instead.
295-
// The user endpoint now returns relationshipStatus and pendingFriendRequestId fields
296-
// when requestingUserId is provided, eliminating the need for this separate endpoint.
297-
@Deprecated(since = "1.0", forRemoval = true)
298-
@GetMapping("{userId}/is-friend/{potentialFriendId}")
299-
public ResponseEntity<Boolean> isUserFriendOfUser(
300-
@PathVariable UUID userId,
301-
@PathVariable UUID potentialFriendId) {
302-
if (userId == null || potentialFriendId == null) {
303-
logger.error("Invalid parameters: userId or potentialFriendId is null");
304-
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
305-
}
306-
307-
try {
308-
boolean isFriend = userService.isUserFriendOfUser(userId, potentialFriendId);
309-
return new ResponseEntity<>(isFriend, HttpStatus.OK);
310-
} catch (BaseNotFoundException e) {
311-
logger.error("User not found for friend check: " + e.getMessage());
312-
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
313-
} catch (Exception e) {
314-
logger.error("Error checking if user " + LoggingUtils.formatUserIdInfo(userId) + " is friend of user " + LoggingUtils.formatUserIdInfo(potentialFriendId) + ": " + e.getMessage());
315-
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
316-
}
317-
}
318-
319293
// full path: /api/v1/users/{userId}/profile-info
320294
@GetMapping("{userId}/profile-info")
321295
public ResponseEntity<UserProfileInfoDTO> getUserProfileInfo(@PathVariable UUID userId) {

src/main/java/com/danielagapov/spawn/user/api/dto/BaseUserDTO.java

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,15 @@ public BaseUserDTO(UUID id, String name, String email, String username, String b
3737
this.pendingFriendRequestId = null;
3838
}
3939

40+
public BaseUserDTO(UUID id, String name, String email, String username, String bio, String profilePicture, Boolean hasCompletedOnboarding, String provider) {
41+
super(id, name, email, username, bio);
42+
this.profilePicture = profilePicture;
43+
this.hasCompletedOnboarding = hasCompletedOnboarding != null ? hasCompletedOnboarding : false;
44+
this.provider = provider;
45+
this.relationshipStatus = null;
46+
this.pendingFriendRequestId = null;
47+
}
48+
4049
@JsonCreator
4150
public BaseUserDTO(
4251
@JsonProperty("id") UUID id,
@@ -56,22 +65,4 @@ public BaseUserDTO(
5665
this.relationshipStatus = relationshipStatus;
5766
this.pendingFriendRequestId = pendingFriendRequestId;
5867
}
59-
60-
// Backward-compatible constructor (without relationship fields)
61-
public BaseUserDTO(
62-
UUID id,
63-
String name,
64-
String email,
65-
String username,
66-
String bio,
67-
String profilePicture,
68-
Boolean hasCompletedOnboarding,
69-
String provider) {
70-
super(id, name, email, username, bio);
71-
this.profilePicture = profilePicture;
72-
this.hasCompletedOnboarding = hasCompletedOnboarding != null ? hasCompletedOnboarding : false;
73-
this.provider = provider;
74-
this.relationshipStatus = null;
75-
this.pendingFriendRequestId = null;
76-
}
7768
}

src/test/java/com/danielagapov/spawn/ServiceTests/UserServiceTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ void setUp() {
8989
logger,
9090
userSearchQueryService,
9191
friendshipQueryService,
92+
friendRequestService,
9293
cacheManager,
9394
eventPublisher,
9495
userIdExternalIdMapRepository

0 commit comments

Comments
 (0)