feat: add decode

This commit is contained in:
Kevin Franklin Kim 2024-11-21 13:56:10 +01:00
parent e801701b58
commit 478b678a6e
No known key found for this signature in database
3 changed files with 39 additions and 3 deletions

View File

@ -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
}
}

View File

@ -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
View 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)
}