testes/app/routes/newclient.py

79 lines
2.9 KiB
Python

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()