errorhandler

package
v1.0.37 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 5, 2023 License: MIT Imports: 4 Imported by: 0

README

ErrorHandler

ErrorHandler foi criado para padronizar e possibilitar a tradução de mensagens de erro. A ideia principal é que seja utilizado em retornos de APIs feitas em GO, enviando uma mensagem clara tanto ao usuário como ao administrador do sistema.

Exemplo de resposta
{
	"error": {
		"message": "",
		"error_user_msg": "Facebook didn't send us your account email address. This could be because the email was missing, invalid, or unconfirmed. Please review your Facebook email address or using another methods available to register"
	}
}

Como usar

1 - Crie uma var em global level scope (main.go) carregue o contexto e suas mensagens para tradução utilizando errorhandler.LoadLanguages()

Método 1:

Tenho uma mensagem para ser traduzida para o usuário final

1 - Tenha uma instancia de ErrorMessage em seus métodos. Você pode optar por:

  • Instância-la utilizando NewErrorMessage()
  • Contruí-lo utilizando o BuildErrorMessage

2 - Utilize a var global instanciada anteriormente para construir o objeto ErrorObject 3 - Crie a resposta chamando o método CreateErrorResponseV2

Método 2:

Só quero transmitir um erro! Sem mensagem traduzida para o usuário

1 - Tenha uma instancia de ErrorMessage em seus métodos. Você pode optar por:

  • Instância-la utilizando NewErrorMessage(<statusCode>)
  • Contruí-lo utilizando o BuildErrorMessage

2 - Utilize a var global para construir o objeto ErrorObject 3 - Crie a resposta chamando o método CreateErrorResponseV2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Detail added in v1.0.30

type Detail struct {
	Message      string `json:"message"`
	ErrorUserMsg string `json:"error_user_msg"`
}

Detail armazena os valores detalhados para resposta ao usuário

type ErrorMessage added in v1.0.30

type ErrorMessage struct {
	Err          error
	StatusCode   int
	MessageKey   string
	Replacements []string
}

ErrorMessage estrutur responsavel por armazenar informacoes de erro que serao enviadas ao usuario

func BuildErrorMessage added in v1.0.30

func BuildErrorMessage(err error, statusCode int, messageKey string, replacements []string) *ErrorMessage

BuildErrorMessage constroi um objeto ErrorMessage de forma completa

func NewErrorMessage added in v1.0.30

func NewErrorMessage(defaultStatusCode int) *ErrorMessage

NewErrorMessage instancia um novo objeto ErrorMessage setando o statusCode utilizado na resposta do servidor

func (*ErrorMessage) IsEmpty added in v1.0.30

func (e *ErrorMessage) IsEmpty() bool

IsEmpty valida se ErrorMessage é vazio

type ErrorObject

type ErrorObject struct {
	ErrorMessage *ErrorMessage
	Lang         Lang
}

ErrorObject abstração responsável por armazenar as informações de erro

func LoadLanguages

func LoadLanguages(messages map[string]map[string]string, context string) ErrorObject

LoadLanguages função principal necessária para carregar as mensagens de erro que serão utilizadas

func (*ErrorObject) BuildErrorMessage

func (e *ErrorObject) BuildErrorMessage(idiom, messageKey string, replacements []string) *ErrorObject

BuildErrorMessage responsável por atribuir os valores que serão usados para criar uma mensagem de erro internacionalizada

func (*ErrorObject) BuildMessage added in v1.0.30

func (e *ErrorObject) BuildMessage(idiom string, errorMessage *ErrorMessage) *ErrorObject

BuildMessage constroi o objeto ErrorObject utilizado pela aplicacao para montar a estrutura padrao de resposta

func (*ErrorObject) CreateErrorResponse

func (e *ErrorObject) CreateErrorResponse(w http.ResponseWriter, err error, statusCode int)

CreateErrorResponse constrói a estrutura padrão de mensagem de erro e escreve a resposta no response

func (*ErrorObject) CreateErrorResponseV2 added in v1.0.30

func (e *ErrorObject) CreateErrorResponseV2(w http.ResponseWriter)

CreateErrorResponseV2 constrói a estrutura padrão de mensagem de erro utilizando os valores setados anteriormente e escreve a resposta no response Necessário o objeto ErrorMessage exista e tenha sido construido utilizando o metodo ErrorObject.BuildMessage

func (*ErrorObject) GetError added in v1.0.30

func (e *ErrorObject) GetError() string

GetError retorna a mensagem de erro no nível de desenvolvimento, ou seja a info de forma técnica

func (*ErrorObject) GetErrorMessage

func (e *ErrorObject) GetErrorMessage() *ErrorMessage

GetErrorMessage retorna uma instancia de ErrorMessage caso nao exista

func (*ErrorObject) GetStatusCode added in v1.0.30

func (e *ErrorObject) GetStatusCode() int

GetStatusCode retorna o statuscode caso nao exista retorna status 500

func (*ErrorObject) SetError

func (e *ErrorObject) SetError(err error, statusCode int) *ErrorObject

SetError função genérica para ser utilizada caso NÃO seja necessária mensagem customizada traduzida

type ErrorResponse

type ErrorResponse struct {
	Error Detail `json:"error"`
}

ErrorResponse estrutura padrao de respoosta de erro em APIS

func (*ErrorResponse) BuildDetail added in v1.0.30

func (e *ErrorResponse) BuildDetail(message, messageForUser string)

BuildDetail constroi o objeto Detail

type Lang

type Lang struct {
	Idiom        string
	Context      string
	MessagesLang map[string]map[string]string
}

Lang estrutura responsável por armazenar o contexto e o array de mensagens para tradução

func (*Lang) IsEmpty added in v1.0.30

func (l *Lang) IsEmpty() bool

IsEmpty verifica se foram carregadas as lang necessárias

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL