def subscribe(subscriber, name): subscription = SubscriptionDomain.get_by_name(name) if not subscription: return { 'status': 'error', 'response': 'not found subscription \'{}\''.format(name) } subscription.subscribers.append(subscriber) db.session.add(subscription) db.session.commit() return {'status': 'ok', 'response': 'subscribed to \'{}\''.format(name)}
def unsubscribe(subscriber, name): subscription = SubscriptionDomain.get_by_name(name) if not subscription: return { 'status': 'error', 'response': 'not found subscription \'{}\''.format(name) } try: subscription.subscribers.remove(subscriber) db.session.add(subscription) db.session.commit() except ValueError: return { 'status': 'error', 'response': 'you are not subscribed to \'{}\''.format(name) } return {'status': 'ok', 'response': 'unsubscribed to \'{}\''.format(name)}