testes/app/routes/montagem.py

61 lines
2.3 KiB
Python

from flask import Blueprint, request, jsonify, current_app
from flask_mysqldb import MySQL
import jwt
from .auth import token_required # Importa o token_required de auth.py
montagem = Blueprint('montagem', __name__, static_folder='repositorio_img')
mysql = MySQL()
@montagem.route('/mounting', methods=['GET'])
@token_required # Verificação de token para autenticação
def mounting(data):
username_full = data['user']
# Verifica se o usuário está autenticado
if not username_full:
return jsonify({'msg': 'Token inválido!'}), 401
# Extrair o nome de usuário e o domínio do email do usuário autenticado
username = username_full.split('@')[0]
domain = username_full.split('@')[1]
# Consultar o banco de dados para obter as informações do usuário (nome, img_perfil, img_fundo)
cur = mysql.connection.cursor()
cur.execute("SELECT nome, img_perfil, img_fundo FROM usuarios WHERE usuario = %s", (username,))
usuario_result = cur.fetchone()
if usuario_result is None:
cur.close()
return jsonify({'msg': 'Usuário não encontrado no banco de dados'}), 404
nome_usuario, img_perfil_path, img_fundo_path = usuario_result
perfil_MP = usuario_result['img_perfil']
fundo_MP = usuario_result['img_fundo']
# Consultar o banco de dados para obter o nome e o logo da empresa com base no domínio
cur.execute("SELECT nome, logo FROM empresa WHERE dominio = %s", (domain,))
empresa_result = cur.fetchone()
cur.close()
if empresa_result is None:
return jsonify({'msg': 'Empresa não encontrada no banco de dados para o domínio fornecido'}), 404
nome_empresa, logo_empresa_path = empresa_result
logo_MP = empresa_result['logo']
# Montar a resposta JSON com os caminhos relativos das imagens e outras informações
response_data = {
'usuario': {
'nome': username,
'img_perfil': f"/repositorio_img/{perfil_MP}", # Caminho relativo para a imagem de perfil
'img_fundo': f"/repositorio_img/{fundo_MP}" # Caminho relativo para a imagem de fundo
},
'empresa': {
'nome': domain,
'logo': f"/repositorio_img/{logo_MP}" # Caminho relativo para o logo da empresa
}
}
return jsonify(response_data), 200