This commit is contained in:
Mike Schwörer 2023-07-24 17:42:18 +02:00
parent adf32568ee
commit a259bb6dbc
Signed by: Mikescher
GPG Key ID: D3C7172E0A70F8CF
3 changed files with 19 additions and 2 deletions

View File

@ -47,6 +47,7 @@ var (
TypeBindFailQuery = ErrorType{"BINDFAIL_QUERY", langext.Ptr(400)}
TypeBindFailJSON = ErrorType{"BINDFAIL_JSON", langext.Ptr(400)}
TypeBindFailFormData = ErrorType{"BINDFAIL_FORMDATA", langext.Ptr(400)}
TypeBindFailHeader = ErrorType{"BINDFAIL_HEADER", langext.Ptr(400)}
TypeUnauthorized = ErrorType{"UNAUTHORIZED", langext.Ptr(401)}
TypeAuthFailed = ErrorType{"AUTH_FAILED", langext.Ptr(401)}

View File

@ -17,6 +17,7 @@ type PreContext struct {
query any
body any
form any
header any
}
func (pctx *PreContext) URI(uri any) *PreContext {
@ -39,6 +40,11 @@ func (pctx *PreContext) Form(form any) *PreContext {
return pctx
}
func (pctx *PreContext) Header(header any) *PreContext {
pctx.header = header
return pctx
}
func (pctx PreContext) Start() (*AppContext, *gin.Context, *HTTPResponse) {
if pctx.uri != nil {
if err := pctx.ginCtx.ShouldBindUri(pctx.uri); err != nil {
@ -94,6 +100,16 @@ func (pctx PreContext) Start() (*AppContext, *gin.Context, *HTTPResponse) {
}
}
if pctx.header != nil {
if err := pctx.ginCtx.ShouldBindHeader(pctx.query); err != nil {
err = exerr.Wrap(err, "Failed to read header").
WithType(exerr.TypeBindFailHeader).
Str("struct_type", fmt.Sprintf("%T", pctx.query)).
Build()
return nil, nil, langext.Ptr(APIError(pctx.ginCtx, err))
}
}
ictx, cancel := context.WithTimeout(context.Background(), pctx.wrapper.requestTimeout)
actx := CreateAppContext(pctx.ginCtx, ictx, cancel)

View File

@ -1,5 +1,5 @@
package goext
const GoextVersion = "0.0.199"
const GoextVersion = "0.0.200"
const GoextVersionTimestamp = "2023-07-24T17:23:38+0200"
const GoextVersionTimestamp = "2023-07-24T17:42:18+0200"