This commit is contained in:
Luiz H. R. Silva 2024-06-04 14:46:58 -03:00
parent e30a1a6f40
commit 3bcdbdcf90
17 changed files with 20 additions and 346 deletions

View file

@ -1,5 +1,4 @@
import { respostaComuns, type tipoResposta } from "./respostas"
import { respostaComuns, type tipoResposta } from "~respostas"
type tipoPostValidarTokem = { token: string }
type tipoPostCodigoContaSite = { site: string }

View file

@ -1,3 +1,2 @@
export * from "./tokenQuipo"
export * from "./autenticacao"
export * from "./respostas"

View file

@ -1,108 +0,0 @@
export type tipoRespostaSucesso<T> = {
cod: 200
valor: T
mensagem: undefined
eErro: false
eCerto: true
detalhe?: undefined
}
export type tipoRespostaErro = {
//400 é um erro conhecido,
//500 é um erro desconhecido, geralmente tem origem de um exception
cod: 400 | 401 | 500
valor: undefined
mensagem: string
eErro: true
eCerto: false
detalhe?: string[]
}
export type tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro
export const gerarRespostas = <T>(
registrarErroInterno: (erro: T) => Partial<tipoRespostaErro>,
) => {
/**
* Gera uma resposta de sucesso
*/
const valor = <T>(valor: T): tipoRespostaSucesso<T> => {
return {
cod: 200,
valor,
mensagem: undefined,
eErro: false,
eCerto: true,
}
}
/**
* Gera uma resposta de sucesso com valor true
*/
const valorTrue = (): tipoRespostaSucesso<true> => {
return {
cod: 200,
valor: true,
mensagem: undefined,
eErro: false,
eCerto: true,
}
}
/**
* Gera uma resposta de erro conhecido
*/
const erro = (mensagem: string): tipoRespostaErro => {
return {
cod: 400,
valor: undefined,
mensagem,
eErro: true,
eCerto: false,
}
}
/**
* Gera uma resposta de erro de permissão,será necessário fazer o login novamente
*/
const erroPermissao = (mensagem?: string): tipoRespostaErro => {
return {
cod: 401,
valor: undefined,
mensagem: mensagem || "Sem permissão para esse recurso.",
eErro: true,
eCerto: false,
}
}
/**
* Gera uma resposta de erro desconhecido, geralmente tem origem de um exception
*/
const erroInterno = (parametros: T, mensagem?: string): tipoRespostaErro => {
const resRegistro = registrarErroInterno(parametros)
const mensagemFim = `${mensagem || "Erro interno"}`
return {
cod: 500,
valor: undefined,
mensagem: mensagemFim,
eErro: true,
eCerto: false,
...resRegistro,
}
}
return {
valor,
valorTrue,
erro,
erroPermissao,
erroInterno,
}
}
/**
* Uso de respostas em comuns
*/
export const respostaComuns = gerarRespostas(() => ({}))