22
33import java .util .Collection ;
44import java .util .Optional ;
5+ import java .util .stream .Collectors ;
56
67import org .springframework .stereotype .Component ;
78
1415import com .mastercloudapps .twitterscheduler .application .usecase .FindOnePendingTweetUseCase ;
1516import com .mastercloudapps .twitterscheduler .domain .pending .PendingTweet ;
1617import com .mastercloudapps .twitterscheduler .domain .pending .PendingTweetId ;
18+ import com .mastercloudapps .twitterscheduler .domain .pending .PendingTweetImage ;
19+ import com .mastercloudapps .twitterscheduler .domain .pending .PendingTweetImageId ;
1720import com .mastercloudapps .twitterscheduler .domain .pending .PendingTweetPort ;
1821import 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