This commit is contained in:
Luiz H. R. Silva 2024-06-11 08:39:43 -03:00
parent 1ae6fb6d51
commit 2c3f2b5a66
6 changed files with 113 additions and 58 deletions

View file

@ -1,34 +1,40 @@
export declare enum codigosResposta {
sucesso = 200,
erroConhecido = 400,
erroPermissao = 401,
erroDesconhecido = 500
}
export type tipoRespostaSucesso<T> = {
cod: 200;
cod: codigosResposta.sucesso;
valor: T;
mensagem: undefined;
eErro: false;
eCerto: true;
detalhe?: undefined;
detalhes?: string[];
};
export type tipoRespostaErro = {
cod: 400 | 401 | 500;
cod: codigosResposta.erroConhecido | codigosResposta.erroDesconhecido | codigosResposta.erroPermissao;
valor: undefined;
mensagem: string;
eErro: true;
eCerto: false;
detalhe?: string[];
detalhes?: string[];
};
export type tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro;
export declare const gerarRespostas: <T>(registrarErroInterno: (erro: T) => Partial<tipoRespostaErro>) => {
valor: <T_1>(valor: T_1) => tipoRespostaSucesso<T_1>;
valorTrue: () => tipoRespostaSucesso<true>;
erro: (mensagem: string) => tipoRespostaErro;
erroPermissao: (mensagem?: string) => tipoRespostaErro;
valor: <T_1>(valor: T_1, detalhes?: string[]) => tipoRespostaSucesso<T_1>;
valorTrue: (detalhes?: string[]) => tipoRespostaSucesso<true>;
erro: (mensagem: string, detalhes?: string[]) => tipoRespostaErro;
erroPermissao: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
erroInterno: (parametros: T, mensagem?: string) => tipoRespostaErro;
};
/**
* Uso de respostas em comuns
*/
export declare const respostaComuns: {
valor: <T>(valor: T) => tipoRespostaSucesso<T>;
valorTrue: () => tipoRespostaSucesso<true>;
erro: (mensagem: string) => tipoRespostaErro;
erroPermissao: (mensagem?: string) => tipoRespostaErro;
valor: <T>(valor: T, detalhes?: string[]) => tipoRespostaSucesso<T>;
valorTrue: (detalhes?: string[]) => tipoRespostaSucesso<true>;
erro: (mensagem: string, detalhes?: string[]) => tipoRespostaErro;
erroPermissao: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
erroInterno: (parametros: unknown, mensagem?: string) => tipoRespostaErro;
};

View file

@ -1,53 +1,64 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.respostaComuns = exports.gerarRespostas = void 0;
exports.respostaComuns = exports.gerarRespostas = exports.codigosResposta = void 0;
var codigosResposta;
(function (codigosResposta) {
codigosResposta[codigosResposta["sucesso"] = 200] = "sucesso";
codigosResposta[codigosResposta["erroConhecido"] = 400] = "erroConhecido";
codigosResposta[codigosResposta["erroPermissao"] = 401] = "erroPermissao";
codigosResposta[codigosResposta["erroDesconhecido"] = 500] = "erroDesconhecido";
})(codigosResposta = exports.codigosResposta || (exports.codigosResposta = {}));
const gerarRespostas = (registrarErroInterno) => {
/**
* Gera uma resposta de sucesso
*/
const valor = (valor) => {
const valor = (valor, detalhes) => {
return {
cod: 200,
cod: codigosResposta.sucesso,
valor,
mensagem: undefined,
eErro: false,
eCerto: true,
detalhes,
};
};
/**
* Gera uma resposta de sucesso com valor true
*/
const valorTrue = () => {
const valorTrue = (detalhes) => {
return {
cod: 200,
cod: codigosResposta.sucesso,
valor: true,
mensagem: undefined,
eErro: false,
eCerto: true,
detalhes,
};
};
/**
* Gera uma resposta de erro conhecido
*/
const erro = (mensagem) => {
const erro = (mensagem, detalhes) => {
return {
cod: 400,
cod: codigosResposta.erroConhecido,
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) => {
const erroPermissao = (mensagem, detalhes) => {
return {
cod: 401,
cod: codigosResposta.erroPermissao,
valor: undefined,
mensagem: mensagem || "Sem permissão para esse recurso.",
eErro: true,
eCerto: false,
detalhes,
};
};
/**
@ -57,7 +68,7 @@ const gerarRespostas = (registrarErroInterno) => {
const resRegistro = registrarErroInterno(parametros);
const mensagemFim = `${mensagem || "Erro interno"}`;
return {
cod: 500,
cod: codigosResposta.erroDesconhecido,
valor: undefined,
mensagem: mensagemFim,
eErro: true,