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() {
|
async function fetchDataFromAPI() {
|
||||||
//executa uma vez e a cada 30 segundos
|
//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
|
//!primeira requisição é feita para API
|
||||||
|
getFirstData();
|
||||||
getDataAndUpdateFloatingBtn();
|
|
||||||
|
|
||||||
|
//! as outras é o websockt que solicita a chamada de requisições em busca de alterações
|
||||||
const updData = setInterval(()=>{
|
const updData = setInterval(()=>{
|
||||||
getDataAndUpdateFloatingBtn();
|
getDataAndUpdateFloatingBtn();
|
||||||
},3000);
|
},3000);
|
||||||
|
|
@ -65,6 +65,57 @@ async function fetchDataFromAPI() {
|
||||||
},300000);
|
},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
|
// Função para coletar a lista de atendimentos do servidor, vai ser chamada uma vez e a cada 30s
|
||||||
async function getDataAndUpdateFloatingBtn (){
|
async function getDataAndUpdateFloatingBtn (){
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "autoatendcolab",
|
"name": "autoatendcolab",
|
||||||
"version": "1.1.1",
|
"version": "1.1.2",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"isBuildNow": true,
|
"isBuildNow": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
27
renderer.js
27
renderer.js
|
|
@ -38,7 +38,8 @@ async function initializePusher() {
|
||||||
const channelLocal = localStorage.getItem('channel');
|
const channelLocal = localStorage.getItem('channel');
|
||||||
const colabId = localStorage.getItem('idOperator');
|
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;
|
Pusher.logToConsole = true;
|
||||||
|
|
||||||
var pusher = new Pusher(PUSHER_APP_KEY, {
|
var pusher = new Pusher(PUSHER_APP_KEY, {
|
||||||
|
|
@ -51,21 +52,28 @@ async function initializePusher() {
|
||||||
cluster: 'mt1'
|
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) {
|
channel.bind('message-sent', function(r) {
|
||||||
let count = r.data.fila.original.length;
|
let data = r.data.fila.original;
|
||||||
console.log(r.data.fila.original);
|
let count = data.length;
|
||||||
localStorage.setItem('proximos',JSON.stringify(r.data.fila.original));
|
console.log(data);
|
||||||
|
localStorage.setItem('proximos',JSON.stringify(data));
|
||||||
|
|
||||||
populateList(r.data.currentData.original);
|
populateList(r.data.currentData.original);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
pusher.connection.bind('error', function(err) {
|
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 {
|
} else {
|
||||||
console.warn('User not authenticated or Pusher APP_KEY not available. Private channel not subscribed.');
|
console.warn('User not authenticated or Pusher APP_KEY not available. Private channel not subscribed.');
|
||||||
}
|
}
|
||||||
|
|
@ -73,16 +81,11 @@ async function initializePusher() {
|
||||||
|
|
||||||
initializePusher();
|
initializePusher();
|
||||||
|
|
||||||
|
|
||||||
//chama o proximo da fila ao abrir a janela de atendimentos
|
//chama o proximo da fila ao abrir a janela de atendimentos
|
||||||
window.electronAPI.selectAtendID((data)=>{
|
window.electronAPI.selectAtendID((data)=>{
|
||||||
nextButton.disabled = true;
|
nextButton.disabled = true;
|
||||||
if(!data){
|
if(!data){
|
||||||
queueNumber.innerHTML = 'Ninguem aguardando atendimento, fechando a janela em alguns segundos...';
|
queueNumber.innerHTML = 'Ninguem aguardando atendimento, fechando a janela em alguns segundos...';
|
||||||
// setTimeout(() => {
|
|
||||||
// localStorage.removeItem('proximos');
|
|
||||||
// window.close();
|
|
||||||
// },5000);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Reseta a view para a lista sempre que os dados são carregados ao clicar no botão para abrir a janela
|
// 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