def request_subscription(self, content, email): # Send out request for subscription # NOTE: no doc string, so, not *publishable* TTW # if not self.are_subscriptions_enabled(): raise errors.NotSubscribableError() manager = ISubscriptionManager(content, None) # see if content is subscribable if manager is None or not manager.is_subscribable(): raise errors.NotSubscribableError() # validate address if not isValidMailAddress(email): raise errors.InvalidEmailaddressError() # check if not yet subscribed subscription = manager.get_subscription(email) if subscription is not None: # send an email informing about this situation self._send_confirmation( content, subscription.content, email, 'already_subscribed_template', 'confirm_subscription') raise errors.AlreadySubscribedError() # send confirmation email to emailaddress self._send_confirmation( content, content, email, 'subscription_confirmation_template', 'confirm_subscription')
def request_cancellation(self, content, email): # Send out request for cancellation of the subscription # NOTE: no doc string, so, not *publishable* TTW # manager = ISubscriptionManager(content, None) if manager is None: raise errors.NotSubscribableError() # validate address if not isValidMailAddress(email): raise errors.InvalidEmailaddressError() # check if indeed subscribed subscription = manager.get_subscription(email) if subscription is None: # send an email informing about this situation self._send_information(content, email, 'not_subscribed_template') raise errors.NotSubscribedError() self._send_confirmation( content, subscription.content, email, 'cancellation_confirmation_template', 'confirm_cancellation')