diff --git a/apps/web/src/routes/(dashboard)/licitacoes/empresas/+page.svelte b/apps/web/src/routes/(dashboard)/licitacoes/empresas/+page.svelte index 189872f..24c8b47 100644 --- a/apps/web/src/routes/(dashboard)/licitacoes/empresas/+page.svelte +++ b/apps/web/src/routes/(dashboard)/licitacoes/empresas/+page.svelte @@ -5,7 +5,6 @@ import { Building2, Phone, Mail, Plus, Users, Pencil, X } from "lucide-svelte"; import { resolve } from "$app/paths"; import { maskCNPJ, maskCEP, maskPhone, maskUF, onlyDigits } from "$lib/utils/masks"; - import "$lib/svelte-compat"; const client = useConvexClient(); const empresasQuery = useQuery(api.empresas.list, {}); @@ -76,13 +75,12 @@ let carregandoCnpj = $state(false); let erroCnpj = $state(""); - type ReceitaWsResponse = { - status?: string; - message?: string; - nome?: string; - fantasia?: string; - telefone?: string; + type BrasilApiCnpjResponse = { + razao_social?: string; + nome_fantasia?: string; email?: string; + ddd_telefone_1?: string; + telefone?: string; cep?: string; logradouro?: string; numero?: string; @@ -90,6 +88,7 @@ bairro?: string; municipio?: string; uf?: string; + message?: string; }; function handleEmpresaCnpjInput(event: Event) { @@ -105,21 +104,23 @@ carregandoCnpj = true; erroCnpj = ""; try { - const response = await fetch(`https://www.receitaws.com.br/v1/cnpj/${digits}`); - const data: ReceitaWsResponse = await response.json(); + const response = await fetch(`https://brasilapi.com.br/api/cnpj/v1/${digits}`); + const data: BrasilApiCnpjResponse = await response.json(); - if (data.status === "ERROR") { + if (!response.ok) { throw new Error(data.message || "CNPJ não encontrado."); } - if (data.nome && !empresaForm.razao_social) { - empresaForm.razao_social = data.nome; + if (data.razao_social && !empresaForm.razao_social) { + empresaForm.razao_social = data.razao_social; } - if (data.fantasia && !empresaForm.nome_fantasia) { - empresaForm.nome_fantasia = data.fantasia; + if (data.nome_fantasia && !empresaForm.nome_fantasia) { + empresaForm.nome_fantasia = data.nome_fantasia; } - if (data.telefone && !empresaForm.telefone) { - empresaForm.telefone = maskPhone(data.telefone); + + const telefoneFonte = data.ddd_telefone_1 ?? data.telefone; + if (telefoneFonte && !empresaForm.telefone) { + empresaForm.telefone = maskPhone(telefoneFonte); } if (data.email && !empresaForm.email) { empresaForm.email = data.email; @@ -463,8 +464,8 @@ - + @@ -473,6 +474,7 @@ {#each empresasQuery.data as empresa (empresa._id)} + -
Razão social / Nome fantasia CNPJRazão social / Nome fantasia Telefone E-mail Ações
{empresa.cnpj}
{empresa.razao_social} @@ -481,7 +483,6 @@ {/if}
{empresa.cnpj} {empresa.telefone} diff --git a/packages/backend/convex/_generated/api.d.ts b/packages/backend/convex/_generated/api.d.ts index ff37a33..a64020a 100644 --- a/packages/backend/convex/_generated/api.d.ts +++ b/packages/backend/convex/_generated/api.d.ts @@ -15,6 +15,7 @@ import type * as actions_smtp from "../actions/smtp.js"; import type * as actions_utils_nodeCrypto from "../actions/utils/nodeCrypto.js"; import type * as atestadosLicencas from "../atestadosLicencas.js"; import type * as ausencias from "../ausencias.js"; +import type * as autenticacao from "../autenticacao.js"; import type * as auth from "../auth.js"; import type * as auth_utils from "../auth/utils.js"; import type * as chamados from "../chamados.js"; @@ -64,6 +65,7 @@ declare const fullApi: ApiFromModules<{ "actions/utils/nodeCrypto": typeof actions_utils_nodeCrypto; atestadosLicencas: typeof atestadosLicencas; ausencias: typeof ausencias; + autenticacao: typeof autenticacao; auth: typeof auth; "auth/utils": typeof auth_utils; chamados: typeof chamados;