codec

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: Apr 15, 2021 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnsupportedType = errors.New("unsupported type")
	ErrMissingRequired = errors.New("missing required field")
)

Functions

func DecodeMapToStruct

func DecodeMapToStruct(in map[string]string, out interface{}) error

DecodeMapToStruct decodes a value from map[string]string to struct (or *struct).

func EncodeStructToMap

func EncodeStructToMap(in interface{}, out *map[string]string) error

DecodeMapToStruct encode a value from struct (or *struct) to map[string]string.

func GetFieldName

func GetFieldName(field reflect.StructField) (name string, required, omitted bool)

func MakeErrorEncoder

func MakeErrorEncoder(codec Codec) kithttp.ErrorEncoder

func MakeResponseEncoder

func MakeResponseEncoder(codec Codec, statusCode int) kithttp.EncodeResponseFunc

func QueryListToString

func QueryListToString(l []string) string

func QueryStringToList

func QueryStringToList(s string) (l []string)

Types

type Bodier

type Bodier interface {
	Body() interface{}
}

type Codec

type Codec interface {
	// Encoders and decoders used at the server side.
	DecodeRequestParam(name, value string, out interface{}) error
	DecodeRequestParams(name string, values map[string]string, out interface{}) error
	DecodeRequestBody(body io.ReadCloser, out interface{}) error
	EncodeSuccessResponse(w http.ResponseWriter, statusCode int, body interface{}) error
	EncodeFailureResponse(w http.ResponseWriter, err error) error

	// Encoders and decoders used at the client side.
	EncodeRequestParam(name string, value interface{}) string
	EncodeRequestParams(name string, value interface{}) map[string]string
	EncodeRequestBody(body interface{}) (io.Reader, map[string]string, error)
	DecodeSuccessResponse(body io.ReadCloser, out interface{}) error
	DecodeFailureResponse(body io.ReadCloser, out *error) error
}

type CodecMap

type CodecMap struct {
	Codecs  map[string]Codec
	Default Codec
}

func (CodecMap) EncodeDecoder

func (cm CodecMap) EncodeDecoder(name string) Codec

type Codecs

type Codecs interface {
	EncodeDecoder(name string) Codec
}

type Error

type Error struct {
	Code    string `json:"code"`
	Message string `json:"message"`
}

type FailureResponse

type FailureResponse struct {
	Error Error `json:"error"`
}

type JSONCodec

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

func NewJSONCodec

func NewJSONCodec(paramCodecs map[string]ParamCodec) JSONCodec

func (JSONCodec) DecodeFailureResponse

func (jc JSONCodec) DecodeFailureResponse(body io.ReadCloser, out *error) error

func (JSONCodec) DecodeRequestBody

func (jc JSONCodec) DecodeRequestBody(body io.ReadCloser, out interface{}) error

func (JSONCodec) DecodeRequestParam

func (jc JSONCodec) DecodeRequestParam(name, value string, out interface{}) error

func (JSONCodec) DecodeRequestParams

func (jc JSONCodec) DecodeRequestParams(name string, values map[string]string, out interface{}) error

func (JSONCodec) DecodeSuccessResponse

func (jc JSONCodec) DecodeSuccessResponse(body io.ReadCloser, out interface{}) error

func (JSONCodec) EncodeFailureResponse

func (jc JSONCodec) EncodeFailureResponse(w http.ResponseWriter, err error) error

func (JSONCodec) EncodeRequestBody

func (jc JSONCodec) EncodeRequestBody(body interface{}) (io.Reader, map[string]string, error)

func (JSONCodec) EncodeRequestParam

func (jc JSONCodec) EncodeRequestParam(name string, value interface{}) string

func (JSONCodec) EncodeRequestParams

func (jc JSONCodec) EncodeRequestParams(name string, value interface{}) map[string]string

func (JSONCodec) EncodeSuccessResponse

func (jc JSONCodec) EncodeSuccessResponse(w http.ResponseWriter, statusCode int, body interface{}) error

type ParamCodec

type ParamCodec struct {
	OnDecode func(value string) (interface{}, error)
	OnEncode func(value interface{}) string
}

func (ParamCodec) Decode

func (pc ParamCodec) Decode(name, value string, out interface{}) error

func (ParamCodec) Encode

func (pc ParamCodec) Encode(name string, value interface{}) string

Jump to

Keyboard shortcuts

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