Spaces:
Running
Running
from flask import Blueprint, request, jsonify | |
from src.models.user import db | |
from src.models.post import Post, Comment | |
post_bp = Blueprint('post', __name__) | |
def get_posts(): | |
"""ดึงโพสต์ทั้งหมด""" | |
posts = Post.query.order_by(Post.created_at.desc()).all() | |
return jsonify([post.to_dict() for post in posts]) | |
def create_post(): | |
"""สร้างโพสต์ใหม่""" | |
data = request.get_json() | |
if not data or not data.get('name') or not data.get('note'): | |
return jsonify({'error': 'Name and note are required'}), 400 | |
post = Post( | |
name=data['name'], | |
note=data['note'], | |
youtube_link=data.get('youtube_link', '') | |
) | |
db.session.add(post) | |
db.session.commit() | |
return jsonify(post.to_dict()), 201 | |
def like_post(post_id): | |
"""ถูกใจโพสต์""" | |
post = Post.query.get_or_404(post_id) | |
post.likes += 1 | |
db.session.commit() | |
return jsonify({'likes': post.likes}) | |
def get_comments(post_id): | |
"""ดึงคอมเมนต์ของโพสต์""" | |
comments = Comment.query.filter_by(post_id=post_id).order_by(Comment.created_at.asc()).all() | |
return jsonify([comment.to_dict() for comment in comments]) | |
def add_comment(post_id): | |
"""เพิ่มคอมเมนต์ในโพสต์""" | |
data = request.get_json() | |
if not data or not data.get('name') or not data.get('comment'): | |
return jsonify({'error': 'Name and comment are required'}), 400 | |
# ตรวจสอบว่าโพสต์มีอยู่จริง | |
post = Post.query.get_or_404(post_id) | |
comment = Comment( | |
post_id=post_id, | |
name=data['name'], | |
comment=data['comment'] | |
) | |
db.session.add(comment) | |
db.session.commit() | |
return jsonify(comment.to_dict()), 201 | |