response

package
v0.0.0-...-9345cf7 Latest Latest
Warning

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

Go to latest
Published: May 6, 2024 License: Apache-2.0 Imports: 11 Imported by: 22

Documentation

Index

Constants

View Source
const DefaultPageSize = 10

Variables

View Source
var ResponseDataCompress = func(w http.ResponseWriter) {
	w.Header().Set("Content-Encoding", "gzip")
	gzipWriter := gzip.NewWriter(w)
	w = gzipResponseWriter{w: gzipWriter, ResponseWriter: w}
}
View Source
var ServerError = InternalServerError
View Source
var WrapError = func(code int, msg string, err error) any {
	return StatusError{Status: code, Message: msg, RawErr: err}
}
View Source
var WrapOK = func(data any) any {
	return map[string]any{"data": data}
}

Functions

func BadRequest

func BadRequest(w http.ResponseWriter, message string)

func Error

func Error(w http.ResponseWriter, err error)

func Forbidden

func Forbidden(w http.ResponseWriter, message string)

func InternalServerError

func InternalServerError(w http.ResponseWriter, err error)

func NotFound

func NotFound(w http.ResponseWriter, message string)

func OK

func OK(w http.ResponseWriter, data any)

func Raw

func Raw(w http.ResponseWriter, status int, data any, headers map[string]string)

func SearchNameFunc

func SearchNameFunc[T any](search string, getname func(T) string) func(T) bool

func SortByFunc

func SortByFunc[T any](by string, getname func(T) string, gettime func(T) time.Time) func(a, b T) int

func Unauthorized

func Unauthorized(w http.ResponseWriter, message string)

Types

type Page

type Page[T any] struct {
	Total int64 `json:"total"`
	List  []T   `json:"list"`
	Page  int64 `json:"page"`
	Size  int64 `json:"size"`
}

func PageFrom

func PageFrom[T any](list []T, page, size int, pickfun func(item T) bool, sortfun func(a, b T) int) Page[T]

func PageFromListOptions

func PageFromListOptions[T any](list []T, opts request.ListOptions, namefunc func(item T) string, timefunc func(item T) time.Time) Page[T]

func PageFromRequest

func PageFromRequest[T any](req *http.Request, list []T, namefunc func(item T) string, timefunc func(item T) time.Time) Page[T]

PageFromRequest auto pagination from user request on item name or time in list

func PageObjectFromListOptions

func PageObjectFromListOptions[T any](list []T, opts request.ListOptions) Page[T]

PageObjectFromListOptions used for client.Object pagination T in list use any of T to suit for both eg. Pod(not implement metav1.Object) and *Pod(metav1.Object)

func PageObjectFromRequest

func PageObjectFromRequest[T any](req *http.Request, list []T) Page[T]

type StatusError

type StatusError struct {
	Status  int    `json:"status"`
	Message string `json:"message"`
	RawErr  error  `json:"error,omitempty"`
}

func NewStatusError

func NewStatusError(status int, err error) *StatusError

func NewStatusErrorMessage

func NewStatusErrorMessage(status int, message string) *StatusError

func NewStatusErrorf

func NewStatusErrorf(status int, format string, args ...any) *StatusError

NewStatusErrorf acts like fmt.Errorf but returns a StatusError. Usage:

if err:=someprocess(username); err!=nil {
  return NewStatusErrorf(http.StatusNotFound, "user %s not found: %w", username, err)
}

func (StatusError) Error

func (e StatusError) Error() string

Jump to

Keyboard shortcuts

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