build
This commit is contained in:
parent
0482d3c102
commit
8ec9d76b6f
289 changed files with 5 additions and 23898 deletions
|
|
@ -1,4 +1,3 @@
|
|||
export * from "./respostas"
|
||||
export * from "./autorizacoes"
|
||||
export * from "./constantes"
|
||||
export * from "./consulta"
|
||||
|
|
|
|||
111
src/resposta.ts
111
src/resposta.ts
|
|
@ -1,111 +0,0 @@
|
|||
import { esperar } from "./variaveisComuns"
|
||||
|
||||
export const codigosErros = {
|
||||
400: "Erro de requisição",
|
||||
403: "Não autenticado",
|
||||
500: "Erro interno",
|
||||
504: "Tempo de resposta excedido",
|
||||
}
|
||||
|
||||
export interface tipoRespostaSucesso<T> {
|
||||
codigo: 200
|
||||
eErro: false
|
||||
valor: T
|
||||
erro: undefined
|
||||
detalhes?: any[]
|
||||
}
|
||||
|
||||
export interface tipoRespostaErro {
|
||||
codigo: keyof typeof codigosErros
|
||||
eErro: true
|
||||
erro: string
|
||||
valor: undefined
|
||||
detalhes?: any[]
|
||||
}
|
||||
|
||||
export type tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro
|
||||
|
||||
export class Resposta<opcoesErroInterno extends any[]> {
|
||||
funcaoErroInterno: (...opcoes: opcoesErroInterno) => void | Promise<void>
|
||||
detalhesErroInterno: boolean
|
||||
|
||||
constructor(
|
||||
funcaoErroInterno: (...arg1: opcoesErroInterno) => void | Promise<void>,
|
||||
opcoes?: {
|
||||
detalhesErroInterno?: boolean
|
||||
},
|
||||
) {
|
||||
this.funcaoErroInterno = funcaoErroInterno
|
||||
this.detalhesErroInterno = opcoes?.detalhesErroInterno || false
|
||||
}
|
||||
|
||||
addResultado<T>(resultado: T): tipoResposta<T> {
|
||||
return {
|
||||
codigo: 200,
|
||||
eErro: false,
|
||||
valor: resultado,
|
||||
erro: undefined,
|
||||
}
|
||||
}
|
||||
|
||||
addSucesso(resultado: string): tipoResposta<string> {
|
||||
return this.addResultado<string>(resultado)
|
||||
}
|
||||
|
||||
addTrue(): tipoResposta<true> {
|
||||
return this.addResultado<true>(true)
|
||||
}
|
||||
|
||||
addErro(erro: string, codigo?: keyof typeof codigosErros): tipoRespostaErro {
|
||||
return {
|
||||
codigo: codigo || 400,
|
||||
eErro: true,
|
||||
erro: erro,
|
||||
valor: undefined,
|
||||
}
|
||||
}
|
||||
|
||||
addErroEspera(erro?: string): tipoRespostaErro {
|
||||
return {
|
||||
codigo: 504,
|
||||
eErro: true,
|
||||
erro: erro || codigosErros[504],
|
||||
valor: undefined,
|
||||
}
|
||||
}
|
||||
|
||||
addErroInterno(...opcoes: opcoesErroInterno): tipoRespostaErro {
|
||||
//comunica o suporte sobre o erro
|
||||
this.funcaoErroInterno(...opcoes)
|
||||
return {
|
||||
codigo: 500,
|
||||
eErro: true,
|
||||
erro: "Erro interno: Contate o suporte técnico.",
|
||||
valor: undefined,
|
||||
detalhes: this.detalhesErroInterno ? opcoes : undefined,
|
||||
}
|
||||
}
|
||||
|
||||
async addPromise<T>(
|
||||
promise: () => Promise<T> | T,
|
||||
limiteEspera?: number,
|
||||
): Promise<tipoResposta<T>> {
|
||||
try {
|
||||
const resultado = await Promise.race([
|
||||
Promise.resolve(promise())
|
||||
.then((re) => this.addResultado(re))
|
||||
.catch((er) => this.addErro(er.message || er)),
|
||||
...(limiteEspera
|
||||
? [esperar(limiteEspera).then(() => this.addErroEspera())]
|
||||
: []),
|
||||
])
|
||||
return resultado
|
||||
} catch (error) {
|
||||
return this.addErro("Erro na resolução da Promessa.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const respostaCM = new Resposta(() => {
|
||||
//
|
||||
})
|
||||
113
src/respostas.ts
113
src/respostas.ts
|
|
@ -1,113 +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 | 403 | 500
|
||||
valor: undefined
|
||||
mensagem: string
|
||||
eErro: true
|
||||
eCerto: false
|
||||
detalhes?: 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, detalhes?: string[]): tipoRespostaErro => {
|
||||
return {
|
||||
cod: 400,
|
||||
valor: undefined,
|
||||
mensagem,
|
||||
eErro: true,
|
||||
eCerto: false,
|
||||
detalhes,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gera uma resposta de erro de permissão,será necessário fazer o login novamente
|
||||
*/
|
||||
const erroPermissao = (
|
||||
mensagem?: string,
|
||||
detalhes?: string[],
|
||||
): tipoRespostaErro => {
|
||||
return {
|
||||
cod: 403,
|
||||
valor: undefined,
|
||||
mensagem: mensagem || "Sem permissão para esse recurso.",
|
||||
eErro: true,
|
||||
eCerto: false,
|
||||
detalhes,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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(() => ({}))
|
||||
Loading…
Add table
Add a link
Reference in a new issue