appkit

package module
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Jun 6, 2025 License: BSD-3-Clause Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ReadFromBodyAndUnmarshalToModelJSON added in v1.0.2

func ReadFromBodyAndUnmarshalToModelJSON(
	body io.Reader,
	model any,
) error

func StatusCodeFromError

func StatusCodeFromError(err error) int

StatusCodeFromError – извлекает HTTP-код из error. Если это не AppError, возвращает 500 (Internal Server Error) по умолчанию.

func WriteErrorJSON

func WriteErrorJSON(w http.ResponseWriter, err error)

WriteErrorJSON – удобная функция для вывода AppError (или обычной ошибки) в формате JSON.

func WriteJSON

func WriteJSON(w http.ResponseWriter, statusCode int, data interface{})

WriteJSON – универсальная функция для записи структуры в JSON с указанным статус-кодом.

Types

type AppError

type AppError struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
	Err     error  `json:"-"`
}

AppError – расширенная структура для кастомных ошибок. Помимо кода и сообщения, содержит "корневую" ошибку (Err) для детального логирования (в JSON не сериализуется).

func BadRequestError

func BadRequestError(message string) *AppError

BadRequestError – 400 Bad Request

func ForbiddenError added in v1.0.1

func ForbiddenError(message string) *AppError

ForbiddenError - 403 Forbidden

func InternalError

func InternalError(message string) *AppError

InternalError – 500 Internal Server Error

func ToHTTPCode added in v1.0.2

func ToHTTPCode(err error) *AppError

ToHTTPCode превращает доменную ошибку в вашу AppError.

func ValidationError

func ValidationError(message string) *AppError

ValidationError – 422 Unprocessable Entity

func (*AppError) Error

func (e *AppError) Error() string

Error – реализует интерфейс error, чтобы AppError можно было использовать как обычную ошибку.

type Code added in v1.0.2

type Code int

Code — бизнес-коды, понятные ядру (любая нумерация: iota, string, uint8 и т.д.).

const (
	Unknown Code = iota
	Validation
	NotFound
	Unauthorized
	NoContent
	Conflict
)

type Error added in v1.0.2

type Error struct {
	Code Code   // логический код
	Msg  string // сообщение для клиент
	Err  error  // корневая ошибка для логов/трейсинга, можно nil
}

Error — та самая «обёртка», которую будет возвращать use-case.

func New added in v1.0.2

func New(code Code, msg string) *Error

func Wrap added in v1.0.2

func Wrap(code Code, msg string, err error) *Error

func (*Error) Error added in v1.0.2

func (e *Error) Error() string

Jump to

Keyboard shortcuts

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