Implementation of getting publication by its id.
This commit is contained in:
@@ -3,6 +3,7 @@ package org.codiki.application.publication;
|
||||
import static java.util.Objects.isNull;
|
||||
import java.time.Clock;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
import static org.codiki.domain.publication.model.builder.AuthorBuilder.anAuthor;
|
||||
@@ -153,4 +154,8 @@ public class PublicationUseCases {
|
||||
|
||||
publicationPort.delete(publicationToDelete);
|
||||
}
|
||||
|
||||
public Optional<Publication> findById(UUID publicationId) {
|
||||
return publicationPort.findById(publicationId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ public class SecurityConfiguration {
|
||||
"/api/health/check",
|
||||
"/api/categories",
|
||||
"/api/pictures/{pictureId}",
|
||||
"/api/publications/{publicationId}",
|
||||
"/error"
|
||||
).permitAll()
|
||||
.requestMatchers(
|
||||
|
||||
@@ -5,11 +5,13 @@ import java.util.UUID;
|
||||
import static org.springframework.http.HttpStatus.CREATED;
|
||||
import static org.springframework.http.HttpStatus.NO_CONTENT;
|
||||
import org.codiki.application.publication.PublicationUseCases;
|
||||
import org.codiki.domain.publication.exception.PublicationNotFoundException;
|
||||
import org.codiki.domain.publication.model.Publication;
|
||||
import org.codiki.domain.publication.model.PublicationEditionRequest;
|
||||
import org.codiki.exposition.publication.model.PublicationDto;
|
||||
import org.codiki.exposition.publication.model.PublicationEditionRequestDto;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
@@ -27,6 +29,13 @@ public class PublicationController {
|
||||
this.publicationUseCases = publicationUseCases;
|
||||
}
|
||||
|
||||
@GetMapping("/{publicationId}")
|
||||
public PublicationDto getById(@PathVariable("publicationId") UUID publicationId) {
|
||||
return publicationUseCases.findById(publicationId)
|
||||
.map(PublicationDto::new)
|
||||
.orElseThrow(() -> new PublicationNotFoundException(publicationId));
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@ResponseStatus(CREATED)
|
||||
public PublicationDto createPublication(@RequestBody PublicationEditionRequestDto requestDto) {
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package org.codiki.exposition.publication;
|
||||
package org.codiki.exposition.publication.model;
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.codiki.domain.publication.model.Publication;
|
||||
import org.codiki.exposition.category.model.CategoryDto;
|
||||
import org.codiki.exposition.publication.model.AuthorDto;
|
||||
|
||||
public record PublicationDto(
|
||||
UUID id,
|
||||
@@ -1,6 +1,6 @@
|
||||
vars {
|
||||
url: http://localhost:8080
|
||||
publicationId: fce1de27-11c6-4deb-a248-b63288c00037
|
||||
publicationId: e23831a6-9cc0-4f3d-9efa-7a1cae191cb1
|
||||
bearerToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1YWQ0NjJiOC04ZjllLTRhMjYtYmI4Ni1jNzRmZWY1ZDExYjYiLCJleHAiOjE3MTA0MDc5Mjd9.QdanZXjfLztIVJU-pRS3gZxnC4GIycyhmlCkhYSPchiXpeNzruw_GY3fH1_qshC_AjOCSqGmCq3X1S_zVFdodQ
|
||||
categoryId: 172fa901-3f4b-4540-92f3-1c15820e8ec9
|
||||
pictureId: 65b660b7-66bb-4e4a-a62c-fd0ca101f972
|
||||
|
||||
Reference in New Issue
Block a user