feat(annotations): add @Slf4j and DataIntegrityViolationException catch to updateAnnotation [M2]

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-04-14 14:34:03 +02:00
parent f00b470928
commit a19faa3806

View File

@@ -1,6 +1,7 @@
package org.raddatz.familienarchiv.service; package org.raddatz.familienarchiv.service;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.raddatz.familienarchiv.dto.CreateAnnotationDTO; import org.raddatz.familienarchiv.dto.CreateAnnotationDTO;
import org.raddatz.familienarchiv.dto.UpdateAnnotationDTO; import org.raddatz.familienarchiv.dto.UpdateAnnotationDTO;
import org.raddatz.familienarchiv.exception.DomainException; import org.raddatz.familienarchiv.exception.DomainException;
@@ -8,12 +9,14 @@ import org.raddatz.familienarchiv.exception.ErrorCode;
import org.raddatz.familienarchiv.model.DocumentAnnotation; import org.raddatz.familienarchiv.model.DocumentAnnotation;
import org.raddatz.familienarchiv.repository.AnnotationRepository; import org.raddatz.familienarchiv.repository.AnnotationRepository;
import org.raddatz.familienarchiv.repository.TranscriptionBlockRepository; import org.raddatz.familienarchiv.repository.TranscriptionBlockRepository;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@Slf4j
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class AnnotationService { public class AnnotationService {
@@ -74,7 +77,12 @@ public class AnnotationService {
if (dto.getWidth() != null) annotation.setWidth(dto.getWidth()); if (dto.getWidth() != null) annotation.setWidth(dto.getWidth());
if (dto.getHeight() != null) annotation.setHeight(dto.getHeight()); if (dto.getHeight() != null) annotation.setHeight(dto.getHeight());
return annotationRepository.save(annotation); try {
return annotationRepository.save(annotation);
} catch (DataIntegrityViolationException e) {
log.warn("Annotation bounds constraint violated for {}: {}", annotationId, e.getMessage());
throw DomainException.badRequest(ErrorCode.ANNOTATION_UPDATE_FAILED, "Bounds out of range");
}
} }
@Transactional @Transactional