summaryrefslogtreecommitdiff
path: root/src/controllers/replies_controller.py
blob: 6713e26cb46fb6a32add0536524b4c69c50266e2 (plain)
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
from flask import Blueprint, request, abort, render_template
from src.services import CreateReplyService
from src.queries import CommentsQuery
from src.database.models import Comment
from src.database import db


replies_blueprint = Blueprint('replies_controller',
                              '__replies_controller__')
comments_query = CommentsQuery()


@replies_blueprint.get('/api/comments/<int:comment_id>/replies')
def index(comment_id):
    comment = db.get_or_404(Comment, comment_id)

    return render_template('replies/index.jinja', page=comments_query.replies_of(comment.id), comment=comment)


@replies_blueprint.get('/api/replies/new')
def new():
    return render_template('replies/form.jinja')


@replies_blueprint.post('/api/comments/<int:comment_id>/replies')
def create(comment_id):
    service = CreateReplyService(request.form, comment_id)
    status_code = service.call()

    if status_code != 200:
        abort(status_code)

    return render_template('comments/index.jinja', page=comments_query.replies_of(comment_id))