From 4781afe4a739268f76f115f11e8986b06c59ea7c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20K=C3=B6gl?= Date: Sun, 1 Dec 2013 20:52:42 +0100 Subject: [PATCH] avoid conflict when confirming pubsub sbuscription --- mygpo/db/couchdb/pubsub.py | 9 +++++++++ mygpo/pubsub/views.py | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/mygpo/db/couchdb/pubsub.py b/mygpo/db/couchdb/pubsub.py index 32772d29..6bb3e99d 100644 --- a/mygpo/db/couchdb/pubsub.py +++ b/mygpo/db/couchdb/pubsub.py @@ -1,5 +1,6 @@ from mygpo.pubsub.models import Subscription from mygpo.db.couchdb import get_pubsub_database +from mygpo.decorators import repeat_on_conflict def subscription_for_topic(topic): @@ -21,3 +22,11 @@ def subscription_for_topic(topic): else: return None + + +@repeat_on_conflict(['subscription']) +def set_subscription_verified(subscription): + """ marks the pubsub subscription as verified """ + pdb = get_pubsub_database() + subscription.verified = True + pdb.save_doc(subscription) diff --git a/mygpo/pubsub/views.py b/mygpo/pubsub/views.py index 11cf3ebc..6858211c 100644 --- a/mygpo/pubsub/views.py +++ b/mygpo/pubsub/views.py @@ -15,7 +15,8 @@ from couchdbkit.ext.django import * from feedservice import urlstore from mygpo.pubsub.models import SubscriptionError, Subscription from mygpo.pubsub.signals import subscription_updated -from mygpo.db.couchdb.pubsub import subscription_for_topic +from mygpo.db.couchdb.pubsub import subscription_for_topic, \ + set_subscription_verified logger = logging.getLogger(__name__) @@ -59,8 +60,7 @@ class SubscribeView(View): subscribe.verify_token) return HttpResponseNotFound() - subscription.verified = True - subscription.save() + set_subscription_verified(subscription) logger.info('subscription confirmed') return HttpResponse(challenge) -- 2.11.4.GIT