add community subscription; unify subscription interface

This commit is contained in:
knst-kotov
2022-06-12 10:51:22 +03:00
parent f89cb47daf
commit 39070dc359
6 changed files with 76 additions and 33 deletions

View File

@@ -60,29 +60,17 @@ async def update_topic(_, info, input):
return { "topic" : topic }
@mutation.field("topicSubscribe")
@login_required
async def topic_subscribe(_, info, slug):
user = info.context["request"].user
def topic_subscribe(user, slug):
TopicSubscription.create(
subscriber = user.slug,
topic = slug)
return {}
@mutation.field("topicUnsubscribe")
@login_required
async def topic_unsubscribe(_, info, slug):
user = info.context["request"].user
def topic_unsubscribe(user, slug):
with local_session() as session:
sub = session.query(TopicSubscription).\
filter(and_(TopicSubscription.subscriber == user.slug, TopicSubscription.topic == slug)).\
first()
if not sub:
return { "error" : "subscription not exist" }
raise Exception("subscription not exist")
session.delete(sub)
session.commit()
return {}