33import jakarta .persistence .EntityNotFoundException ;
44import lombok .RequiredArgsConstructor ;
55import lombok .extern .log4j .Log4j2 ;
6- import org .openpodcastapi .opa .user .UserEntity ;
76import org .openpodcastapi .opa .user .UserRepository ;
87import org .springframework .data .domain .Page ;
98import org .springframework .data .domain .Pageable ;
@@ -29,7 +28,7 @@ public class SubscriptionService {
2928 /// @param dto the [SubscriptionDTO.SubscriptionCreateDTO] containing the subscription data
3029 /// @return the fetched or created [SubscriptionEntity]
3130 protected SubscriptionEntity fetchOrCreateSubscription (SubscriptionDTO .SubscriptionCreateDTO dto ) {
32- UUID feedUuid = UUID .fromString (dto .uuid ());
31+ final var feedUuid = UUID .fromString (dto .uuid ());
3332 return subscriptionRepository
3433 .findByUuid (feedUuid )
3534 .orElseGet (() -> {
@@ -47,11 +46,11 @@ protected SubscriptionEntity fetchOrCreateSubscription(SubscriptionDTO.Subscript
4746 @ Transactional (readOnly = true )
4847 public SubscriptionDTO .UserSubscriptionDTO getUserSubscriptionBySubscriptionUuid (UUID subscriptionUuid , Long userId ) {
4948 log .debug ("Fetching subscription {} for userEntity {}" , subscriptionUuid , userId );
50- UserSubscriptionEntity subscription = userSubscriptionRepository .findByUserIdAndSubscriptionUuid (userId , subscriptionUuid )
49+ final var userSubscription = userSubscriptionRepository .findByUserIdAndSubscriptionUuid (userId , subscriptionUuid )
5150 .orElseThrow (() -> new EntityNotFoundException ("subscription not found for userEntity" ));
5251
5352 log .debug ("Subscription {} for userEntity {} found" , subscriptionUuid , userId );
54- return userSubscriptionMapper .toDto (subscription );
53+ return userSubscriptionMapper .toDto (userSubscription );
5554 }
5655
5756 /// Gets all subscriptions for the authenticated userEntity
@@ -61,7 +60,8 @@ public SubscriptionDTO.UserSubscriptionDTO getUserSubscriptionBySubscriptionUuid
6160 @ Transactional (readOnly = true )
6261 public Page <SubscriptionDTO .UserSubscriptionDTO > getAllSubscriptionsForUser (Long userId , Pageable pageable ) {
6362 log .debug ("Fetching subscriptions for {}" , userId );
64- return userSubscriptionRepository .findAllByUserId (userId , pageable )
63+ return userSubscriptionRepository
64+ .findAllByUserId (userId , pageable )
6565 .map (userSubscriptionMapper ::toDto );
6666 }
6767
@@ -83,16 +83,17 @@ public Page<SubscriptionDTO.UserSubscriptionDTO> getAllActiveSubscriptionsForUse
8383 /// @return a [SubscriptionDTO.UserSubscriptionDTO] representation of the subscription link
8484 /// @throws EntityNotFoundException if no matching user is found
8585 protected SubscriptionDTO .UserSubscriptionDTO persistUserSubscription (SubscriptionEntity subscriptionEntity , Long userId ) {
86- UserEntity userEntity = userRepository .findById (userId ).orElseThrow (() -> new EntityNotFoundException ("userEntity not found" ));
86+ final var userEntity = userRepository .findById (userId ).orElseThrow (() -> new EntityNotFoundException ("user not found" ));
87+
8788 log .debug ("{}" , userEntity );
8889
89- UserSubscriptionEntity newSubscription = userSubscriptionRepository .findByUserIdAndSubscriptionUuid (userId , subscriptionEntity .getUuid ()).orElseGet (() -> {
90+ final var newSubscription = userSubscriptionRepository .findByUserIdAndSubscriptionUuid (userId , subscriptionEntity .getUuid ()).orElseGet (() -> {
9091 log .debug ("Creating new subscription for user {} and subscription {}" , userId , subscriptionEntity .getUuid ());
91- UserSubscriptionEntity createdSubscription = new UserSubscriptionEntity ();
92- createdSubscription .setIsSubscribed (true );
93- createdSubscription .setUser (userEntity );
94- createdSubscription .setSubscription (subscriptionEntity );
95- return userSubscriptionRepository .save (createdSubscription );
92+ final var createdSubscriptionEntity = new UserSubscriptionEntity ();
93+ createdSubscriptionEntity .setIsSubscribed (true );
94+ createdSubscriptionEntity .setUser (userEntity );
95+ createdSubscriptionEntity .setSubscription (subscriptionEntity );
96+ return userSubscriptionRepository .save (createdSubscriptionEntity );
9697 });
9798
9899 newSubscription .setIsSubscribed (true );
@@ -111,19 +112,19 @@ public SubscriptionDTO.BulkSubscriptionResponseDTO addSubscriptions(List<Subscri
111112
112113 log .info ("{}" , requests );
113114
114- for (SubscriptionDTO . SubscriptionCreateDTO dto : requests ) {
115+ for (var subscriptionObject : requests ) {
115116 try {
116117 // Fetch or create the subscription object to subscribe the user to
117- SubscriptionEntity subscriptionEntity = this .fetchOrCreateSubscription (dto );
118+ final var subscriptionEntity = this .fetchOrCreateSubscription (subscriptionObject );
118119 log .debug ("{}" , subscriptionEntity );
119120 // If all is successful, persist the new UserSubscriptionEntity and add a UserSubscriptionDTO to the successes list
120121 successes .add (persistUserSubscription (subscriptionEntity , userId ));
121122 } catch (IllegalArgumentException _) {
122123 // If the UUID of the feed is invalid, add a new failure to the failures list
123- failures .add (new SubscriptionDTO .SubscriptionFailureDTO (dto .uuid (), dto .feedUrl (), "invalid UUID format" ));
124+ failures .add (new SubscriptionDTO .SubscriptionFailureDTO (subscriptionObject .uuid (), subscriptionObject .feedUrl (), "invalid UUID format" ));
124125 } catch (Exception e ) {
125126 // If another failure is encountered, add it to the failures list
126- failures .add (new SubscriptionDTO .SubscriptionFailureDTO (dto .uuid (), dto .feedUrl (), e .getMessage ()));
127+ failures .add (new SubscriptionDTO .SubscriptionFailureDTO (subscriptionObject .uuid (), subscriptionObject .feedUrl (), e .getMessage ()));
127128 }
128129 }
129130
@@ -138,10 +139,10 @@ public SubscriptionDTO.BulkSubscriptionResponseDTO addSubscriptions(List<Subscri
138139 /// @return a [SubscriptionDTO.UserSubscriptionDTO] containing the updated object
139140 @ Transactional
140141 public SubscriptionDTO .UserSubscriptionDTO unsubscribeUserFromFeed (UUID feedUUID , Long userId ) {
141- UserSubscriptionEntity subscription = userSubscriptionRepository .findByUserIdAndSubscriptionUuid (userId , feedUUID )
142+ final var userSubscriptionEntity = userSubscriptionRepository .findByUserIdAndSubscriptionUuid (userId , feedUUID )
142143 .orElseThrow (() -> new EntityNotFoundException ("no subscription found" ));
143144
144- subscription .setIsSubscribed (false );
145- return userSubscriptionMapper .toDto (userSubscriptionRepository .save (subscription ));
145+ userSubscriptionEntity .setIsSubscribed (false );
146+ return userSubscriptionMapper .toDto (userSubscriptionRepository .save (userSubscriptionEntity ));
146147 }
147148}
0 commit comments