testes/app/routes/zammad.py

42 lines
1.6 KiB
Python

from flask import Blueprint, jsonify, request
import requests
# Blueprint para rotas relacionadas ao Zammad
zammad = Blueprint('zammad', __name__)
# Configurações da API do Zammad
base_url = "http://10.10.253.59/api/v1" # URL base da API Zammad
zammad_token = "kT0IXO8aVhPoTLcMRNL290rqd9jbRhhM0zf8MgBo3n00NLChToSU6rOGnMgWA0M2" # Token da API Zammad
# Rota para listar tickets
@zammad.route('/tickets', methods=['GET'])
def listar_tickets():
try:
# Cabeçalho de autenticação para a API Zammad
headers = {
"Authorization": f"Token token={zammad_token}",
"Content-Type": "application/json"
}
# Faz a requisição para a API Zammad
url = f"{base_url}/tickets"
response = requests.get(url, headers=headers, timeout=10) # Timeout adicionado para evitar requisições travadas
# Processa a resposta
if response.status_code == 200:
tickets = response.json()
return jsonify(tickets), 200
else:
return jsonify({
"error": f"Erro ao buscar tickets: {response.status_code}",
"details": response.text
}), response.status_code
except requests.exceptions.RequestException as e:
# Captura problemas de conexão ou requisição
return jsonify({"error": "Erro na requisição à API", "details": str(e)}), 500
except Exception as e:
# Captura quaisquer outros erros inesperados
return jsonify({"error": "Erro interno ao processar a solicitação", "details": str(e)}), 500