-
Notifications
You must be signed in to change notification settings - Fork 0
/
luffy.js
105 lines (89 loc) · 3.76 KB
/
luffy.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// URL base da API
const baseUrl = 'https://whatsapp.smarters.io/api/v1/billing/conversations';
// Função para buscar os dados da API com filtro por ano e mês
function fetchDataByYearMonth(year, month) {
const filteredUrl = `${baseUrl}?year=${year}&month=${month}`;
return fetch(filteredUrl, {
method: 'GET',
headers: {
'Authorization': token
}
})
.then(response => response.json())
.then(data => {
console.log('Dados recebidos:', data);
return data;
})
.catch(error => {
console.error('Erro ao recuperar os dados:', error);
throw error;
});
}
// Função para lidar com o evento de filtragem por ano e mês
function filterByYearMonth() {
const year = document.getElementById('yearInput').value;
const month = document.getElementById('monthInput').value;
token = document.getElementById('tokenInput').value;
console.log('Ano selecionado:', year);
console.log('Mês selecionado:', month);
if (year && month) {
// Buscar os dados da API com o filtro por ano e mês
fetchDataByYearMonth(year, month)
.then(data => {
console.log('Dados recebidos:', data); // Log dos dados recebidos para depuração
// Atualizar a exibição com os dados filtrados
updateView(data);
})
.catch(error => {
// Lidar com erros
console.error('Erro ao filtrar os dados:', error);
// Limpar a exibição em caso de erro
clearView();
});
} else {
// Se o ano ou mês não forem válidos, exibir uma mensagem de erro
console.error('Ano ou mês inválidos');
}
}
// Função para atualizar a visualização com os dados recebidos
function updateView(data) {
// Preencher a última atualização
// usar quando tiver motivos document.getElementById('lastUpdate').innerText = 'Última Atualização: ' + data.data.lastUpdate;
// Preencher o total de conversas
const totalContainer = document.getElementById('totalConversations');
totalContainer.innerText = 'Total de HSMs utilizadas no mês:';
// Criar uma lista para exibir os detalhes do total
const totalList = document.createElement('ul');
totalList.classList.add('listStyle');
// Obter apenas os dados do campo "total"
const totalData = data.data.conversationsSummary.total;
// Iterar sobre os dados do campo "total" e preencher a lista
for (const key in totalData) {
const listItem = document.createElement('li');
listItem.innerText = `${key}: ${totalData[key]}`;
totalList.appendChild(listItem);
}
// Anexar a lista ao contêiner de total de conversas
totalContainer.appendChild(totalList);
// Preencher o status da mensagem
// Usar em outro momento document.getElementById('statusMessage').innerText = 'Status da Mensagem: ' + data.status;
}
// Função para limpar a visualização em caso de erro
function clearView() {
document.getElementById('lastUpdate').innerText = '';
document.getElementById('conversationsSummary').innerText = '';
document.getElementById('totalConversations').innerText = '';
}
// Função para gerar o PDF
function generatePDF() {
const { jsPDF } = window.jspdf;
const doc = new jsPDF();
const lastUpdate = document.getElementById('lastUpdate').innerText;
const conversationsSummary = document.getElementById('conversationsSummary').innerText;
const totalConversations = document.getElementById('totalConversations').innerText;
doc.text("Relatório Smarters", 10, 10);
doc.text(lastUpdate, 10, 20);
doc.text(conversationsSummary, 10, 30);
doc.text(totalConversations, 10, 40);
doc.save("relatorio_smarters.pdf");
}