from flask import Blueprint, request, jsonify from flask_jwt_extended import jwt_required from flasgger.utils import swag_from from models.service import Service from models.service_roles import ServiceRole from models.ambiente import Ambiente from models.user import db ambiente_bp = Blueprint('ambiente', __name__, url_prefix='/ambiente') @ambiente_bp.route('/', methods=['POST']) @jwt_required() @swag_from('../docs/ambiente/create.yml') def create_ambiente(): data = request.get_json() service_id = data.get('service_id') service_role_id = data.get('service_role_id') name = data.get('name') description = data.get('description') # Verifica se o serviço existe service = Service.query.get(service_id) if not service: return jsonify({'error': 'Serviço não encontrado'}), 404 # Verifica se o ambiente já existe com o mesmo nome. existing_role = ServiceRole.query.filter_by(service_id=service_id, name=name).first() if existing_role: return jsonify({'error': 'Função de serviço já existe para este serviço'}), 400 # Cria um novo ServiceRole ambiente = Ambiente( service_id=service_id, service_role_id = service_role_id, name=name, description=description ) # Adiciona e comita no banco de dados db.session.add(ambiente) db.session.commit() return jsonify({'message': 'ambiente criado com sucesso', 'ambiente_id': ambiente.id}), 201