fix(analytics): refresh summaries after activity deletion
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
This commit is contained in:
parent
2ac3d82fda
commit
689b8e5e82
2 changed files with 14 additions and 0 deletions
|
|
@ -320,6 +320,12 @@ public class FitFileService {
|
||||||
.map(activity -> {
|
.map(activity -> {
|
||||||
activityRepository.delete(activity);
|
activityRepository.delete(activity);
|
||||||
achievementService.rebuildAchievementsForUser(userId);
|
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);
|
log.info("Deleted activity {} for user {}", activityId, userId);
|
||||||
return true;
|
return true;
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -224,9 +224,11 @@ class FitFileServiceTest {
|
||||||
void testDeleteActivity() {
|
void testDeleteActivity() {
|
||||||
// Arrange
|
// Arrange
|
||||||
UUID activityId = UUID.randomUUID();
|
UUID activityId = UUID.randomUUID();
|
||||||
|
LocalDateTime startedAt = LocalDateTime.of(2025, 12, 3, 10, 0);
|
||||||
Activity activity = Activity.builder()
|
Activity activity = Activity.builder()
|
||||||
.id(activityId)
|
.id(activityId)
|
||||||
.userId(testUserId)
|
.userId(testUserId)
|
||||||
|
.startedAt(startedAt)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
when(activityRepository.findByIdAndUserId(activityId, testUserId))
|
when(activityRepository.findByIdAndUserId(activityId, testUserId))
|
||||||
|
|
@ -239,6 +241,9 @@ class FitFileServiceTest {
|
||||||
assertTrue(result);
|
assertTrue(result);
|
||||||
verify(activityRepository).delete(activity);
|
verify(activityRepository).delete(activity);
|
||||||
verify(achievementService).rebuildAchievementsForUser(testUserId);
|
verify(achievementService).rebuildAchievementsForUser(testUserId);
|
||||||
|
verify(activitySummaryService).updateWeeklySummary(testUserId, startedAt.toLocalDate());
|
||||||
|
verify(activitySummaryService).updateMonthlySummary(testUserId, startedAt.toLocalDate());
|
||||||
|
verify(activitySummaryService).updateYearlySummary(testUserId, startedAt.toLocalDate());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -256,6 +261,9 @@ class FitFileServiceTest {
|
||||||
assertFalse(result);
|
assertFalse(result);
|
||||||
verify(activityRepository, never()).delete(any());
|
verify(activityRepository, never()).delete(any());
|
||||||
verify(achievementService, never()).rebuildAchievementsForUser(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
|
@Test
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue