76 lines
1.8 KiB
TypeScript
76 lines
1.8 KiB
TypeScript
import type { tipoResposta } from "~comuns"
|
|
type tipoPostValidarTokem = { token: string }
|
|
type tipoPostCodigoContaSite = { site: string }
|
|
|
|
const urlAutenticacao = (ambiente: "desenvolvimento" | "producao") =>
|
|
`${
|
|
ambiente == "producao"
|
|
? "https://carro-de-boi.idz.one"
|
|
: "http://localhost:5030"
|
|
}/autenticacao`
|
|
|
|
/** faz a validação do token */
|
|
const validarToken = async ({
|
|
ambiente,
|
|
post,
|
|
buscar,
|
|
}: {
|
|
ambiente: "desenvolvimento" | "producao"
|
|
post: tipoPostValidarTokem
|
|
/** função que conecta com a API */
|
|
buscar: (
|
|
url: string,
|
|
post: tipoPostValidarTokem,
|
|
) => Promise<tipoResposta<any>>
|
|
}): Promise<"valido" | "erro"> => {
|
|
const url = `${urlAutenticacao(ambiente)}/autenticacao/api/validar_token`
|
|
|
|
try {
|
|
const resposta = await buscar(url, post)
|
|
.then((resposta) =>
|
|
resposta.eCerto ? ("valido" as const) : ("erro" as const),
|
|
)
|
|
.catch((e) => "erro" as const)
|
|
|
|
return resposta
|
|
} catch (e) {
|
|
return "erro"
|
|
}
|
|
}
|
|
|
|
const codigoPrefeituraSite = async ({
|
|
ambiente,
|
|
post,
|
|
buscar,
|
|
}: {
|
|
ambiente: "desenvolvimento" | "producao"
|
|
post: tipoPostCodigoContaSite
|
|
/** função que conecta com a API */
|
|
buscar: (
|
|
url: string,
|
|
post: tipoPostCodigoContaSite,
|
|
) => Promise<tipoResposta<string>>
|
|
}): Promise<"valido" | "erro"> => {
|
|
const url = `${urlAutenticacao(
|
|
ambiente,
|
|
)}/autenticacao/api/codigo_prefeitura_site`
|
|
|
|
try {
|
|
const resposta = await buscar(url, post)
|
|
.then((resposta) =>
|
|
resposta.eCerto ? ("valido" as const) : ("erro" as const),
|
|
)
|
|
.catch((e) => "erro" as const)
|
|
|
|
return resposta
|
|
} catch (e) {
|
|
return "erro"
|
|
}
|
|
}
|
|
|
|
/** todas as rotas de comunicação com autenticador partem dessa variável */
|
|
export const pAutenticacao = {
|
|
validarToken,
|
|
urlAutenticacao,
|
|
codigoPrefeituraSite,
|
|
}
|