Add 404 response if no any publication was found while searching publications.

This commit is contained in:
Florian THIERRY
2024-03-15 22:33:14 +01:00
parent dabd93091c
commit 8d778e3571
4 changed files with 22 additions and 3 deletions

View File

@@ -13,6 +13,7 @@ import org.codiki.domain.exception.RefreshTokenExpiredException;
import org.codiki.domain.exception.UserDoesNotExistException;
import org.codiki.domain.picture.exception.PictureNotFoundException;
import org.codiki.domain.picture.exception.PictureUploadException;
import org.codiki.domain.publication.exception.NoPublicationSearchResultException;
import org.codiki.domain.publication.exception.PublicationEditionException;
import org.codiki.domain.publication.exception.PublicationNotFoundException;
import org.codiki.domain.publication.exception.PublicationUpdateForbiddenException;
@@ -44,7 +45,8 @@ public class GlobalControllerExceptionHandler extends ResponseEntityExceptionHan
UserDoesNotExistException.class,
RefreshTokenDoesNotExistException.class,
PublicationNotFoundException.class,
PictureNotFoundException.class
PictureNotFoundException.class,
NoPublicationSearchResultException.class
})
public ProblemDetail handleNotFoundExceptions(Exception exception) {
return buildProblemDetail(NOT_FOUND, exception);

View File

@@ -5,7 +5,9 @@ import java.util.UUID;
import static org.springframework.http.HttpStatus.CREATED;
import static org.springframework.http.HttpStatus.NO_CONTENT;
import static org.springframework.util.ObjectUtils.isEmpty;
import org.codiki.application.publication.PublicationUseCases;
import org.codiki.domain.publication.exception.NoPublicationSearchResultException;
import org.codiki.domain.publication.exception.PublicationNotFoundException;
import org.codiki.domain.publication.model.Publication;
import org.codiki.domain.publication.model.PublicationEditionRequest;
@@ -64,9 +66,15 @@ public class PublicationController {
@GetMapping
public List<PublicationDto> searchPublications(@RequestParam("query") String searchQuery) {
return publicationUseCases.searchPublications(searchQuery)
final List<PublicationDto> publications = publicationUseCases.searchPublications(searchQuery)
.stream()
.map(PublicationDto::new)
.toList();
if (isEmpty(publications)) {
throw new NoPublicationSearchResultException();
}
return publications;
}
}