79 lines
2.9 KiB
Python
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() |