Skip to content

Commit 4c90fc9

Browse files
committed
add images as optional to pending tweet service
1 parent d63dc3b commit 4c90fc9

2 files changed

Lines changed: 19 additions & 5 deletions

File tree

src/main/java/com/mastercloudapps/twitterscheduler/application/model/operation/CreatePendingTweetOperation.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.mastercloudapps.twitterscheduler.application.model.operation;
22

3+
import java.util.List;
4+
35
import com.mastercloudapps.twitterscheduler.domain.shared.NullableInstant;
46

57
import lombok.Builder;
@@ -21,5 +23,7 @@ public class CreatePendingTweetOperation implements Operation {
2123

2224
@NonNull
2325
private final NullableInstant publicationDate;
26+
27+
private final List<String> images;
2428

2529
}

src/main/java/com/mastercloudapps/twitterscheduler/application/service/PendingTweetService.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.Collection;
44
import java.util.Optional;
5+
import java.util.stream.Collectors;
56

67
import org.springframework.stereotype.Component;
78

@@ -14,6 +15,8 @@
1415
import com.mastercloudapps.twitterscheduler.application.usecase.FindOnePendingTweetUseCase;
1516
import com.mastercloudapps.twitterscheduler.domain.pending.PendingTweet;
1617
import com.mastercloudapps.twitterscheduler.domain.pending.PendingTweetId;
18+
import com.mastercloudapps.twitterscheduler.domain.pending.PendingTweetImage;
19+
import com.mastercloudapps.twitterscheduler.domain.pending.PendingTweetImageId;
1720
import com.mastercloudapps.twitterscheduler.domain.pending.PendingTweetPort;
1821
import com.mastercloudapps.twitterscheduler.domain.shared.NullableInstant;
1922

@@ -32,14 +35,21 @@ public PendingTweetService(PendingTweetPort pendingTweetPort) {
3235
@Override
3336
public PendingTweet create(CreatePendingTweetOperation request) {
3437

35-
PendingTweet pendingTweet = PendingTweet.builder()
38+
final var builder = PendingTweet.builder()
3639
.id(PendingTweetId.defaultValue())
3740
.message(request.getMessage())
3841
.publicationDate(request.getPublicationDate().instant())
39-
.createdAt(NullableInstant.now().instant())
40-
.build();
42+
.createdAt(NullableInstant.now().instant());
4143

42-
return pendingTweetPort.create(pendingTweet);
44+
Optional.ofNullable(request.getImages())
45+
.ifPresent(images -> builder.images(images.stream()
46+
.map(image -> PendingTweetImage.builder()
47+
.id(PendingTweetImageId.defaultValue())
48+
.url(image)
49+
.build())
50+
.collect(Collectors.toList())));
51+
52+
return pendingTweetPort.create(builder.build());
4353
}
4454

4555
@Override
@@ -61,4 +71,4 @@ public Optional<PendingTweet> findOne(FindOnePendingTweetOperation operation) {
6171
return pendingTweetPort.findOne(operation.getId());
6272
}
6373

64-
}
74+
}

0 commit comments

Comments
 (0)