コード例 #1
0
    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')
コード例 #2
0
    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')