diff --git a/.gitignore b/.gitignore index 6dc8a3fa..3c573ade 100644 --- a/.gitignore +++ b/.gitignore @@ -39,4 +39,5 @@ xgen/v1.0/* !xgen/v1.0/layouts__index.async.js !pipe/ui *-unit-test -docker/build/test \ No newline at end of file +docker/build/test +db \ No newline at end of file diff --git a/sui/api/request.go b/sui/api/request.go index bd4178b3..e22b1da2 100644 --- a/sui/api/request.go +++ b/sui/api/request.go @@ -213,6 +213,7 @@ func (r *Request) Render() (string, int, error) { data["$payload"] = r.Request.Payload data["$query"] = r.Request.Query data["$param"] = r.Request.Params + data["$cookie"] = r.Request.Cookies() data["$url"] = r.Request.URL printData := false diff --git a/sui/core/request.go b/sui/core/request.go index c6a61757..fe099699 100644 --- a/sui/core/request.go +++ b/sui/core/request.go @@ -40,6 +40,20 @@ func NewRequestMock(mock *PageMock) *Request { } } +// Cookies get the cookies +func (r *Request) Cookies() map[string]string { + cookies := map[string]string{} + cookie := r.Headers.Get("Cookie") + parts := strings.Split(cookie, ";") + for _, part := range parts { + kv := strings.Split(strings.TrimSpace(part), "=") + if len(kv) == 2 { + cookies[kv[0]] = kv[1] + } + } + return cookies +} + // ExecString get the data func (r *Request) ExecString(data string) (Data, error) { var res Data