Help us shape the future of Go! Take the 2026 Go Developer Survey

builder

package
v1.0.76 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2023 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Default is the default builder
	Default = &Builder{method: O.Some(defaultMethod()), headers: make(http.Header), body: noBody}

	// BuilderMonoid is the [M.Monoid] for the [BuilderEndomorphism]
	BuilderMonoid = ENDO.Monoid[*Builder]()

	// Url is a [L.Lens] for the URL
	Url = L.MakeLensRef((*Builder).GetUrl, (*Builder).SetUrl)
	// Method is a [L.Lens] for the HTTP method
	Method = L.MakeLensRef((*Builder).GetMethod, (*Builder).SetMethod)
	// Body is a [L.Lens] for the request body
	Body = L.MakeLensRef((*Builder).GetBody, (*Builder).SetBody)
	// Headers is a [L.Lens] for the complete set of request headers
	Headers = L.MakeLensRef((*Builder).GetHeaders, (*Builder).SetHeaders)

	// WithMethod creates a [BuilderBuilder] for a certain method
	WithMethod = F.Flow2(
		Method.Set,
		ENDO.Of[func(*Builder) *Builder],
	)
	// WithUrl creates a [BuilderBuilder] for a certain method
	WithUrl = F.Flow2(
		Url.Set,
		ENDO.Of[func(*Builder) *Builder],
	)
	// WithHeaders creates a [BuilderBuilder] for a set of headers
	WithHeaders = F.Flow2(
		Headers.Set,
		ENDO.Of[func(*Builder) *Builder],
	)
	// WithBody creates a [BuilderBuilder] for a request body
	WithBody = F.Flow3(
		O.Of[IOE.IOEither[error, []byte]],
		Body.Set,
		ENDO.Of[func(*Builder) *Builder],
	)
	// WithContentType adds the content type header
	WithContentType = WithHeader("Content-Type")

	// WithGet adds the [http.MethodGet] method
	WithGet = WithMethod(http.MethodGet)
	// WithPost adds the [http.MethodPost] method
	WithPost = WithMethod(http.MethodPost)
	// WithPut adds the [http.MethodPut] method
	WithPut = WithMethod(http.MethodPut)
	// WithDelete adds the [http.MethodDelete] method
	WithDelete = WithMethod(http.MethodDelete)

	// Requester creates a requester from a builder
	Requester = (*Builder).Requester

	// WithoutBody creates a [BuilderBuilder] to remove the body
	WithoutBody = F.Pipe2(
		noBody,
		Body.Set,
		ENDO.Of[func(*Builder) *Builder],
	)
)

Functions

func Header(name string) L.Lens[*Builder, O.Option[string]]

Header returns a [L.Lens] for a single header

func WithHeader

func WithHeader(name string) func(value string) BuilderEndomorphism

WithHeader creates a [BuilderBuilder] for a certain header

Types

type Builder

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

func (*Builder) AddHeaderHeader

func (builder *Builder) AddHeaderHeader(name, value string) *Builder

func (*Builder) DelHeader

func (builder *Builder) DelHeader(name string) *Builder

func (*Builder) GetBody

func (builder *Builder) GetBody() O.Option[IOE.IOEither[error, []byte]]

func (*Builder) GetHeader

func (builder *Builder) GetHeader(name string) O.Option[string]

func (*Builder) GetHeaderValues

func (builder *Builder) GetHeaderValues(name string) []string

func (*Builder) GetHeaders

func (builder *Builder) GetHeaders() http.Header

func (*Builder) GetMethod

func (builder *Builder) GetMethod() string

func (*Builder) GetUrl

func (builder *Builder) GetUrl() string

func (*Builder) Requester

func (builder *Builder) Requester() IOEH.Requester

func (*Builder) SetBody

func (builder *Builder) SetBody(body O.Option[IOE.IOEither[error, []byte]]) *Builder

func (*Builder) SetHeader

func (builder *Builder) SetHeader(name, value string) *Builder

func (*Builder) SetHeaders

func (builder *Builder) SetHeaders(headers http.Header) *Builder

func (*Builder) SetMethod

func (builder *Builder) SetMethod(method string) *Builder

func (*Builder) SetUrl

func (builder *Builder) SetUrl(url string) *Builder

type BuilderEndomorphism added in v1.0.75

type BuilderEndomorphism = ENDO.Endomorphism[*Builder]

BuilderEndomorphism returns an [ENDO.Endomorphism] that transforms a builder

func WithFormData added in v1.0.72

func WithFormData(value url.Values) BuilderEndomorphism

WithFormData creates a [BuilderBuilder] to send form data payload

func WithJson added in v1.0.72

func WithJson[T any](data T) BuilderEndomorphism

WithJson creates a [BuilderBuilder] to send JSON payload

func WithoutHeader

func WithoutHeader(name string) BuilderEndomorphism

WithoutHeader creates a [BuilderBuilder] to remove a certain header

Jump to

Keyboard shortcuts

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