fix(analytics): refresh summaries after activity deletion

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
This commit is contained in:
Marcus Fihlon 2026-04-29 10:15:31 +02:00
parent 2ac3d82fda
commit 689b8e5e82
Signed by: McPringle
GPG key ID: C6B7F469EE363E1F
2 changed files with 14 additions and 0 deletions

View file

@ -320,6 +320,12 @@ public class FitFileService {
.map(activity -> {
activityRepository.delete(activity);
achievementService.rebuildAchievementsForUser(userId);
if (activity.getStartedAt() != null) {
java.time.LocalDate activityDate = activity.getStartedAt().toLocalDate();
activitySummaryService.updateWeeklySummary(userId, activityDate);
activitySummaryService.updateMonthlySummary(userId, activityDate);
activitySummaryService.updateYearlySummary(userId, activityDate);
}
log.info("Deleted activity {} for user {}", activityId, userId);
return true;
})

View file

@ -224,9 +224,11 @@ class FitFileServiceTest {
void testDeleteActivity() {
// Arrange
UUID activityId = UUID.randomUUID();
LocalDateTime startedAt = LocalDateTime.of(2025, 12, 3, 10, 0);
Activity activity = Activity.builder()
.id(activityId)
.userId(testUserId)
.startedAt(startedAt)
.build();
when(activityRepository.findByIdAndUserId(activityId, testUserId))
@ -239,6 +241,9 @@ class FitFileServiceTest {
assertTrue(result);
verify(activityRepository).delete(activity);
verify(achievementService).rebuildAchievementsForUser(testUserId);
verify(activitySummaryService).updateWeeklySummary(testUserId, startedAt.toLocalDate());
verify(activitySummaryService).updateMonthlySummary(testUserId, startedAt.toLocalDate());
verify(activitySummaryService).updateYearlySummary(testUserId, startedAt.toLocalDate());
}
@Test
@ -256,6 +261,9 @@ class FitFileServiceTest {
assertFalse(result);
verify(activityRepository, never()).delete(any());
verify(achievementService, never()).rebuildAchievementsForUser(any());
verify(activitySummaryService, never()).updateWeeklySummary(any(), any());
verify(activitySummaryService, never()).updateMonthlySummary(any(), any());
verify(activitySummaryService, never()).updateYearlySummary(any(), any());
}
@Test