|
|
@@ -6,10 +6,11 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-type RequestCallbackFunc func(c *api.Context, response *http_client.Response, resultMap map[string]any) error
|
|
|
-type GlobalRequestCallbackFunc func(c *api.Context, request BuilderRequest, historyRequests []BuilderRequest, resultMap map[string]any) error
|
|
|
-type ResponseSuccessFunc func(c *api.Context, historyRequests []BuilderRequest, resultMap map[string]any)
|
|
|
-type ResponseErrorFunc func(c *api.Context, err error)
|
|
|
+type RequestParamsBindCallback func(c *api.Context)
|
|
|
+type RequestCallback func(c *api.Context, response *http_client.Response, resultMap map[string]any) error
|
|
|
+type GlobalRequestCallback func(c *api.Context, request BuilderRequest, historyRequests []BuilderRequest, resultMap map[string]any) error
|
|
|
+type ResponseSuccessCallback func(c *api.Context, historyRequests []BuilderRequest, resultMap map[string]any)
|
|
|
+type ResponseErrorCallback func(c *api.Context, err error)
|
|
|
|
|
|
type Builder struct {
|
|
|
router api.Router
|
|
|
@@ -35,41 +36,47 @@ func (builder *Builder) Url(httpMethod string, relativePath string) *Builder {
|
|
|
return copyBuilder
|
|
|
}
|
|
|
|
|
|
-func (builder *Builder) Post(request *PostRequest, requestCallbackFunc RequestCallbackFunc) *Builder {
|
|
|
+func (builder *Builder) Post(request *PostRequest, requestCallbackFunc RequestCallback) *Builder {
|
|
|
return builder.addRequest(newBuilderRequestItem(request, requestCallbackFunc))
|
|
|
}
|
|
|
|
|
|
-func (builder *Builder) PostStruct(request *PostRequest, requestCallbackFunc RequestCallbackFunc) *Builder {
|
|
|
+func (builder *Builder) PostStruct(request *PostRequest, requestCallbackFunc RequestCallback) *Builder {
|
|
|
return builder.addRequest(newBuilderRequestItem(request, requestCallbackFunc))
|
|
|
}
|
|
|
|
|
|
-func (builder *Builder) Delete(request *DeleteRequest, requestCallbackFunc RequestCallbackFunc) *Builder {
|
|
|
+func (builder *Builder) Delete(request *DeleteRequest, requestCallbackFunc RequestCallback) *Builder {
|
|
|
return builder.addRequest(newBuilderRequestItem(request, requestCallbackFunc))
|
|
|
}
|
|
|
|
|
|
-func (builder *Builder) Put(request *PutRequest, requestCallbackFunc RequestCallbackFunc) *Builder {
|
|
|
+func (builder *Builder) Put(request *PutRequest, requestCallbackFunc RequestCallback) *Builder {
|
|
|
return builder.addRequest(newBuilderRequestItem(request, requestCallbackFunc))
|
|
|
}
|
|
|
|
|
|
-func (builder *Builder) Get(request *GetRequest, requestCallbackFunc RequestCallbackFunc) *Builder {
|
|
|
+func (builder *Builder) Get(request *GetRequest, requestCallbackFunc RequestCallback) *Builder {
|
|
|
return builder.addRequest(newBuilderRequestItem(request, requestCallbackFunc))
|
|
|
}
|
|
|
|
|
|
-func (builder *Builder) GlobalRequestCallbackFunc(globalRequestCallbackFunc GlobalRequestCallbackFunc) *Builder {
|
|
|
+func (builder *Builder) GlobalRequestParamsBindCallback(requestParamsBindCallback RequestParamsBindCallback) *Builder {
|
|
|
copyBuilder := builder.copy()
|
|
|
- copyBuilder.params.globalRequestCallbackFunc = globalRequestCallbackFunc
|
|
|
+ copyBuilder.params.requestParamsBindCallback = requestParamsBindCallback
|
|
|
return copyBuilder
|
|
|
}
|
|
|
|
|
|
-func (builder *Builder) ResponseSuccessFunc(responseSuccessFunc ResponseSuccessFunc) *Builder {
|
|
|
+func (builder *Builder) GlobalRequestCallback(globalRequestCallback GlobalRequestCallback) *Builder {
|
|
|
copyBuilder := builder.copy()
|
|
|
- copyBuilder.params.responseSuccessFunc = responseSuccessFunc
|
|
|
+ copyBuilder.params.globalRequestCallback = globalRequestCallback
|
|
|
return copyBuilder
|
|
|
}
|
|
|
|
|
|
-func (builder *Builder) ResponseErrorFunc(responseErrorFunc ResponseErrorFunc) *Builder {
|
|
|
+func (builder *Builder) ResponseSuccessCallback(responseSuccessCallback ResponseSuccessCallback) *Builder {
|
|
|
copyBuilder := builder.copy()
|
|
|
- copyBuilder.params.responseErrorFunc = responseErrorFunc
|
|
|
+ copyBuilder.params.responseSuccessCallback = responseSuccessCallback
|
|
|
+ return copyBuilder
|
|
|
+}
|
|
|
+
|
|
|
+func (builder *Builder) ResponseErrorCallback(responseErrorCallback ResponseErrorCallback) *Builder {
|
|
|
+ copyBuilder := builder.copy()
|
|
|
+ copyBuilder.params.responseErrorCallback = responseErrorCallback
|
|
|
return copyBuilder
|
|
|
}
|
|
|
|
|
|
@@ -77,6 +84,10 @@ func (builder *Builder) Build(middlewares ...api.Handler) {
|
|
|
copyBuilder := builder.copy()
|
|
|
copyBuilder.router.AddRoute(builder.params.httpMethod, builder.params.relativePath, append(middlewares,
|
|
|
func(c *api.Context) {
|
|
|
+ if builder.params.requestParamsBindCallback != nil {
|
|
|
+ builder.params.requestParamsBindCallback(c)
|
|
|
+ }
|
|
|
+
|
|
|
httpRequest := builder.httpClient.NewRequest(http_client.WithNewRequestTimeout(time.Duration(builder.httpTimeoutSec) * time.Second))
|
|
|
historyRequests := make([]BuilderRequest, 0)
|
|
|
resultMap := make(map[string]any)
|
|
|
@@ -84,24 +95,24 @@ func (builder *Builder) Build(middlewares ...api.Handler) {
|
|
|
for _, requestItem := range builder.params.requestItems {
|
|
|
err := requestItem.request.Request(c, httpRequest, historyRequests, resultMap)
|
|
|
if err != nil {
|
|
|
- builder.params.responseErrorFunc(c, err)
|
|
|
+ builder.params.responseErrorCallback(c, err)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
if requestItem.requestCallbackFunc != nil {
|
|
|
err := requestItem.requestCallbackFunc(c, requestItem.request.Response(), resultMap)
|
|
|
if err != nil {
|
|
|
- builder.params.responseErrorFunc(c, err)
|
|
|
+ builder.params.responseErrorCallback(c, err)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
continue
|
|
|
}
|
|
|
|
|
|
- if builder.params.globalRequestCallbackFunc != nil {
|
|
|
- err := builder.params.globalRequestCallbackFunc(c, requestItem.request, historyRequests, resultMap)
|
|
|
+ if builder.params.globalRequestCallback != nil {
|
|
|
+ err := builder.params.globalRequestCallback(c, requestItem.request, historyRequests, resultMap)
|
|
|
if err != nil {
|
|
|
- builder.params.responseErrorFunc(c, err)
|
|
|
+ builder.params.responseErrorCallback(c, err)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
@@ -111,7 +122,7 @@ func (builder *Builder) Build(middlewares ...api.Handler) {
|
|
|
historyRequests = append(historyRequests, requestItem.request)
|
|
|
}
|
|
|
|
|
|
- builder.params.responseSuccessFunc(c, historyRequests, resultMap)
|
|
|
+ builder.params.responseSuccessCallback(c, historyRequests, resultMap)
|
|
|
})...)
|
|
|
}
|
|
|
|