avoid conflict when confirming pubsub sbuscription
[mygpo.git] / mygpo / db / couchdb / pubsub.py
blob6bb3e99d5b3a794a63fce8fff45ce82e3c7a963b
1 from mygpo.pubsub.models import Subscription
2 from mygpo.db.couchdb import get_pubsub_database
3 from mygpo.decorators import repeat_on_conflict
6 def subscription_for_topic(topic):
7 """ return the subscription for the given topic, one None """
9 db = get_pubsub_database()
11 r = db.view('subscriptions/by_topic',
12 key = topic,
13 include_docs = True,
14 reduce = False,
15 schema = Subscription
18 if r:
19 sub = r.one()
20 sub.set_db(db)
21 return sub
23 else:
24 return None
27 @repeat_on_conflict(['subscription'])
28 def set_subscription_verified(subscription):
29 """ marks the pubsub subscription as verified """
30 pdb = get_pubsub_database()
31 subscription.verified = True
32 pdb.save_doc(subscription)