42 lines
1.6 KiB
Python
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
|