diff --git a/.env b/.env
index 926a3f0..7d5fbe3 100644
--- a/.env
+++ b/.env
@@ -4,6 +4,8 @@ API_KEY="6d717e972ba17c7cf0ab731801b8bbeac2f281e5"
COOKIE="PHPSESSID=6d717e972ba17c7cf0ab731801b8bbeac2f281e5"
PORT="3000"
+API_VIABILIDADE_URL="https://api.sothis.com.br/api/viabilidade"
+
DATABASE_HOST = 'crash.sothistelecom.com'
DATABASE_PORT = '3306'
DATABASE_NAME = 'viabilidade_data'
diff --git a/public/main.js b/public/main.js
index b439c8a..a963fb5 100644
--- a/public/main.js
+++ b/public/main.js
@@ -7,35 +7,55 @@ document.getElementById('btnConsultaCep').addEventListener('click', async () =>
const naoDedicado = document.getElementById('link-nao-dedicado');
endereco.innerText = 'Consultando...';
try {
- const resp = await fetch(`/consulta-cep?cep=${encodeURIComponent(cep)}&numero=${encodeURIComponent(numero)}`);
+ const resp = await fetch(`/viabilidade?cep=${encodeURIComponent(cep)}&numero=${encodeURIComponent(numero)}`);
const data = await resp.json();
- if (data && data.endereco !== undefined) {
+ if (data && data.logradouro !== undefined) {
// colocar o card-results__container (resultados) com display block
- endereco.innerHTML = `Endereço: ${data.endereco}.`;
+ endereco.innerHTML = `Endereço: ${data.logradouro} ${data.numero} ${data.bairro} ${data.cidade} ${data.estado} ${data.cep} .`;
resultados.style.display = 'block';
- // insere nos spans link-dedicado e link-nao-dedicado os textos de viabilidade e se for viavel adicionar classe "viavel" e se for inviavel adicionar classe "inviavel"
- dedicado.innerText = data.dedicado;
- naoDedicado.innerText = data.naoDedicado;
- if (data.dedicado === 'Viável') {
- // precisa remover a classe inviavel se existir
+ if (data.dedicado) {
+ dedicado.innerText = "Viável";
dedicado.classList.remove('inviavel');
dedicado.classList.add('viavel');
- } else if (data.dedicado === 'Não viável') {
- // precisa remover a classe viavel se existir
+ } else {
+ dedicado.innerText = "Não viável";
dedicado.classList.remove('viavel');
dedicado.classList.add('inviavel');
- }
-
- if (data.naoDedicado === 'Viável') {
- // precisa remover a classe inviavel se existir
+ }
+
+ if (data.naoDedicado) {
+ naoDedicado.innerText = "Viável";
naoDedicado.classList.remove('inviavel');
naoDedicado.classList.add('viavel');
- } else if (data.naoDedicado === 'Não viável') {
- // precisa remover a classe viavel se existir
+ } else {
+ naoDedicado.innerText = "Não viável";
naoDedicado.classList.remove('viavel');
naoDedicado.classList.add('inviavel');
}
+
+ // // insere nos spans link-dedicado e link-nao-dedicado os textos de viabilidade e se for viavel adicionar classe "viavel" e se for inviavel adicionar classe "inviavel"
+ // dedicado.innerText = data.dedicado;
+ // naoDedicado.innerText = data.naoDedicado;
+ // if (data.dedicado === 'Viável') {
+ // // precisa remover a classe inviavel se existir
+ // dedicado.classList.remove('inviavel');
+ // dedicado.classList.add('viavel');
+ // } else if (data.dedicado === 'Não viável') {
+ // // precisa remover a classe viavel se existir
+ // dedicado.classList.remove('viavel');
+ // dedicado.classList.add('inviavel');
+ // }
+
+ // if (data.naoDedicado === 'Viável') {
+ // // precisa remover a classe inviavel se existir
+ // naoDedicado.classList.remove('inviavel');
+ // naoDedicado.classList.add('viavel');
+ // } else if (data.naoDedicado === 'Não viável') {
+ // // precisa remover a classe viavel se existir
+ // naoDedicado.classList.remove('viavel');
+ // naoDedicado.classList.add('inviavel');
+ // }
} else if (data.error) {
endereco.innerText = 'Erro: ' + data.error;
} else {
diff --git a/src/app.js b/src/app.js
index 12c4b4d..06a8dc3 100644
--- a/src/app.js
+++ b/src/app.js
@@ -1,4 +1,5 @@
const dotenv = require("dotenv");
+const path = require("path");
dotenv.config();
@@ -10,7 +11,8 @@ function createApp() {
const app = express();
app.use(express.json());
- app.use(router);
+ app.use(express.static(path.join(__dirname, "../public")));
+ app.use("/", router);
app.use(cors());
return app;
diff --git a/src/config/apiConfig.js b/src/config/apiConfig.js
new file mode 100644
index 0000000..5441cb0
--- /dev/null
+++ b/src/config/apiConfig.js
@@ -0,0 +1,10 @@
+const dotenv = require("dotenv");
+const path = require("path");
+
+dotenv.config({ path: path.join(__dirname, '../../.env') }); // Caminho para .env na raiz
+
+const API_URL = process.env.API_VIABILIDADE_URL;
+
+module.exports = {
+ API_URL
+};
\ No newline at end of file
diff --git a/src/controllers/viabilidadeController.js b/src/controllers/viabilidadeController.js
new file mode 100644
index 0000000..b708e90
--- /dev/null
+++ b/src/controllers/viabilidadeController.js
@@ -0,0 +1,20 @@
+const viabilidadeService = require("../services/viabilidadeService");
+
+async function getViabilidade(req, res) {
+ const { cep, numero } = req.query;
+
+ if (!cep || !numero) {
+ return res.status(400).json({ error: "CEP e número são obrigatórios." });
+ }
+
+ const data = await viabilidadeService.getViabilidadeData(cep, numero);
+ console.log(data);
+
+ if (data) {
+ res.json(data);
+ } else {
+ res.status(500).json({ error: "Falha ao obter dados de viabilidade." });
+ }
+}
+
+module.exports = { getViabilidade };
\ No newline at end of file
diff --git a/src/routes.js b/src/routes.js
index 77d2095..adcbf9b 100644
--- a/src/routes.js
+++ b/src/routes.js
@@ -1,11 +1,14 @@
const express = require("express");
-const consultaCepController = require("./controllers/consultaCepController");
+const viabilidadeController = require("./controllers/viabilidadeController");
const path = require("path");
const { Router } = express;
const router = Router();
-router.use(express.static(path.join(__dirname, "..", "public")));
-router.get('/consulta-cep', consultaCepController.getConsultaCep);
+router.get("/viabilidade", viabilidadeController.getViabilidade);
+
+router.get("/", (req, res) => {
+ res.sendFile(path.join(__dirname, "../public/index.html"));
+});
module.exports = router;
diff --git a/src/server.js b/src/server.js
index e31c8c5..bd33334 100644
--- a/src/server.js
+++ b/src/server.js
@@ -5,5 +5,5 @@ const app = createApp();
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
- console.log(`Server running on http://localhost:${PORT}`)
+ console.log(`Server running on ${PORT}`)
});
diff --git a/src/services/distanceService.js b/src/services/distanceService.js
index 44123f1..18a8592 100644
--- a/src/services/distanceService.js
+++ b/src/services/distanceService.js
@@ -42,6 +42,7 @@ async function getMinDistance(lat, lon) {
const data = resp.data || {};
const registros = data.registros || [];
+ console.log(data.registros[0]);
console.info(
`[INFO] API resp. raio=${raio} lat=${lat} lon=${lon} registros=${registros.length}`
);
diff --git a/src/services/viabilidadeService.js b/src/services/viabilidadeService.js
new file mode 100644
index 0000000..664148c
--- /dev/null
+++ b/src/services/viabilidadeService.js
@@ -0,0 +1,19 @@
+const axios = require('axios');
+const apiConfig = require('../config/apiConfig');
+
+async function getViabilidadeData(cep, numero) {
+ try {
+ const data = {
+ cep,
+ numero
+ };
+ const url = apiConfig.API_URL;
+ const response = await axios.post(url, data);
+ return response.data;
+ } catch (error) {
+ console.error(`[ERROR] Falha ao obter dados de viabilidade: ${error.message}`);
+ return null;
+ }
+}
+
+module.exports = { getViabilidadeData };
\ No newline at end of file