mirror of
https://github.com/foomo/sesamy-go.git
synced 2025-10-16 12:35:43 +00:00
feat: add decode
This commit is contained in:
parent
e801701b58
commit
478b678a6e
@ -100,7 +100,6 @@ func MiddlewareUserAgent(next MiddlewareHandler) MiddlewareHandler {
|
||||
for i, event := range payload.Events {
|
||||
if value, ok := event.Params.(map[string]any); ok {
|
||||
value["user_agent"] = userAgent
|
||||
event.Params = value
|
||||
payload.Events[i] = event
|
||||
}
|
||||
}
|
||||
@ -122,7 +121,6 @@ func MiddlewareIPOverride(next MiddlewareHandler) MiddlewareHandler {
|
||||
for i, event := range payload.Events {
|
||||
if value, ok := event.Params.(map[string]any); ok {
|
||||
value["ip_override"] = ipOverride
|
||||
event.Params = value
|
||||
payload.Events[i] = event
|
||||
}
|
||||
}
|
||||
@ -137,7 +135,6 @@ func MiddlewarePageLocation(next MiddlewareHandler) MiddlewareHandler {
|
||||
for i, event := range payload.Events {
|
||||
if value, ok := event.Params.(map[string]any); ok {
|
||||
value["page_location"] = referrer
|
||||
event.Params = value
|
||||
payload.Events[i] = event
|
||||
}
|
||||
}
|
||||
|
||||
@ -36,3 +36,7 @@ func (e Event[P]) Decode(output any) error {
|
||||
func (e Event[P]) DecodeParams(output any) error {
|
||||
return Decode(e.Params, output)
|
||||
}
|
||||
|
||||
func (e Event[P]) EncodeParams(input any) error {
|
||||
return Decode(input, &e.Params)
|
||||
}
|
||||
|
||||
35
pkg/sesamy/event_test.go
Normal file
35
pkg/sesamy/event_test.go
Normal file
@ -0,0 +1,35 @@
|
||||
package sesamy_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/foomo/sesamy-go/pkg/sesamy"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestDecodeParams(t *testing.T) {
|
||||
type params struct {
|
||||
Title string `json:"title"`
|
||||
}
|
||||
|
||||
event := sesamy.Event[any]{
|
||||
Name: "test",
|
||||
Params: map[string]any{
|
||||
"title": "foo",
|
||||
"description": "foo",
|
||||
},
|
||||
}
|
||||
|
||||
var p params
|
||||
require.NoError(t, event.DecodeParams(&p))
|
||||
assert.Equal(t, "foo", p.Title)
|
||||
|
||||
p.Title = "bar"
|
||||
|
||||
require.NoError(t, event.EncodeParams(p))
|
||||
assert.Equal(t, map[string]any{
|
||||
"title": "bar",
|
||||
"description": "foo",
|
||||
}, event.Params)
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user