Add 404 response if no any publication was found while searching publications.
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
package org.codiki.domain.publication.exception;
|
||||
|
||||
import org.codiki.domain.exception.FunctionnalException;
|
||||
|
||||
public class NoPublicationSearchResultException extends FunctionnalException {
|
||||
public NoPublicationSearchResultException() {
|
||||
super("No any publication was found for search criteria.");
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
vars {
|
||||
url: http://localhost:8080
|
||||
publicationId: e23831a6-9cc0-4f3d-9efa-7a1cae191cb1
|
||||
bearerToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1YWQ0NjJiOC04ZjllLTRhMjYtYmI4Ni1jNzRmZWY1ZDExYjYiLCJleHAiOjE3MTA1MjY1MDh9.DvfA5uxPMjydRaAkocimAHGo9bfJmTu7hEBIKlaMBd7Qu4XFD1OSL58u8VHnFBU2EiBitRtJRUdidERphkww0Q
|
||||
bearerToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1YWQ0NjJiOC04ZjllLTRhMjYtYmI4Ni1jNzRmZWY1ZDExYjYiLCJleHAiOjE3MTA1MzkzMjd9.qskbb1_AKlY74GmcDHVzFV7wGP7nDPk1St8OlUmTy08ut4SWRvi0WnrD90Y1cBAnsiu2UTjV5v6LXkX5W_pLfg
|
||||
categoryId: 172fa901-3f4b-4540-92f3-1c15820e8ec9
|
||||
pictureId: 65b660b7-66bb-4e4a-a62c-fd0ca101f972
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user