response

package
v1.23.11 Latest Latest
Warning

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

Go to latest
Published: May 16, 2023 License: Apache-2.0 Imports: 10 Imported by: 1

Documentation

Index

Constants

View Source
const DefaultPageSize = 10

Variables

View Source
var ServerError = InternalServerError

Functions

func BadRequest

func BadRequest(w http.ResponseWriter, message string)

func Error

func Error(w http.ResponseWriter, err error)

func Forbidden added in v1.23.9

func Forbidden(w http.ResponseWriter, message string)

func InternalServerError added in v1.23.9

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 added in v1.23.8

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

func Unauthorized added in v1.23.9

func Unauthorized(w http.ResponseWriter, message string)

Types

type NameTimed added in v1.23.8

type NameTimed interface {
	Timed
	Named
}

type Named

type Named interface {
	GetName() string
}

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 added in v1.23.8

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

func PageFromRequest added in v1.23.0

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 PageObjectFromRequest added in v1.23.8

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

PageObjectFromRequest 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 PageOnly added in v1.23.8

func PageOnly[T any](list []T, page, size int) Page[T]

type Response

type Response struct {
	Message string `json:"message,omitempty"` // user friendly message, it contains error message or success message
	Data    any    `json:"data,omitempty"`    // data
	Error   any    `json:"error,omitempty"`   // raw error for debug purpose only
}

type StatusError

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

func NewStatusError added in v1.23.9

func NewStatusError(status int, err error) *StatusError

func NewStatusErrorMessage added in v1.23.9

func NewStatusErrorMessage(status int, message string) *StatusError

func NewStatusErrorf added in v1.23.9

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

type Timed added in v1.23.8

type Timed interface {
	GetCreationTimestamp() metav1.Time
}

Jump to

Keyboard shortcuts

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