class PushNotificationSubscriptionRequestServiceImpl implements PushNotificationSubscriptionRequestService {

    @Transactional
    @Nonnull
    @Override
    public PushNotificationSubscriptionRequest updatePushNotificationSubscriptionRequestRecipient(@Nonnull final Long requestId, @Nonnull final Long recipientId) {
        assertPushNotificationSubscriptionRequestId(requestId);
        Assert.notNull(recipientId, "Push notification subscription recipient id should not be null");
        LOGGER.debug("Updating push notification recipient for subscription request with id - {}, recipient id - {}", requestId, recipientId);
        PushNotificationSubscriptionRequest request = pushNotificationSubscriptionRequestRepository.findById(requestId)
                .orElseThrow(() -> new PushNotificationSubscriptionRequestNotFoundForIdException(requestId));
        final PushNotificationRecipient recipient = pushNotificationRecipientService.getPushNotificationRecipientById(recipientId);
        assertSubscriptionRequestAndRecipientUsers(request, recipient);
        // Update recipient on request and persist it
        request.setRecipient(recipient);
        request.setUpdated(LocalDateTime.now());
        request = pushNotificationSubscriptionRequestRepository.save(request);
        LOGGER.debug("Successfully updated recipient for push notification subscription request with id - {}, recipient id - {}, request - {}", request.getId(), recipientId, request);
        return request;
    }

    public  PushNotificationSubscriptionRequestServiceImpl();

}