summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--example/example.go39
1 files changed, 35 insertions, 4 deletions
diff --git a/example/example.go b/example/example.go
index 3bf7395..3d582eb 100644
--- a/example/example.go
+++ b/example/example.go
@@ -8,7 +8,9 @@ import (
"context"
"encoding/json"
"fmt"
+ "mime/multipart"
"net/http"
+ "net/url"
"sync"
"time"
@@ -30,6 +32,15 @@ const (
websocketAddress = "127.0.0.1:28240"
)
+type requestResponse struct {
+ Method string
+ Url string
+ Headers http.Header
+ Form url.Values
+ MultipartForm *multipart.Form
+ Body string
+}
+
type Example struct {
trunks *trunks.Trunks
wsServer *websocket.Server
@@ -128,7 +139,7 @@ func (ex *Example) registerEndpoints() (err error) {
Path: pathExample,
RequestType: libhttp.RequestTypeForm,
ResponseType: libhttp.ResponseTypeJSON,
- Call: ex.pathExamplePostForm,
+ Call: ex.pathExamplePost,
})
return err
@@ -310,10 +321,19 @@ func (ex *Example) registerTargets() (err error) {
}
func (ex *Example) pathExampleGet(epr *libhttp.EndpointRequest) ([]byte, error) {
+ data := &requestResponse{
+ Method: epr.HttpRequest.Method,
+ Url: epr.HttpRequest.URL.String(),
+ Headers: epr.HttpRequest.Header,
+ Form: epr.HttpRequest.Form,
+ MultipartForm: epr.HttpRequest.MultipartForm,
+ Body: string(epr.RequestBody),
+ }
+
res := libhttp.EndpointResponse{}
res.Code = http.StatusOK
res.Message = pathExample
- res.Data = epr.HttpRequest.Form
+ res.Data = data
return json.Marshal(&res)
}
@@ -322,11 +342,22 @@ func (ex *Example) pathExampleErrorGet(epr *libhttp.EndpointRequest) ([]byte, er
return nil, liberrors.Internal(fmt.Errorf("server error"))
}
-func (ex *Example) pathExamplePostForm(epr *libhttp.EndpointRequest) ([]byte, error) {
+func (ex *Example) pathExamplePost(epr *libhttp.EndpointRequest) ([]byte, error) {
+ epr.HttpRequest.ParseMultipartForm(0)
+
+ data := &requestResponse{
+ Method: epr.HttpRequest.Method,
+ Url: epr.HttpRequest.URL.String(),
+ Headers: epr.HttpRequest.Header,
+ Form: epr.HttpRequest.Form,
+ MultipartForm: epr.HttpRequest.MultipartForm,
+ Body: string(epr.RequestBody),
+ }
+
res := libhttp.EndpointResponse{}
res.Code = http.StatusOK
res.Message = pathExample
- res.Data = epr.HttpRequest.Form
+ res.Data = data
return json.Marshal(&res)
}