forked from Anteros-Code-Mentoria/poc-mvc-ocr
correção de doc_tag-routes.
This commit is contained in:
parent
715dd6e2b9
commit
3b5d5a194f
@ -7,6 +7,7 @@ from app.routes.login_form import login_bp
|
||||
from app.routes.dashboard import dashboard_bp
|
||||
from app.routes.invoice_routes import invoice_bp
|
||||
from app.routes.tag_routes import tag_bp
|
||||
from app.routes.doc_tag_routes import doc_tag_bp
|
||||
from werkzeug.security import generate_password_hash
|
||||
|
||||
def create_default_user():
|
||||
@ -60,4 +61,5 @@ def create_app():
|
||||
app.register_blueprint(login_bp, url_prefix="/login_bp")
|
||||
app.register_blueprint(dashboard_bp, url_prefix="/dashboard")
|
||||
app.register_blueprint(tag_bp, url_prefix="/tags")
|
||||
app.register_blueprint(doc_tag_bp, url_prefix="/doc-tags")
|
||||
return app
|
||||
|
||||
@ -1,20 +1,82 @@
|
||||
from flask import Blueprint, request, jsonify
|
||||
from models.doc_tag import DocTag
|
||||
from models.base import db
|
||||
import uuid
|
||||
from flask import Flask, request, jsonify
|
||||
from app.models.model_tag import Tag
|
||||
from app.models.doc_tag import DocTag
|
||||
from app.database import db
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
from uuid import UUID
|
||||
|
||||
doc_tag_routes = Blueprint("doc_tag_routes", __name__, url_prefix="/doc-tags")
|
||||
app = Flask(__name__)
|
||||
|
||||
@doc_tag_routes.route("/", methods=["POST"])
|
||||
@app.route("/tags", methods=["POST"])
|
||||
def create_tag():
|
||||
try:
|
||||
nome = request.json.get("nome")
|
||||
if not nome:
|
||||
return jsonify({"error": "Nome é obrigatório"}), 400
|
||||
|
||||
existing_tag = Tag.query.filter_by(nome=nome).first()
|
||||
if existing_tag:
|
||||
return jsonify({"error": "Nome já está em uso"}), 409
|
||||
|
||||
new_tag = Tag(nome=nome)
|
||||
db.session.add(new_tag)
|
||||
db.session.commit()
|
||||
return jsonify({"id": new_tag.id, "nome": new_tag.nome}), 201
|
||||
|
||||
except SQLAlchemyError as e:
|
||||
db.session.rollback()
|
||||
return jsonify({"error": "Erro ao criar tag", "details": str(e)}), 500
|
||||
|
||||
@app.route("/tags", methods=["GET"])
|
||||
def list_tags():
|
||||
try:
|
||||
tags = Tag.query.all()
|
||||
if not tags:
|
||||
return jsonify({"message": "Nenhuma tag encontrada"}), 404
|
||||
|
||||
return jsonify([{ "id": tag.id, "nome": tag.nome } for tag in tags]), 200
|
||||
|
||||
except SQLAlchemyError as e:
|
||||
return jsonify({"error": "Erro ao listar tags", "details": str(e)}), 500
|
||||
|
||||
@app.route("/tags/<uuid:tag_id>", methods=["DELETE"])
|
||||
def delete_tag(tag_id):
|
||||
try:
|
||||
tag = Tag.query.get(tag_id)
|
||||
if not tag:
|
||||
return jsonify({"error": "Tag não encontrada"}), 404
|
||||
|
||||
db.session.delete(tag)
|
||||
db.session.commit()
|
||||
return jsonify({"message": "Tag deletada com sucesso"}), 200
|
||||
|
||||
except SQLAlchemyError as e:
|
||||
db.session.rollback()
|
||||
return jsonify({"error": "Erro ao deletar tag", "details": str(e)}), 500
|
||||
|
||||
@app.route("/doc-tags", methods=["POST"])
|
||||
def create_doc_tag():
|
||||
documento_id = request.json.get("documento_id")
|
||||
tag_id = request.json.get("tag_id")
|
||||
new_doc_tag = DocTag(documento_id=documento_id, tag_id=tag_id)
|
||||
db.session.add(new_doc_tag)
|
||||
db.session.commit()
|
||||
return jsonify({"id": new_doc_tag.id, "documento_id": new_doc_tag.documento_id, "tag_id": new_doc_tag.tag_id}), 201
|
||||
try:
|
||||
documento_id = request.json.get("documento_id")
|
||||
tag_id = request.json.get("tag_id")
|
||||
|
||||
@doc_tag_routes.route("/", methods=["GET"])
|
||||
new_doc_tag = DocTag(documento_id=documento_id, tag_id=tag_id)
|
||||
db.session.add(new_doc_tag)
|
||||
db.session.commit()
|
||||
return jsonify({"id": new_doc_tag.id, "documento_id": new_doc_tag.documento_id, "tag_id": new_doc_tag.tag_id}), 201
|
||||
|
||||
except SQLAlchemyError as e:
|
||||
db.session.rollback()
|
||||
return jsonify({"error": "Erro ao criar DocTag", "details": str(e)}), 500
|
||||
|
||||
@app.route("/doc-tags", methods=["GET"])
|
||||
def list_doc_tags():
|
||||
doc_tags = DocTag.query.all()
|
||||
return jsonify([{"id": dt.id, "documento_id": dt.documento_id, "tag_id": dt.tag_id} for dt in doc_tags]), 200
|
||||
try:
|
||||
doc_tags = DocTag.query.all()
|
||||
return jsonify([{ "id": dt.id, "documento_id": dt.documento_id, "tag_id": dt.tag_id } for dt in doc_tags]), 200
|
||||
|
||||
except SQLAlchemyError as e:
|
||||
return jsonify({"error": "Erro ao listar DocTags", "details": str(e)}), 500
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run(debug=True)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user