dmiddleware

package
v0.9.2 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2023 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InvalidParameter   = "INVALID_PARAMETER"
	WrongRequestMethod = "WRONG_REQUEST_METHOD"
	InternalError      = "INTERNAL_ERROR"
)

Variables

View Source
var (
	ErrInvalidBodyJsonParams  = NewCode(http.StatusBadRequest, InvalidParameter, "invalid http json body params") //输入json参数错误
	ErrInvalidBodyXMLParams   = NewCode(http.StatusBadRequest, InvalidParameter, "invalid http xml body params")  //输入xml参数错误
	ErrInvalidQueryParams     = NewCode(http.StatusBadRequest, InvalidParameter, "invalid http query params")     //输入query参数错误
	ErrInvalidUriParams       = NewCode(http.StatusBadRequest, InvalidParameter, "invalid http uri params")       //输入uri参数错误
	ErrInvalidHeaderParams    = NewCode(http.StatusBadRequest, InvalidParameter, "invalid http header params")    //输入header参数错误
	ErrInvalidFormParams      = NewCode(http.StatusBadRequest, InvalidParameter, "invalid http form params")      //输入form参数错误
	ErrInvalidFormFileParams  = NewCode(http.StatusBadRequest, InvalidParameter, "invalid http form file params") //输入form file参数错误
	ErrParamsNotMatchValidate = NewCode(http.StatusBadRequest, InvalidParameter, "params not match validate")     //参数不匹配验证
	ErrGetHTTPBodyFailed      = NewCode(http.StatusBadRequest, InvalidParameter, "get http body error")           //http body解析错误
	ErrWebsocketsError        = NewCode(http.StatusBadRequest, WrongRequestMethod, "websockets error")            //websockets错误
)

Functions

func CrossOrigin

func CrossOrigin() gin.HandlerFunc

func Extract

func Extract[T any](ctx context.Context, key string) T

Extract 提取被注入的变量,使用inject tag以及对应的注入函数来注入变量以供后续使用

func Handle added in v0.9.0

func Handle[T any](do httpDoFunc[T], fun replyFunc, authFuncs ...AuthFunc) func(c *gin.Context)

Handle 业务逻辑处理的gin中间件,通过context返回Result

func RegisterInjectorFunc

func RegisterInjectorFunc(name string, f func(ctx context.Context, value interface{}) (interface{}, Code))

func RegisterToAccessFactory added in v0.7.0

func RegisterToAccessFactory[T IAccess]()

func WsRequest added in v0.8.0

func WsRequest[T any](do wsDoFunc[T], fun replyFunc, authFuncs ...AuthFunc) func(c *gin.Context)

Types

type AccessList added in v0.7.0

type AccessList []IAccess

func (AccessList) Auth added in v0.7.0

func (al AccessList) Auth(need IAccess) bool

Auth 校验权限

func (AccessList) MarshalJSON added in v0.7.0

func (al AccessList) MarshalJSON() ([]byte, error)

func (*AccessList) Merge added in v0.7.0

func (al *AccessList) Merge(access IAccess)

Merge 合并权限

func (*AccessList) Scan added in v0.7.0

func (al *AccessList) Scan(value interface{}) error

Scan implements the Scanner interface.

func (AccessList) String added in v0.7.0

func (al AccessList) String() string

func (*AccessList) UnmarshalJSON added in v0.7.0

func (al *AccessList) UnmarshalJSON(v []byte) error

func (AccessList) Value added in v0.7.0

func (al AccessList) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type AuthFunc

type AuthFunc func(ctx *RequestContext) (skipOther bool, err Code)

type Code added in v0.9.0

type Code interface {
	GetHttpCode() int
	GetErrCode() string
	Error() string
	GetDetails() []string
	UnWrapError() string
	WithDetails(details ...string) Code
	Wrap(err error) Code
	WrapWithDetails(err error, details ...string) Code
	Result
}

func NewCode added in v0.9.0

func NewCode(httpCode int, errCode, errMsg string, details ...string) Code

type ErrCode added in v0.9.0

type ErrCode struct {
	HttpCode int
	ErrCode  string
	*dcodes.ECode
}

func (*ErrCode) Error added in v0.9.0

func (c *ErrCode) Error() string

func (*ErrCode) GetData added in v0.9.0

func (c *ErrCode) GetData() interface{}

func (*ErrCode) GetDetails added in v0.9.0

func (c *ErrCode) GetDetails() []string

func (*ErrCode) GetErr added in v0.9.0

func (c *ErrCode) GetErr() Code

func (*ErrCode) GetErrCode added in v0.9.0

func (c *ErrCode) GetErrCode() string

func (*ErrCode) GetHttpCode added in v0.9.0

func (c *ErrCode) GetHttpCode() int

func (*ErrCode) Is added in v0.9.0

func (c *ErrCode) Is(e error) bool

func (*ErrCode) UnWrapError added in v0.9.0

func (c *ErrCode) UnWrapError() string

func (*ErrCode) Unwrap added in v0.9.0

func (c *ErrCode) Unwrap() error

func (*ErrCode) WithDetails added in v0.9.0

func (c *ErrCode) WithDetails(details ...string) Code

func (*ErrCode) Wrap added in v0.9.0

func (c *ErrCode) Wrap(err error) Code

func (*ErrCode) WrapWithDetails added in v0.9.0

func (c *ErrCode) WrapWithDetails(err error, details ...string) Code

type IAccess added in v0.7.0

type IAccess interface {
	AccessName() string
}

type RequestContext added in v0.8.0

type RequestContext struct {
	GinCtx *gin.Context
	context.Context
}

func NewContext added in v0.8.0

func NewContext(c *gin.Context) *RequestContext

NewContext 生成新的请求及链路追踪ctx

func (*RequestContext) Deadline added in v0.8.0

func (c *RequestContext) Deadline() (deadline time.Time, ok bool)

func (*RequestContext) Done added in v0.8.0

func (c *RequestContext) Done() <-chan struct{}

func (*RequestContext) Err added in v0.8.0

func (c *RequestContext) Err() error

func (*RequestContext) Value added in v0.8.0

func (c *RequestContext) Value(key interface{}) interface{}

type Result added in v0.9.0

type Result interface {
	GetHttpCode() int
	GetErr() Code
	GetData() interface{}
}

func ErrOrSuccess200Nil added in v0.9.0

func ErrOrSuccess200Nil(code Code) Result

func Success200 added in v0.9.0

func Success200(data interface{}) Result

func Success200Nil added in v0.9.0

func Success200Nil() Result

func SuccessXXX added in v0.9.0

func SuccessXXX(code int, data interface{}) Result

Jump to

Keyboard shortcuts

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