adicionados novas funcionalidades para filtro de chamados, e busca a se há algum na fila na inicialização
This commit is contained in:
parent
54cfba5cc4
commit
97b4d2c90e
57
main.js
57
main.js
|
|
@ -50,10 +50,10 @@ async function readData() {
|
|||
async function fetchDataFromAPI() {
|
||||
//executa uma vez e a cada 30 segundos
|
||||
|
||||
//TODO propicio para fazer um websockt nessas funções que repetem a chamada de requisições em busca de alterações
|
||||
|
||||
getDataAndUpdateFloatingBtn();
|
||||
//!primeira requisição é feita para API
|
||||
getFirstData();
|
||||
|
||||
//! as outras é o websockt que solicita a chamada de requisições em busca de alterações
|
||||
const updData = setInterval(()=>{
|
||||
getDataAndUpdateFloatingBtn();
|
||||
},3000);
|
||||
|
|
@ -65,6 +65,57 @@ async function fetchDataFromAPI() {
|
|||
},300000);
|
||||
}
|
||||
|
||||
async function getFirstData(){
|
||||
|
||||
const token = await getAuthToken();
|
||||
const colabId = await floatingWin.webContents.executeJavaScript("localStorage.getItem('idOperator')")
|
||||
const url = apiUrl + 'get-proximos/' + colabId;
|
||||
|
||||
//! checa se o token e o colabId existem
|
||||
if (!token && !colabId) { console.warn("Token or colabId not found in localStorage. API requests will not be made."); return; }
|
||||
|
||||
//! faz o request
|
||||
const request = net.request({
|
||||
method: 'GET',
|
||||
url: url,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': 'Bearer ' + token
|
||||
}
|
||||
});
|
||||
|
||||
//! busca pela resposta
|
||||
request.on('response', (response) => {
|
||||
let rawData = '';
|
||||
response.on('data', (chunk) => { rawData += chunk; });
|
||||
response.on('end', () => {
|
||||
try {
|
||||
const parsedData = JSON.parse(rawData);
|
||||
let proximos = parsedData;
|
||||
if (response.statusCode === 200) {
|
||||
floatingWin.webContents.executeJavaScript("localStorage.setItem('proximos','" + JSON.stringify(proximos) + "')");
|
||||
let count = proximos.length;
|
||||
floatingWin.webContents.send('update-count', count);
|
||||
} else {
|
||||
console.error(`Erro na requisição: Status code ${response.statusCode}`, parsedData);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Erro ao analisar a resposta JSON:", error);
|
||||
mainWin.webContents.send('api-error', {
|
||||
message: `Erro ao processar resposta do servidor.`
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
request.on('error', (error) => {
|
||||
console.error("Erro na requisição:", error);
|
||||
});
|
||||
|
||||
request.end();
|
||||
|
||||
return JSON.parse(await floatingWin.webContents.executeJavaScript("localStorage.getItem('proximos')"));
|
||||
}
|
||||
|
||||
// Função para coletar a lista de atendimentos do servidor, vai ser chamada uma vez e a cada 30s
|
||||
async function getDataAndUpdateFloatingBtn (){
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "autoatendcolab",
|
||||
"version": "1.1.1",
|
||||
"version": "1.1.2",
|
||||
"main": "main.js",
|
||||
"isBuildNow": true,
|
||||
"scripts": {
|
||||
|
|
|
|||
27
renderer.js
27
renderer.js
|
|
@ -38,7 +38,8 @@ async function initializePusher() {
|
|||
const channelLocal = localStorage.getItem('channel');
|
||||
const colabId = localStorage.getItem('idOperator');
|
||||
|
||||
if (channelLocal && PUSHER_APP_KEY) {
|
||||
//! checa se ja tem o colabId
|
||||
if (channelLocal && colabId && PUSHER_APP_KEY) {
|
||||
Pusher.logToConsole = true;
|
||||
|
||||
var pusher = new Pusher(PUSHER_APP_KEY, {
|
||||
|
|
@ -51,21 +52,28 @@ async function initializePusher() {
|
|||
cluster: 'mt1'
|
||||
});
|
||||
|
||||
var channel = pusher.subscribe('chat.' + channelLocal + '_' + colabId);
|
||||
let channel;
|
||||
if (pusher.connection.state === 'connected') {
|
||||
pusher.unsubscribe('chat.' + channelLocal + '_' + colabId);
|
||||
}
|
||||
|
||||
channel = pusher.subscribe('chat.' + channelLocal + '_' + colabId);
|
||||
|
||||
channel.bind('message-sent', function(r) {
|
||||
let count = r.data.fila.original.length;
|
||||
console.log(r.data.fila.original);
|
||||
localStorage.setItem('proximos',JSON.stringify(r.data.fila.original));
|
||||
let data = r.data.fila.original;
|
||||
let count = data.length;
|
||||
console.log(data);
|
||||
localStorage.setItem('proximos',JSON.stringify(data));
|
||||
|
||||
populateList(r.data.currentData.original);
|
||||
|
||||
});
|
||||
|
||||
pusher.connection.bind('error', function(err) {
|
||||
console.error('Pusher connection error:', err);
|
||||
console.error('Pusher connection error: ', err);
|
||||
});
|
||||
|
||||
console.log('Host de conexão:', host);
|
||||
console.log('Host de conexão: ', host);
|
||||
} else {
|
||||
console.warn('User not authenticated or Pusher APP_KEY not available. Private channel not subscribed.');
|
||||
}
|
||||
|
|
@ -73,16 +81,11 @@ async function initializePusher() {
|
|||
|
||||
initializePusher();
|
||||
|
||||
|
||||
//chama o proximo da fila ao abrir a janela de atendimentos
|
||||
window.electronAPI.selectAtendID((data)=>{
|
||||
nextButton.disabled = true;
|
||||
if(!data){
|
||||
queueNumber.innerHTML = 'Ninguem aguardando atendimento, fechando a janela em alguns segundos...';
|
||||
// setTimeout(() => {
|
||||
// localStorage.removeItem('proximos');
|
||||
// window.close();
|
||||
// },5000);
|
||||
return;
|
||||
}
|
||||
// Reseta a view para a lista sempre que os dados são carregados ao clicar no botão para abrir a janela
|
||||
|
|
|
|||
Loading…
Reference in New Issue