package org.podcastpedia.web.userinteraction.emailsubscription;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.HashMap;
import java.util.Map;
public class EmailSubscriptionServiceImpl implements EmailSubscriptionService {
@Autowired
EmailSubscriptionDao emailSubscriptionDao;
public void addNewEmailSubscription(String email, Integer podcastId) {
EmailSubscriber emailSubscriptionsForEmail = emailSubscriptionDao.selectEmailSubscriberByEmail(email);
if(emailSubscriptionsForEmail != null){
if(emailSubscriptionsForEmail.getSubscribedPodcastIds().contains(podcastId)){
//we do nothing because the user already subscribed to this podcast
} else {
addPodcastEmailSubscription(email, podcastId);
}
} else {
emailSubscriptionDao.addEmailSubscriberToUsers(email);
addPodcastEmailSubscription(email, podcastId);
}
}
private void addPodcastEmailSubscription(String email, Integer podcastId) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("email", email);
params.put("podcastId", podcastId);
emailSubscriptionDao.addPodcastEmailSubscription(params);
}
public void setEmailSubscriptionDao(EmailSubscriptionDao emailSubscriptionDao) {
this.emailSubscriptionDao = emailSubscriptionDao;
}
}