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> }): 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> }): 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, }