64 lines
1.9 KiB
Python
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)
|