-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathsub.py
More file actions
50 lines (43 loc) · 1.53 KB
/
sub.py
File metadata and controls
50 lines (43 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
"""
Subs controller - Subs page.
"""
from flask import Blueprint, render_template, request, session, abort
from app.controllers.decorators import login_required
from app.models.user import user_by_name
from app.models.subscription import user_subscribe_to, user_unsubscribe_to, get_user_subs
sub_bp = Blueprint('sub', __name__)
@sub_bp.route('/subscriptions', methods=["GET"])
@login_required
def subscriptions():
"""Display the People user has subscribed to."""
subscribed_users = get_user_subs(session.get('name', None))
print(subscribed_users)
return render_template('sub/subscriptions.html', subscribed_users=subscribed_users)
@sub_bp.route("/subscriptions/subscribe", methods=["POST"])
#@limit("20 per min") # enable rate limit if needed
@login_required
def subscribe():
name = request.form.get('to')
user = user_by_name(name).get('name')
current_user = session.get('name', None)
if not current_user or not user:
abort(403)
try:
user_subscribe_to(current_user, user)
except Exception as e:
abort(500)
return {"status": "ok"}
@sub_bp.route("/subscriptions/unsubscribe", methods=["POST"])
#@limit("20 per min") # enable rate limit if needed
@login_required
def unsubscribe():
name = request.form.get('to')
user = user_by_name(name).get('name')
current_user = session.get('name', None)
if not current_user or not user:
abort(403)
try:
user_unsubscribe_to(current_user, user)
except Exception as e:
abort(500)
return {"status": "ok"}