sothis-contratacao-api/src/services/cepRestService.js

27 lines
1.2 KiB
JavaScript
Raw Normal View History

const axios = require("axios");
const getConsultaCep = async (req, res) => {
const { cep: rawCep, numero: rawNumero } = req.query;
if (!rawCep) return res.status(400).json({ error: "cep é obrigatório" });
const cep = String(rawCep).trim().replace(/\D/g, "");
if (cep.length !== 8) return res.status(400).json({ error: "cep inválido, verifique se foram digitados apenas números" });
const numero = rawNumero ? String(rawNumero).trim() : "";
try {
const cepRestUrl = 'https://api.cep.rest/';
const address = await axios.post(cepRestUrl, { cep });
if (address.data && address.data.code === 404) {
return res.status(404).json({ error: "CEP não encontrado" });
} else if (address.data && address.data.code) {
return res.status(500).json({ error: "Erro ao consultar o CEP" });
} else {
if (numero) address.data.numero = numero;
return res.json(address.data);
}
} catch (error) {
console.error("Erro ao consultar o CEP:", error);
return res.status(500).json({ error: "Erro ao consultar o CEP" });
}
};
module.exports = { getConsultaCep };