Meu_projeto/app/routes/documentos_routes.py
2025-05-16 19:55:05 -04:00

64 lines
1.9 KiB
Python

from flask import Blueprint, jsonify, request
from app.auth import token_required
from app.models.documentos import document
from app.database import db
document_bp = Blueprint("documents", __name__)
# Listar todos os documentos
@document_bp.route("/", methods=["GET"])
@token_required
def get_documents(self):
documents = document.query.all()
return jsonify([
{"id": d.id, "title": d.title, "content": d.content, "owner_id": d.user_id}
for d in documents
])
# Criar um novo documento
@document_bp.route("/", methods=["POST"])
@token_required
def create_document(self):
data = request.get_json()
title = data.get("title")
content = data.get("content")
new_doc = document(title=title, content=content, user_id=self.id) # self.id vem do token
db.session.add(new_doc)
db.session.commit()
return jsonify({"message": "Documento criado com sucesso!", "document_id": new_doc.id}), 201
# Obter um documento específico
@document_bp.route("/<int:document_id>", methods=["GET"])
@token_required
def get_document(self, document_id):
document = document.query.get_or_404(document_id)
return jsonify({
"id": document.id,
"title": document.title,
"content": document.content,
"owner_id": document.user_id
})
# Atualizar um documento
@document_bp.route("/<int:document_id>", methods=["PUT"])
@token_required
def update_document(self, document_id):
document = document.query.get_or_404(document_id)
data = request.get_json()
document.title = data.get("title", document.title)
document.content = data.get("content", document.content)
db.session.commit()
return jsonify({"message": "Documento atualizado com sucesso!"})
# Deletar um documento
@document_bp.route("/<int:document_id>", methods=["DELETE"])
@token_required
def delete_document(self, document_id):
document = document.query.get_or_404(document_id)
db.session.delete(document)