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.exception.UserDoesNotExistException;
|
||||||
import org.codiki.domain.picture.exception.PictureNotFoundException;
|
import org.codiki.domain.picture.exception.PictureNotFoundException;
|
||||||
import org.codiki.domain.picture.exception.PictureUploadException;
|
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.PublicationEditionException;
|
||||||
import org.codiki.domain.publication.exception.PublicationNotFoundException;
|
import org.codiki.domain.publication.exception.PublicationNotFoundException;
|
||||||
import org.codiki.domain.publication.exception.PublicationUpdateForbiddenException;
|
import org.codiki.domain.publication.exception.PublicationUpdateForbiddenException;
|
||||||
@@ -44,7 +45,8 @@ public class GlobalControllerExceptionHandler extends ResponseEntityExceptionHan
|
|||||||
UserDoesNotExistException.class,
|
UserDoesNotExistException.class,
|
||||||
RefreshTokenDoesNotExistException.class,
|
RefreshTokenDoesNotExistException.class,
|
||||||
PublicationNotFoundException.class,
|
PublicationNotFoundException.class,
|
||||||
PictureNotFoundException.class
|
PictureNotFoundException.class,
|
||||||
|
NoPublicationSearchResultException.class
|
||||||
})
|
})
|
||||||
public ProblemDetail handleNotFoundExceptions(Exception exception) {
|
public ProblemDetail handleNotFoundExceptions(Exception exception) {
|
||||||
return buildProblemDetail(NOT_FOUND, 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.CREATED;
|
||||||
import static org.springframework.http.HttpStatus.NO_CONTENT;
|
import static org.springframework.http.HttpStatus.NO_CONTENT;
|
||||||
|
import static org.springframework.util.ObjectUtils.isEmpty;
|
||||||
import org.codiki.application.publication.PublicationUseCases;
|
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.exception.PublicationNotFoundException;
|
||||||
import org.codiki.domain.publication.model.Publication;
|
import org.codiki.domain.publication.model.Publication;
|
||||||
import org.codiki.domain.publication.model.PublicationEditionRequest;
|
import org.codiki.domain.publication.model.PublicationEditionRequest;
|
||||||
@@ -64,9 +66,15 @@ public class PublicationController {
|
|||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public List<PublicationDto> searchPublications(@RequestParam("query") String searchQuery) {
|
public List<PublicationDto> searchPublications(@RequestParam("query") String searchQuery) {
|
||||||
return publicationUseCases.searchPublications(searchQuery)
|
final List<PublicationDto> publications = publicationUseCases.searchPublications(searchQuery)
|
||||||
.stream()
|
.stream()
|
||||||
.map(PublicationDto::new)
|
.map(PublicationDto::new)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
|
if (isEmpty(publications)) {
|
||||||
|
throw new NoPublicationSearchResultException();
|
||||||
|
}
|
||||||
|
|
||||||
|
return publications;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
vars {
|
vars {
|
||||||
url: http://localhost:8080
|
url: http://localhost:8080
|
||||||
publicationId: e23831a6-9cc0-4f3d-9efa-7a1cae191cb1
|
publicationId: e23831a6-9cc0-4f3d-9efa-7a1cae191cb1
|
||||||
bearerToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1YWQ0NjJiOC04ZjllLTRhMjYtYmI4Ni1jNzRmZWY1ZDExYjYiLCJleHAiOjE3MTA1MjY1MDh9.DvfA5uxPMjydRaAkocimAHGo9bfJmTu7hEBIKlaMBd7Qu4XFD1OSL58u8VHnFBU2EiBitRtJRUdidERphkww0Q
|
bearerToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1YWQ0NjJiOC04ZjllLTRhMjYtYmI4Ni1jNzRmZWY1ZDExYjYiLCJleHAiOjE3MTA1MzkzMjd9.qskbb1_AKlY74GmcDHVzFV7wGP7nDPk1St8OlUmTy08ut4SWRvi0WnrD90Y1cBAnsiu2UTjV5v6LXkX5W_pLfg
|
||||||
categoryId: 172fa901-3f4b-4540-92f3-1c15820e8ec9
|
categoryId: 172fa901-3f4b-4540-92f3-1c15820e8ec9
|
||||||
pictureId: 65b660b7-66bb-4e4a-a62c-fd0ca101f972
|
pictureId: 65b660b7-66bb-4e4a-a62c-fd0ca101f972
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user