private void unsubscribeAll(String email, String key) { email = email.toLowerCase(); Set<Subscription> subscriptions = subscriptionDao.getSubscriptionsBySubscribersEmail(email); if (subscriptions.isEmpty()) { log.debug(email, "is not subscribed to anything"); return; } for (Subscription subscription : subscriptions) { subscription.removeSubscribersEmail(email); } log.info(email, "unsubscribed from", subscriptions.size(), "entities"); }
public void unsubscribe(String email, AEntity subject, String key) throws InvalidKeyException { email = email.toLowerCase(); if (!createKey(email).equals(key)) throw new InvalidKeyException(email); if (subject == null) { unsubscribeAll(email, key); return; } Subscription subscription = subscriptionDao.getSubscriptionBySubject(subject); if (subscription == null || !subscription.containsSubscribersEmail(email)) { log.debug(email, "is not subscribed to", subject); return; } subscription.removeSubscribersEmail(email); log.info(email, "unsubscribed from", subject); }