Implementation of publication update.

This commit is contained in:
Florian THIERRY
2024-03-12 10:35:27 +01:00
parent 2c6a917cc2
commit 571b005770
21 changed files with 288 additions and 58 deletions

View File

@@ -0,0 +1,11 @@
package org.codiki.domain.category.exception;
import java.util.UUID;
import org.codiki.domain.exception.FunctionnalException;
public class CategoryNotFoundException extends FunctionnalException {
public CategoryNotFoundException(UUID categoryId) {
super(String.format("No any category found for id %s.",categoryId));
}
}

View File

@@ -4,4 +4,12 @@ public abstract class FunctionnalException extends RuntimeException {
public FunctionnalException(String message) {
super(message);
}
public FunctionnalException(FunctionnalException cause) {
super(cause);
}
public FunctionnalException(String message, FunctionnalException cause) {
super(message, cause);
}
}

View File

@@ -1,9 +0,0 @@
package org.codiki.domain.publication.exception;
import org.codiki.domain.exception.FunctionnalException;
public class PublicationCreationException extends FunctionnalException {
public PublicationCreationException(String reason) {
super(String.format("Impossible to create a publication because : %s", reason));
}
}

View File

@@ -0,0 +1,13 @@
package org.codiki.domain.publication.exception;
import org.codiki.domain.exception.FunctionnalException;
public class PublicationEditionException extends FunctionnalException {
public PublicationEditionException(String reason) {
super(String.format("Impossible to edit a publication because : %s.", reason));
}
public PublicationEditionException(FunctionnalException cause) {
super("Impossible to edit a publication due to a root cause.", cause);
}
}

View File

@@ -0,0 +1,11 @@
package org.codiki.domain.publication.exception;
import java.util.UUID;
import org.codiki.domain.exception.FunctionnalException;
public class PublicationNotFoundException extends FunctionnalException {
public PublicationNotFoundException(UUID publicationId) {
super(String.format("No any publication found for id %s.", publicationId));
}
}

View File

@@ -0,0 +1,9 @@
package org.codiki.domain.publication.exception;
import org.codiki.domain.exception.FunctionnalException;
public class PublicationUpdateForbiddenException extends FunctionnalException {
public PublicationUpdateForbiddenException() {
super("Publication update is not allowed because you are not its owner.");
}
}

View File

@@ -2,7 +2,7 @@ package org.codiki.domain.publication.model;
import java.util.UUID;
public record PublicationCreationRequest(
public record PublicationEditionRequest(
String title,
String text,
String description,

View File

@@ -82,4 +82,17 @@ public class PublicationBuilder {
category
);
}
public PublicationBuilder basedOn(Publication publication) {
return new PublicationBuilder()
.withId(publication.id())
.withKey(publication.key())
.withTitle(publication.title())
.withText(publication.text())
.withDescription(publication.description())
.withImage(publication.image())
.withCreationDate(publication.creationDate())
.withAuthor(publication.author())
.withCategory(publication.category());
}
}

View File

@@ -1,7 +1,12 @@
package org.codiki.domain.publication.port;
import java.util.Optional;
import java.util.UUID;
import org.codiki.domain.publication.model.Publication;
public interface PublicationPort {
void save(Publication publication);
Optional<Publication> findById(UUID publicationId);
}