import logging from flask import Blueprint, jsonify, request from .auth import token_required from flask_mysqldb import MySQL import os newclient = Blueprint('newclient', __name__) mysql = MySQL() CAMINHO_LOGO = "/var/www/Backend/itguys/ambiente_python/repositorio_img/logos/" # Configuração de logging logging.basicConfig(level=logging.DEBUG) # Log no nível de debug def salvar_imagem(arquivo, tipo_imagem, nome_empresa): """Salva a imagem no diretório correspondente e retorna o caminho relativo""" nome_arquivo = f"{nome_empresa}.png" tipo_imagem == "logos" caminho_diretorio = CAMINHO_LOGO caminho_relativo = f"logos/{nome_arquivo}" caminho_completo = os.path.join(caminho_diretorio, nome_arquivo) # Garante que o diretório existe os.makedirs(caminho_diretorio, exist_ok=True) # Salva a imagem arquivo.save(caminho_completo) return caminho_relativo # Retorna o caminho relativo para o banco de dados @newclient.route('/cliente', methods=['POST']) @token_required def inserir_cliente(get): # Recebe current_user do decorador data = request.get_json() nome_empresa = data.get('nome_empresa') cpf_cnpj = data.get('cpf_cnpj') dominio_empresa = data.get('dominio_empresa') tipo_pessoa = data.get('tipo_pessoa') endereco = data.get('endereco') cidade = data.get('cidade') bairro = data.get('bairro') cep = data.get('cep') uf = data.get ('uf') valor_servico = data.get('valor_servico') grupo_zabbix = data.get('grupo_zabbix') dia_vencimento = int(data.get('dia_vencimento')) email = data.get('email financeiro') logo = request.files.get('logo') if not nome_empresa or not cpf_cnpj or not dominio_empresa or not tipo_pessoa or not endereco or not cidade or not bairro or not cep or not uf or not valor_servico or not grupo_zabbix or not dia_vencimento or not email or not logo: return jsonify({'erro': 'Todos os campos são obrigatórios'}), 400 caminho_logo = salvar_imagem(logo, nome_empresa) # Salvando imagem e obtendo caminho conn = mysql.connection cursor = conn.cursor() try: query = """ INSERT INTO empresa (nome_empresa, cpf_cnpj, dominio_empresa, tipo_pessoa, endereco, cidade, bairro, cep, uf, valor_servico, grupo_zabbix, dia_vencimento, email, logo) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s ) """ cursor.execute(query, (nome_empresa, cpf_cnpj, dominio_empresa, tipo_pessoa, endereco, cidade, bairro, cep, uf, valor_servico, grupo_zabbix, dia_vencimento, email, logo)) conn.commit() return jsonify({'message': 'Dados inseridos com sucesso!'}), 200 except Exception as err: logging.error(f"Erro ao inserir dados: {str(err)}", exc_info=True) # Logando erro com traceback return jsonify({'erro': f'Erro ao inserir dados: {str(err)}'}), 500 finally: cursor.close()