Implementation of getting publication by its id.

This commit is contained in:
Florian THIERRY
2024-03-14 10:05:36 +01:00
parent 8d8a220fa0
commit fb13cfd74d
5 changed files with 18 additions and 4 deletions

View File

@@ -46,6 +46,7 @@ public class SecurityConfiguration {
"/api/health/check",
"/api/categories",
"/api/pictures/{pictureId}",
"/api/publications/{publicationId}",
"/error"
).permitAll()
.requestMatchers(

View File

@@ -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) {

View File

@@ -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,