isolamento de pacote

This commit is contained in:
Luiz Silva 2025-07-06 18:35:12 -03:00
commit f34b66cbe4
96 changed files with 2285 additions and 0 deletions

View file

@ -0,0 +1,32 @@
import { respostaComuns, type tipoResposta } from "p-respostas"
type tipoPostCodigoContaSite = { site: string }
import node_fetch from "cross-fetch"
export const codigoContaSite = async ({
url_api_autenticacao,
post,
}: {
url_api_autenticacao: string
post: tipoPostCodigoContaSite
}): Promise<tipoResposta<string>> => {
const url = `${url_api_autenticacao}/api/codigo_prefeitura_site`
try {
const resp = await node_fetch(url, {
method: "POST",
body: JSON.stringify(post),
headers: { "Content-Type": "application/json" },
})
.then((r) => r.json())
.catch((e) =>
respostaComuns.erro("Erro ao enviar registros", [e.message]),
)
.then((r) => r as tipoResposta<string>)
return resp
} catch (e) {
return respostaComuns.erro(`erro ao buscar código do site: ${e}`)
}
}

View file

@ -0,0 +1,44 @@
import node_fetch from "cross-fetch"
import { respostaComuns, type tipoResposta } from "p-respostas"
import type { tipo_usuarios__listar_retorno } from "../lista-usuarios"
export type tipoUsuarioExterno = {
_nome: string
_email: string
_telefone: string
vinculo: string
inquilino: string
chave_produto: string
codigo: string
_cpf: string
}
export const usuarios_quipo = async ({
token_produto,
url_api_autenticacao,
inquilino,
}: {
url_api_autenticacao: string
token_produto: string
inquilino: string
}): Promise<tipoResposta<tipo_usuarios__listar_retorno[]>> => {
const url = `${url_api_autenticacao}/api/usuarios__listar`
if (!token_produto) return respostaComuns.erro("token_produto não informado")
const headers = {
token: token_produto,
"Content-Type": "application/json",
}
return node_fetch(url, {
method: "POST",
body: JSON.stringify({ inquilino }),
headers,
})
.then((r) => r.json())
.catch((e) =>
respostaComuns.erro(`Erro ao buscar usuários quipo governo ${e.message}`),
)
.then((r) => r as tipoResposta<tipo_usuarios__listar_retorno[]>)
}

View file

@ -0,0 +1,40 @@
import node_fetch from "cross-fetch"
import { respostaComuns, type tipoResposta } from "p-respostas"
export const usuarios_quipo_vincular = async ({
token_produto,
url_api_autenticacao,
inquilino_codigo,
vinculo,
usuario_codigo,
email,
}: {
url_api_autenticacao: string
token_produto: string
inquilino_codigo: string
vinculo: string
usuario_codigo?: string
email: string
}): Promise<tipoResposta<string>> => {
const url = `${url_api_autenticacao}/api/vinculos__criar`
if (!token_produto) return respostaComuns.erro("token_produto não informado")
const headers = {
token: token_produto,
"Content-Type": "application/json",
}
const parametros = {
vinculos: { inquilino_codigo, usuario_codigo, vinculo },
email: email,
}
return await node_fetch(url, {
headers,
body: JSON.stringify(parametros),
method: "POST",
})
.then(async (r) => await r.json())
.catch((e) =>
respostaComuns.erro(`Erro ao criar vinculo de usuario ${e.message}`),
)
}

View file

@ -0,0 +1,34 @@
import type { tipoResposta } from "p-respostas"
type tipoPostValidarTokem = { token: string }
import node_fetch from "cross-fetch"
/** faz a validação do token */
export const validarToken = async ({
url_api_autenticacao,
post,
}: {
url_api_autenticacao: string
post: tipoPostValidarTokem
}): Promise<"valido" | "erro"> => {
const url = `${url_api_autenticacao}/api/validar_token`
try {
const resposta = await node_fetch(url, {
method: "POST",
body: JSON.stringify(post),
headers: { "Content-Type": "application/json" },
})
.then((r) => r.json())
.then((r) => r as tipoResposta<any>)
.then((resposta) =>
resposta.eCerto ? ("valido" as const) : ("erro" as const),
)
.catch(() => "erro" as const)
return resposta
} catch (_e) {
return "erro"
}
}

14
src/autenticacao/index.ts Normal file
View file

@ -0,0 +1,14 @@
import { codigoContaSite } from "./_codigoContaSite"
import { type tipoUsuarioExterno, usuarios_quipo } from "./_usuarios_quipo"
import { usuarios_quipo_vincular } from "./_usuarios_quipo_vincular"
import { validarToken } from "./_validarToken"
export type { tipoUsuarioExterno }
/** todas as rotas de comunicação com autenticador partem dessa variável */
export const pAutenticacao = {
validarToken,
codigoContaSite,
usuarios_quipo,
usuarios_quipo_vincular,
}