mrparser

package
v0.28.4 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrHttpRequestFileSizeMin - invalid file size - min.
	ErrHttpRequestFileSizeMin = mrerr.NewProto(
		"errHttpRequestFileSizeMin", mrerr.ErrorKindUser, "invalid file size, min size = {{ .value }}b")

	// ErrHttpRequestFileSizeMax - invalid file size - max.
	ErrHttpRequestFileSizeMax = mrerr.NewProto(
		"errHttpRequestFileSizeMax", mrerr.ErrorKindUser, "invalid file size, max size = {{ .value }}b")

	// ErrHttpRequestFileExtension - invalid file extension.
	ErrHttpRequestFileExtension = mrerr.NewProto(
		"errHttpRequestFileExtension", mrerr.ErrorKindUser, "invalid file extension: {{ .value }}")

	// ErrHttpRequestFileTotalSizeMax - invalid file total size - max.
	ErrHttpRequestFileTotalSizeMax = mrerr.NewProto(
		"errHttpRequestFileTotalSizeMax", mrerr.ErrorKindUser, "invalid file total size, max total size = {{ .value }}b")

	// ErrHttpRequestFileContentType - the content type does not match the detected type.
	ErrHttpRequestFileContentType = mrerr.NewProto(
		"errHttpRequestFileContentType", mrerr.ErrorKindUser, "the content type '{{ .value }}' does not match the detected type")

	// ErrHttpRequestFileUnsupportedType - unsupported file type.
	ErrHttpRequestFileUnsupportedType = mrerr.NewProto(
		"errHttpRequestFileUnsupportedType", mrerr.ErrorKindUser, "unsupported file type '{{ .value }}'")

	// ErrHttpRequestImageWidthMax - invalid image width - max.
	ErrHttpRequestImageWidthMax = mrerr.NewProto(
		"errHttpRequestImageWidthMax", mrerr.ErrorKindUser, "invalid image width, max size = {{ .value }}px")

	// ErrHttpRequestImageHeightMax - invalid image height - max.
	ErrHttpRequestImageHeightMax = mrerr.NewProto(
		"errHttpRequestImageHeightMax", mrerr.ErrorKindUser, "invalid image height, max size = {{ .value }}px")
)

Functions

func WrapFileError added in v0.12.0

func WrapFileError(err error, name string) error

WrapFileError - оборачивает ошибки связанные с парсингом файла.

func WrapImageError added in v0.12.0

func WrapImageError(err error, name string) error

WrapImageError - оборачивает ошибки связанные с парсингом изображения.

Types

type Bool added in v0.12.0

type Bool struct{}

Bool - парсер bool значений.

func NewBool added in v0.12.0

func NewBool() *Bool

NewBool - создаёт объект Bool.

func (*Bool) FilterNullableBool added in v0.12.0

func (p *Bool) FilterNullableBool(r *http.Request, key string) *bool

FilterNullableBool - возвращает bool значение поступившее из внешнего запроса. Если ключ key не найден или возникнет ошибка, то возвращается nil значение.

type DateTime added in v0.12.0

type DateTime struct{}

DateTime - парсер даты и времени.

func NewDateTime added in v0.12.0

func NewDateTime() *DateTime

NewDateTime - создаёт объект DateTime.

func (*DateTime) FilterDateTime added in v0.12.0

func (p *DateTime) FilterDateTime(r *http.Request, key string) time.Time

FilterDateTime - возвращает дата и время поступившие из внешнего запроса. Если ключ key не найден или возникнет ошибка, то возвращается nil значение.

type File added in v0.12.0

type File struct {
	// contains filtered or unexported fields
}

File - парсер файлов.

func NewFile added in v0.12.0

func NewFile(logger logger, opts ...FileOption) *File

NewFile - создаёт объект File.

func (*File) FormFile added in v0.12.0

func (p *File) FormFile(r *http.Request, key string) (mrtype.File, error)

FormFile - возвращает информацию о файле со ссылкой для чтения файла из MultipartForm. WARNING: you don't forget to call result.Body.Close().

func (*File) FormFileContent added in v0.12.0

func (p *File) FormFileContent(r *http.Request, key string) (mrtype.FileContent, error)

FormFileContent - возвращает информацию о файле и сам файл из MultipartForm. WARNING: only for short files.

func (*File) FormFiles added in v0.14.0

func (p *File) FormFiles(r *http.Request, key string) ([]mrtype.FileHeader, error)

FormFiles - возвращает массив заголовков на файлы из MultipartForm.

type FileOption added in v0.26.0

type FileOption func(f *File)

FileOption - настройка объекта File.

func WithFileAllowedMimeTypes added in v0.26.0

func WithFileAllowedMimeTypes(values []mrlib.MimeType) FileOption

WithFileAllowedMimeTypes - устанавливает опцию с разрешенными типами файлов.

func WithFileCheckRequestContentType added in v0.26.0

func WithFileCheckRequestContentType(value bool) FileOption

WithFileCheckRequestContentType - устанавливает опцию проверки заголовка ContentType в запросе.

func WithFileMaxFiles added in v0.26.0

func WithFileMaxFiles(value uint32) FileOption

WithFileMaxFiles - устанавливает опцию maxFiles для File.

func WithFileMaxSize added in v0.26.0

func WithFileMaxSize(value uint64) FileOption

WithFileMaxSize - устанавливает опцию maxSize для File (bytes).

func WithFileMinSize added in v0.26.0

func WithFileMinSize(value uint64) FileOption

WithFileMinSize - устанавливает опцию minSize для File (bytes).

type Float64 added in v0.20.3

type Float64 struct{}

Float64 - парсер числа с плавающей запятой.

func NewFloat64 added in v0.20.3

func NewFloat64() *Float64

NewFloat64 - создаёт объект Float64.

func (*Float64) FilterFloat64 added in v0.20.3

func (p *Float64) FilterFloat64(r *http.Request, key string) float64

FilterFloat64 - возвращает число с плавающей запятой поступившее из внешнего запроса. Если ключ key не найден или возникнет ошибка, то возвращается нулевое значение.

func (*Float64) FilterRangeFloat64 added in v0.20.3

func (p *Float64) FilterRangeFloat64(r *http.Request, key string) mrtype.RangeFloat64

FilterRangeFloat64 - возвращает интервал состоящий из двух чисел с плавающей запятой поступивший из внешнего запроса. Если ключ key не найден или возникнет ошибка, то возвращается нулевой интервал.

type Image added in v0.12.0

type Image struct {
	// contains filtered or unexported fields
}

Image - парсер изображений.

func NewImage added in v0.12.0

func NewImage(logger mrlog.Logger, opts ...ImageOption) *Image

NewImage - создаёт объект Image.

func (*Image) FormImage added in v0.12.0

func (p *Image) FormImage(r *http.Request, key string) (mrtype.Image, error)

FormImage - возвращает информацию об изображении со ссылкой для чтения файла изображения из MultipartForm. WARNING: you don't forget to call result.Body.Close().

func (*Image) FormImageContent added in v0.12.0

func (p *Image) FormImageContent(r *http.Request, key string) (mrtype.ImageContent, error)

FormImageContent - возвращает информацию об изображении и сам файл изображения из MultipartForm. WARNING: only for short files.

func (*Image) FormImages added in v0.14.0

func (p *Image) FormImages(r *http.Request, key string) ([]mrtype.ImageHeader, error)

FormImages - возвращает массив заголовков на файлы изображений из MultipartForm.

type ImageOption added in v0.26.0

type ImageOption func(im *Image)

ImageOption - настройка объекта Image.

func WithImageCheckBody added in v0.26.0

func WithImageCheckBody(value bool) ImageOption

WithImageCheckBody - устанавливает опцию checkBody для Image.

func WithImageFileOptions added in v0.26.0

func WithImageFileOptions(opts ...FileOption) ImageOption

WithImageFileOptions - устанавливает опции File для Image.

func WithImageMaxHeight added in v0.26.0

func WithImageMaxHeight(value uint64) ImageOption

WithImageMaxHeight - устанавливает опцию maxHeight для Image (pixels).

func WithImageMaxWidth added in v0.26.0

func WithImageMaxWidth(value uint64) ImageOption

WithImageMaxWidth - устанавливает опцию maxWidth для Image (pixels).

type Int64 added in v0.12.0

type Int64 struct {
	// contains filtered or unexported fields
}

Int64 - парсер int числа.

func NewInt64 added in v0.12.0

func NewInt64(pathFunc mrserver.RequestParserParamFunc) *Int64

NewInt64 - создаёт объект Int64.

func (*Int64) FilterInt64 added in v0.12.0

func (p *Int64) FilterInt64(r *http.Request, key string) int64

FilterInt64 - возвращает int64 число поступившее из внешнего запроса. Если ключ key не найден или возникнет ошибка, то возвращается нулевое значение.

func (*Int64) FilterInt64List added in v0.12.0

func (p *Int64) FilterInt64List(r *http.Request, key string) []int64

FilterInt64List - возвращает массив int64 чисел поступивший из внешнего запроса. Если ключ key не найден или возникнет ошибка, то возвращается пустой массив.

func (*Int64) FilterRangeInt64 added in v0.12.0

func (p *Int64) FilterRangeInt64(r *http.Request, key string) mrtype.RangeInt64

FilterRangeInt64 - возвращает интервал состоящий из двух int64 чисел поступивший из внешнего запроса. Если ключ key не найден или возникнет ошибка, то возвращается нулевой интервал.

type ItemStatus

type ItemStatus struct {
	// contains filtered or unexported fields
}

ItemStatus - парсер mrenum.ItemStatus.

func NewItemStatus

func NewItemStatus() *ItemStatus

NewItemStatus - создаёт объект ItemStatus.

func NewItemStatusWithDefault added in v0.14.2

func NewItemStatusWithDefault(items []mrenum.ItemStatus) *ItemStatus

NewItemStatusWithDefault - создаёт объект ItemStatus со статусами по умолчанию.

func (*ItemStatus) FilterStatusList

func (p *ItemStatus) FilterStatusList(r *http.Request, key string) []mrenum.ItemStatus

FilterStatusList - возвращает массив mrenum.ItemStatus поступивший из внешнего запроса. Если ключ key не найден или возникнет ошибка, то возвращается пустой массив.

type ListPager added in v0.14.0

type ListPager struct {
	// contains filtered or unexported fields
}

ListPager - парсер параметров для выборки части списка элементов.

func NewListPager added in v0.14.0

func NewListPager(opts ListPagerOptions) *ListPager

NewListPager - создаёт объект ListPager.

func (*ListPager) PageParams added in v0.14.0

func (p *ListPager) PageParams(r *http.Request) mrtype.PageParams

PageParams - возвращает распарсенные параметры выборки части списка элементов.

type ListPagerOptions added in v0.14.0

type ListPagerOptions struct {
	ParamNamePageIndex string
	ParamNamePageSize  string
	PageSizeMax        uint64
	PageSizeDefault    uint64
}

ListPagerOptions - опции для создания ListPager.

type ListSorter added in v0.14.0

type ListSorter struct {
	// contains filtered or unexported fields
}

ListSorter - парсер параметров для сортировки списка элементов.

func NewListSorter added in v0.14.0

func NewListSorter(opts ListSorterOptions) *ListSorter

NewListSorter - создаёт объект ListSorter.

func (*ListSorter) SortParams added in v0.14.0

func (p *ListSorter) SortParams(r *http.Request, sorter mrview.ListSorter) mrtype.SortParams

SortParams - возвращает распарсенные параметры сортировки списка элементов.

type ListSorterOptions added in v0.14.0

type ListSorterOptions struct {
	ParamNameSortField     string
	ParamNameSortDirection string
}

ListSorterOptions - опции для создания ListSorter.

type Parser added in v0.14.0

Parser - агрегатор базовых парсеров.

func NewParser added in v0.14.0

func NewParser(
	p1 *Bool,
	p2 *DateTime,
	p3 *Int64,
	p4 *Uint64,
	p5 *ListSorter,
	p6 *ListPager,
	p7 *String,
	p8 *UUID,
	p9 *Validator,
	p10 *File,
	p11 *Image,
) *Parser

NewParser - создаёт объект Parser.

type String added in v0.12.0

type String struct {
	// contains filtered or unexported fields
}

String - парсер строки.

func NewString added in v0.12.0

func NewString(pathFunc mrserver.RequestParserParamFunc) *String

NewString - создаёт объект String.

func (*String) FilterString added in v0.12.0

func (p *String) FilterString(r *http.Request, key string) string

FilterString - возвращает строка поступившая из внешнего запроса. Если ключ key не найден или возникнет ошибка, то возвращается пустое значение.

func (*String) PathParamString added in v0.12.0

func (p *String) PathParamString(r *http.Request, name string) string

PathParamString - возвращает именованная строка содержащаяся в URL пути. Если ключ name не найден, то возвращается пустое значение.

func (*String) RawParamString added in v0.12.0

func (p *String) RawParamString(r *http.Request, name string) *string

RawParamString - возвращает именованная строка содержащаяся в URL пути. Если ключ name не найден, то возвращается nil значение.

type UUID

type UUID struct {
	// contains filtered or unexported fields
}

UUID - парсер UUID.

func NewUUID

func NewUUID(pathFunc mrserver.RequestParserParamFunc) *UUID

NewUUID - создаёт объект UUID.

func (*UUID) FilterUUID

func (p *UUID) FilterUUID(r *http.Request, key string) uuid.UUID

FilterUUID - возвращает UUID поступивший из внешнего запроса. Если ключ key не найден или возникнет ошибка, то возвращается uuid.Nil.

func (*UUID) PathParamUUID

func (p *UUID) PathParamUUID(r *http.Request, name string) uuid.UUID

PathParamUUID - возвращает именованный UUID содержащийся в URL пути.

type Uint64 added in v0.25.0

type Uint64 struct {
	// contains filtered or unexported fields
}

Uint64 - парсер uint64 числа.

func NewUint64 added in v0.25.0

func NewUint64(pathFunc mrserver.RequestParserParamFunc) *Uint64

NewUint64 - создаёт объект Uint64.

func (*Uint64) FilterUint64 added in v0.25.0

func (p *Uint64) FilterUint64(r *http.Request, key string) uint64

FilterUint64 - возвращает uint64 число поступившее из внешнего запроса. Если ключ key не найден или возникнет ошибка, то возвращается нулевое значение.

func (*Uint64) FilterUint64List added in v0.25.0

func (p *Uint64) FilterUint64List(r *http.Request, key string) []uint64

FilterUint64List - возвращает массив uint64 чисел поступивший из внешнего запроса. Если ключ key не найден или возникнет ошибка, то возвращается пустой массив.

func (*Uint64) PathParamUint64 added in v0.25.0

func (p *Uint64) PathParamUint64(r *http.Request, name string) uint64

PathParamUint64 - возвращает именованное uint64 число содержащееся в URL пути.

type Validator

type Validator struct {
	// contains filtered or unexported fields
}

Validator - парсер полей структур с валидацией указанной в тегах полей.

func NewValidator

func NewValidator(decoder mrserver.RequestDecoder, validator mrview.Validator) *Validator

NewValidator - создаёт объект Validator.

func (*Validator) Validate

func (p *Validator) Validate(r *http.Request, structPointer any) error

Validate - возвращает в structPointer распарсеный внешний запрос или ошибку, если валидация запроса не прошла.

func (*Validator) ValidateContent added in v0.14.0

func (p *Validator) ValidateContent(ctx context.Context, content []byte, structPointer any) error

ValidateContent - возвращает в structPointer распарсенный []byte или ошибку, если валидация запроса не прошла.

Jump to

Keyboard shortcuts

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