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 static java.util.Objects.isNull;
|
||||||
import java.time.Clock;
|
import java.time.Clock;
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static org.codiki.domain.publication.model.builder.AuthorBuilder.anAuthor;
|
import static org.codiki.domain.publication.model.builder.AuthorBuilder.anAuthor;
|
||||||
@@ -153,4 +154,8 @@ public class PublicationUseCases {
|
|||||||
|
|
||||||
publicationPort.delete(publicationToDelete);
|
publicationPort.delete(publicationToDelete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Optional<Publication> findById(UUID publicationId) {
|
||||||
|
return publicationPort.findById(publicationId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ public class SecurityConfiguration {
|
|||||||
"/api/health/check",
|
"/api/health/check",
|
||||||
"/api/categories",
|
"/api/categories",
|
||||||
"/api/pictures/{pictureId}",
|
"/api/pictures/{pictureId}",
|
||||||
|
"/api/publications/{publicationId}",
|
||||||
"/error"
|
"/error"
|
||||||
).permitAll()
|
).permitAll()
|
||||||
.requestMatchers(
|
.requestMatchers(
|
||||||
|
|||||||
@@ -5,11 +5,13 @@ 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 org.codiki.application.publication.PublicationUseCases;
|
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.Publication;
|
||||||
import org.codiki.domain.publication.model.PublicationEditionRequest;
|
import org.codiki.domain.publication.model.PublicationEditionRequest;
|
||||||
|
import org.codiki.exposition.publication.model.PublicationDto;
|
||||||
import org.codiki.exposition.publication.model.PublicationEditionRequestDto;
|
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.DeleteMapping;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
@@ -27,6 +29,13 @@ public class PublicationController {
|
|||||||
this.publicationUseCases = publicationUseCases;
|
this.publicationUseCases = publicationUseCases;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/{publicationId}")
|
||||||
|
public PublicationDto getById(@PathVariable("publicationId") UUID publicationId) {
|
||||||
|
return publicationUseCases.findById(publicationId)
|
||||||
|
.map(PublicationDto::new)
|
||||||
|
.orElseThrow(() -> new PublicationNotFoundException(publicationId));
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping
|
@PostMapping
|
||||||
@ResponseStatus(CREATED)
|
@ResponseStatus(CREATED)
|
||||||
public PublicationDto createPublication(@RequestBody PublicationEditionRequestDto requestDto) {
|
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.time.ZonedDateTime;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.codiki.domain.publication.model.Publication;
|
import org.codiki.domain.publication.model.Publication;
|
||||||
import org.codiki.exposition.category.model.CategoryDto;
|
import org.codiki.exposition.category.model.CategoryDto;
|
||||||
import org.codiki.exposition.publication.model.AuthorDto;
|
|
||||||
|
|
||||||
public record PublicationDto(
|
public record PublicationDto(
|
||||||
UUID id,
|
UUID id,
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
vars {
|
vars {
|
||||||
url: http://localhost:8080
|
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
|
bearerToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1YWQ0NjJiOC04ZjllLTRhMjYtYmI4Ni1jNzRmZWY1ZDExYjYiLCJleHAiOjE3MTA0MDc5Mjd9.QdanZXjfLztIVJU-pRS3gZxnC4GIycyhmlCkhYSPchiXpeNzruw_GY3fH1_qshC_AjOCSqGmCq3X1S_zVFdodQ
|
||||||
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