Skip to content

Commit

Permalink
Melhoria de velocidade de pesquisa
Browse files Browse the repository at this point in the history
  • Loading branch information
GeovaneDev committed Jan 30, 2024
1 parent e780a1e commit 4fbcf5c
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 20 deletions.
4 changes: 2 additions & 2 deletions app/page.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"use client"
"use client";
import { DefaultSeo } from 'next-seo';
import React from 'react';
import 'bootstrap/dist/css/bootstrap.min.css';
Expand Down Expand Up @@ -99,4 +99,4 @@ const Home = () => {
);
};

export default Home;
export default Home;
27 changes: 15 additions & 12 deletions pages/api/fundamentus/search.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@ import axios from 'axios';
export default async (req, res) => {
try {
// Obtém a URL da API do ambiente
let URL = process.env.URL;
const URL = process.env.URL;

// Faz uma solicitação para obter a lista de ações disponíveis
const { data: { data: stockList } } = await axios.get(`${URL}/api/fundamentus/available`);
// Faz solicitações em paralelo para obter a lista de ações disponíveis e a consulta da requisição
const [availableStocksResponse, { query }] = await Promise.all([
axios.get(`${URL}/api/fundamentus/available`),
req.query
]);

// Obtém a consulta da requisição
const { query } = req.query;
const stockList = availableStocksResponse.data.data;

// Verifica se a consulta está presente
if (!query) {
Expand All @@ -21,19 +23,20 @@ export default async (req, res) => {
const queryUpperCase = query.toUpperCase();

// Cria um índice de ações para otimizar a filtragem
const stockIndex = stockList.reduce((index, stock) => {
index[stock.ticker] = true;
return index;
}, {});
const stockIndex = {};
for (const stock of stockList) {
stockIndex[stock.ticker] = true;
}

// Filtra as ações com base na consulta e no índice
const filteredStocks = stockList.filter(stock => (stock.ticker.includes(queryUpperCase) || stock.name.toUpperCase().includes(queryUpperCase)) && stockIndex[stock.ticker]);
const filteredStocks = stockList.filter(stock =>
(stock.ticker.includes(queryUpperCase) || stock.name.toUpperCase().includes(queryUpperCase)) && stockIndex[stock.ticker]
);

// Responde com as ações filtradas
res.status(200).json({ data: filteredStocks });
} catch (error) {
// Trata erros durante a execução da função

console.error('Error searching stocks:', error);

// Verifica o tipo de erro e responde adequadamente
Expand All @@ -45,4 +48,4 @@ export default async (req, res) => {
res.status(500).json({ error: 'An unexpected error occurred. Please try again.' });
}
}
};
};
14 changes: 8 additions & 6 deletions pages/api/quote/search.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@ export default async (req, res) => {
// Define o cabeçalho de controle de cache
res.setHeader('Cache-Control', 'max-age=3600');

// Faz uma solicitação para obter todos os dados disponíveis
const { data: allData } = await axios.get(apiUrl);
// Faz solicitações em paralelo para obter todos os dados disponíveis e a consulta da requisição
const [allDataResponse, { query }] = await Promise.all([
axios.get(apiUrl),
req.query
]);

// Obtém a consulta da requisição
const { query } = req.query;
const allData = allDataResponse.data.data;

// Verifica se a consulta está presente
if (!query) {
Expand All @@ -24,8 +26,8 @@ export default async (req, res) => {

// Filtra os dados com base na consulta
const filteredData = {
stocks: allData.data.stocks.filter(stock => stock.stock.includes(queryUpperCase) || stock.name.includes(query)),
indexes: allData.data.indexes.filter(index => index.stock.includes(queryUpperCase) || index.name.includes(query)),
stocks: allData.stocks.filter(stock => stock.stock.includes(queryUpperCase) || stock.name.includes(query)),
indexes: allData.indexes.filter(index => index.stock.includes(queryUpperCase) || index.name.includes(query)),
};

// Responde com os dados filtrados
Expand Down

0 comments on commit 4fbcf5c

Please sign in to comment.