From 715dd6e2b94b31a8d2da5fe7a9f5ffa8454f2237 Mon Sep 17 00:00:00 2001 From: looccasgtr Date: Fri, 9 May 2025 15:17:58 -0400 Subject: [PATCH] =?UTF-8?q?Inclus=C3=A3o=20do=20"delete"=20em=20"tag=5Frou?= =?UTF-8?q?tes"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/routes/tag_routes.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/app/routes/tag_routes.py b/app/routes/tag_routes.py index d7023e1..b1a71a9 100644 --- a/app/routes/tag_routes.py +++ b/app/routes/tag_routes.py @@ -2,17 +2,17 @@ from flask import Blueprint, request, jsonify from app.models.model_tag import Tag from app.database import db from sqlalchemy.exc import SQLAlchemyError +from uuid import UUID tag_bp = Blueprint("tag_routes", __name__, url_prefix="/tags") -@tag_bp.route("/", methods=["POST"]) +@tag_bp.route("/", methods=["POST"], endpoint="create_tag") def create_tag(): try: nome = request.json.get("nome") if not nome: return jsonify({"error": "Nome é obrigatório"}), 400 - # Verifica se já existe uma tag com o mesmo nome existing_tag = Tag.query.filter_by(nome=nome).first() if existing_tag: return jsonify({"error": "Nome já está em uso"}), 409 @@ -26,7 +26,7 @@ def create_tag(): db.session.rollback() return jsonify({"error": "Erro ao criar tag", "details": str(e)}), 500 -@tag_bp.route("/", methods=["GET"]) +@tag_bp.route("/", methods=["GET"], endpoint="list_tags") def list_tags(): try: tags = Tag.query.all() @@ -37,3 +37,19 @@ def list_tags(): except SQLAlchemyError as e: return jsonify({"error": "Erro ao listar tags", "details": str(e)}), 500 + +@tag_bp.route("/", methods=["DELETE"], endpoint="delete_tag") +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 +