diff --git a/src/main/java/org/operaton/fitpub/controller/ActivityPubController.java b/src/main/java/org/operaton/fitpub/controller/ActivityPubController.java index 9f22cbf..1802eb7 100644 --- a/src/main/java/org/operaton/fitpub/controller/ActivityPubController.java +++ b/src/main/java/org/operaton/fitpub/controller/ActivityPubController.java @@ -16,6 +16,7 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.io.File; import java.util.*; /** @@ -236,8 +237,16 @@ public class ActivityPubController { noteObject.put("conversation", activityUri); // Add activity image if available - String imageUrl = activityImageService.getActivityImageUrl(activity); - if (imageUrl != null) { + // Check if image exists, otherwise generate it + File imageFile = activityImageService.getActivityImageFile(activity.getId()); + if (!imageFile.exists()) { + // Generate image if it doesn't exist + activityImageService.generateActivityImage(activity); + } + + // Only add attachment if image was successfully generated/exists + if (imageFile.exists()) { + String imageUrl = baseUrl + "/api/activities/" + activity.getId() + "/image"; Map imageAttachment = new HashMap<>(); imageAttachment.put("type", "Image"); imageAttachment.put("mediaType", "image/png"); diff --git a/src/test/java/org/operaton/fitpub/controller/ActivityControllerIntegrationTest.java b/src/test/java/org/operaton/fitpub/controller/ActivityControllerIntegrationTest.java index 7477bad..55fe7d2 100644 --- a/src/test/java/org/operaton/fitpub/controller/ActivityControllerIntegrationTest.java +++ b/src/test/java/org/operaton/fitpub/controller/ActivityControllerIntegrationTest.java @@ -10,9 +10,11 @@ import org.operaton.fitpub.model.entity.User; import org.operaton.fitpub.repository.ActivityRepository; import org.operaton.fitpub.repository.UserRepository; import org.operaton.fitpub.security.JwtTokenProvider; +import org.operaton.fitpub.config.TestcontainersConfiguration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; import org.springframework.http.MediaType; import org.springframework.mock.web.MockMultipartFile; import org.springframework.test.context.ActiveProfiles; @@ -37,6 +39,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @AutoConfigureMockMvc @ActiveProfiles("test") @Transactional +@Import(TestcontainersConfiguration.class) class ActivityControllerIntegrationTest { @Autowired