package fr.kektus.summer2024.converters; import fr.kektus.summer2024.data.model.Post; import fr.kektus.summer2024.domain.service.AssetService; import fr.kektus.summer2024.presentation.rest.PostApi; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; @ApplicationScoped public class PublicPostConverter { @Inject AssetService assetService; public PostApi.PostDto toPostDto(Post post) { return new PostApi.PostDto().withId(post.id) .withDate(post.date) .withDescription(post.description) .withAssets(post.assets.stream() .map(assetService::getPresignedUrlForAsset) .toList()) .withLocation(new PostApi.PostDto.Location().withCity(post.city) .withCountry(post.country) .withLat(post.latitude) .withLon(post.longitude)); } }