feat(audit): add JOURNEY_ITEM_NOTE_UPDATED audit kind and wire into updateNote()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -60,6 +60,9 @@ public enum AuditKind {
|
|||||||
/** Payload: {@code {"geschichteId": "uuid", "itemId": "uuid"}} — documentId is null */
|
/** Payload: {@code {"geschichteId": "uuid", "itemId": "uuid"}} — documentId is null */
|
||||||
JOURNEY_ITEM_REMOVED,
|
JOURNEY_ITEM_REMOVED,
|
||||||
|
|
||||||
|
/** Payload: {@code {"geschichteId": "uuid", "itemId": "uuid"}} — documentId is null */
|
||||||
|
JOURNEY_ITEM_NOTE_UPDATED,
|
||||||
|
|
||||||
/** Payload: {@code {"geschichteId": "uuid", "itemCount": 3}} — documentId is null; rolled up in chronik */
|
/** Payload: {@code {"geschichteId": "uuid", "itemCount": 3}} — documentId is null; rolled up in chronik */
|
||||||
JOURNEY_ITEMS_REORDERED;
|
JOURNEY_ITEMS_REORDERED;
|
||||||
|
|
||||||
|
|||||||
@@ -119,6 +119,11 @@ public class JourneyItemService {
|
|||||||
|
|
||||||
item.setNote(note);
|
item.setNote(note);
|
||||||
JourneyItem saved = journeyItemRepository.save(item);
|
JourneyItem saved = journeyItemRepository.save(item);
|
||||||
|
|
||||||
|
UUID actorId = currentUser().getId();
|
||||||
|
auditService.logAfterCommit(AuditKind.JOURNEY_ITEM_NOTE_UPDATED, actorId, null,
|
||||||
|
Map.of("geschichteId", geschichteId, "itemId", itemId));
|
||||||
|
|
||||||
return toView(saved);
|
return toView(saved);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -403,6 +403,21 @@ class JourneyItemServiceTest {
|
|||||||
.isEqualTo(ErrorCode.VALIDATION_ERROR));
|
.isEqualTo(ErrorCode.VALIDATION_ERROR));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void updateNote_auditsNoteUpdate() {
|
||||||
|
Geschichte journey = journey(geschichteId);
|
||||||
|
JourneyItem item = savedItem(itemId, journey, 10, null, null);
|
||||||
|
when(journeyItemRepository.findByIdAndGeschichteId(itemId, geschichteId)).thenReturn(Optional.of(item));
|
||||||
|
JourneyItem saved = savedItem(itemId, journey, 10, null, "New note");
|
||||||
|
when(journeyItemRepository.save(item)).thenReturn(saved);
|
||||||
|
|
||||||
|
JourneyItemUpdateDTO dto = new JourneyItemUpdateDTO();
|
||||||
|
dto.setNote(Optional.of("New note"));
|
||||||
|
journeyItemService.updateNote(geschichteId, itemId, dto);
|
||||||
|
|
||||||
|
verify(auditService).logAfterCommit(eq(AuditKind.JOURNEY_ITEM_NOTE_UPDATED), eq(actorId), isNull(), any());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void patch_returns404_when_item_belongs_to_different_journey() {
|
void patch_returns404_when_item_belongs_to_different_journey() {
|
||||||
when(journeyItemRepository.findByIdAndGeschichteId(itemId, geschichteId)).thenReturn(Optional.empty());
|
when(journeyItemRepository.findByIdAndGeschichteId(itemId, geschichteId)).thenReturn(Optional.empty());
|
||||||
|
|||||||
Reference in New Issue
Block a user