Add publisher id in picture entity.
This commit is contained in:
@@ -5,21 +5,30 @@ import java.util.Optional;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static org.codiki.domain.picture.model.builder.PictureBuilder.aPicture;
|
import static org.codiki.domain.picture.model.builder.PictureBuilder.aPicture;
|
||||||
|
import org.codiki.application.user.UserUseCases;
|
||||||
|
import org.codiki.domain.exception.AuthenticationRequiredException;
|
||||||
import org.codiki.domain.picture.model.Picture;
|
import org.codiki.domain.picture.model.Picture;
|
||||||
import org.codiki.domain.picture.port.PicturePort;
|
import org.codiki.domain.picture.port.PicturePort;
|
||||||
|
import org.codiki.domain.user.model.User;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class PictureUseCases {
|
public class PictureUseCases {
|
||||||
private final PicturePort picturePort;
|
private final PicturePort picturePort;
|
||||||
|
private final UserUseCases userUseCases;
|
||||||
|
|
||||||
public PictureUseCases(PicturePort picturePort) {
|
public PictureUseCases(PicturePort picturePort, UserUseCases userUseCases) {
|
||||||
this.picturePort = picturePort;
|
this.picturePort = picturePort;
|
||||||
|
this.userUseCases = userUseCases;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Picture createPicture(File pictureFile) {
|
public Picture createPicture(File pictureFile) {
|
||||||
|
User authenticatedUser = userUseCases.getAuthenticatedUser()
|
||||||
|
.orElseThrow(AuthenticationRequiredException::new);
|
||||||
|
|
||||||
Picture newPicture = aPicture()
|
Picture newPicture = aPicture()
|
||||||
.withId(UUID.randomUUID())
|
.withId(UUID.randomUUID())
|
||||||
|
.withPublisher(authenticatedUser)
|
||||||
.withContentFile(pictureFile)
|
.withContentFile(pictureFile)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|||||||
@@ -5,5 +5,6 @@ import java.util.UUID;
|
|||||||
|
|
||||||
public record Picture(
|
public record Picture(
|
||||||
UUID id,
|
UUID id,
|
||||||
|
UUID publisherId,
|
||||||
File contentFile
|
File contentFile
|
||||||
) {}
|
) {}
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ import java.io.File;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.codiki.domain.picture.model.Picture;
|
import org.codiki.domain.picture.model.Picture;
|
||||||
|
import org.codiki.domain.user.model.User;
|
||||||
|
|
||||||
public class PictureBuilder {
|
public class PictureBuilder {
|
||||||
private UUID id;
|
private UUID id;
|
||||||
|
private UUID publisherId;
|
||||||
private File contentFile;
|
private File contentFile;
|
||||||
|
|
||||||
private PictureBuilder() {}
|
private PictureBuilder() {}
|
||||||
@@ -26,6 +28,14 @@ public class PictureBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PictureBuilder withPublisherId(UUID publisherId) {
|
||||||
|
this.publisherId = publisherId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PictureBuilder withPublisher(User publisher) {
|
||||||
|
return withPublisherId(publisher.id());
|
||||||
|
}
|
||||||
|
|
||||||
public PictureBuilder withContentFile(File contentFile) {
|
public PictureBuilder withContentFile(File contentFile) {
|
||||||
this.contentFile = contentFile;
|
this.contentFile = contentFile;
|
||||||
@@ -33,6 +43,6 @@ public class PictureBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Picture build() {
|
public Picture build() {
|
||||||
return new Picture(id, contentFile);
|
return new Picture(id, publisherId, contentFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.UUID;
|
|||||||
|
|
||||||
import org.codiki.domain.picture.model.Picture;
|
import org.codiki.domain.picture.model.Picture;
|
||||||
|
|
||||||
|
import jakarta.persistence.Column;
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.Id;
|
import jakarta.persistence.Id;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
@@ -21,12 +22,15 @@ import lombok.Setter;
|
|||||||
public class PictureEntity {
|
public class PictureEntity {
|
||||||
@Id
|
@Id
|
||||||
private UUID id;
|
private UUID id;
|
||||||
|
@Column(nullable = false)
|
||||||
|
private UUID publisherId;
|
||||||
|
|
||||||
public PictureEntity(Picture picture) {
|
public PictureEntity(Picture picture) {
|
||||||
id = picture.id();
|
id = picture.id();
|
||||||
|
publisherId = picture.publisherId();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Picture toDomain() {
|
public Picture toDomain() {
|
||||||
return new Picture(id, null);
|
return new Picture(id, publisherId, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,9 +32,12 @@ CREATE TABLE IF NOT EXISTS category (
|
|||||||
CREATE INDEX category_parent_category_id_idx ON category (parent_category_id);
|
CREATE INDEX category_parent_category_id_idx ON category (parent_category_id);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS picture (
|
CREATE TABLE IF NOT EXISTS picture (
|
||||||
id UUID NOT NULL,
|
id UUID NOT NULL,
|
||||||
CONSTRAINT picture_pk PRIMARY KEY (id)
|
publisher_id UUID NOT NULL,
|
||||||
|
CONSTRAINT picture_pk PRIMARY KEY (id),
|
||||||
|
CONSTRAINT picture_publisher_id_fk FOREIGN KEY (publisher_id) REFERENCES "user" (id)
|
||||||
);
|
);
|
||||||
|
CREATE INDEX picture_publisher_id_idx ON picture (publisher_id);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS publication (
|
CREATE TABLE IF NOT EXISTS publication (
|
||||||
id UUID NOT NULL,
|
id UUID NOT NULL,
|
||||||
|
|||||||
@@ -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.eyJzdWIiOiI1YWQ0NjJiOC04ZjllLTRhMjYtYmI4Ni1jNzRmZWY1ZDExYjYiLCJleHAiOjE3MTA0MDc5Mjd9.QdanZXjfLztIVJU-pRS3gZxnC4GIycyhmlCkhYSPchiXpeNzruw_GY3fH1_qshC_AjOCSqGmCq3X1S_zVFdodQ
|
bearerToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1YWQ0NjJiOC04ZjllLTRhMjYtYmI4Ni1jNzRmZWY1ZDExYjYiLCJleHAiOjE3MTA0MjE2Nzd9.Ln2C9_3ZmX0nxZukW7N18j3AfJ_NGCiPfhir24C33T-BuvwsQ2iI_09gcxwGtclPWP5DYyM3gFwcH0jdWtPjkA
|
||||||
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