From 74a97246b04478cbcb679a3708f9ba0cdba1b83c Mon Sep 17 00:00:00 2001 From: Kevin Franklin Kim Date: Mon, 4 Mar 2024 17:34:21 +0100 Subject: [PATCH] fix: map setters --- README.md | 2 +- measurementprotocol/getset.go | 14 ++++++++++++ .../v2/event/addpaymentinfo.go | 18 +++++++-------- .../v2/event/addshippinginfo.go | 18 +++++++-------- measurementprotocol/v2/event/addtocart.go | 10 ++++----- measurementprotocol/v2/event/addtowishlist.go | 10 ++++----- measurementprotocol/v2/event/begincheckout.go | 16 +++++++------- measurementprotocol/v2/event/login.go | 6 ++--- measurementprotocol/v2/event/purchase.go | 22 +++++++++---------- measurementprotocol/v2/event/refund.go | 22 +++++++++---------- .../v2/event/removefromcart.go | 10 ++++----- measurementprotocol/v2/event/search.go | 6 ++--- measurementprotocol/v2/event/signup.go | 6 ++--- 13 files changed, 87 insertions(+), 73 deletions(-) diff --git a/README.md b/README.md index a87a876..7d4777a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Sesamy +# Sesamy Go SDK [![Build Status](https://github.com/foomo/sesamy-go/actions/workflows/test.yml/badge.svg?branch=main&event=push)](https://github.com/foomo/sesamy-go/actions/workflows/test.yml) [![Go Report Card](https://goreportcard.com/badge/github.com/foomo/sesamy-go)](https://goreportcard.com/report/github.com/foomo/sesamy-go) diff --git a/measurementprotocol/getset.go b/measurementprotocol/getset.go index a4ae5e9..7e4ac0f 100644 --- a/measurementprotocol/getset.go +++ b/measurementprotocol/getset.go @@ -78,6 +78,20 @@ func SetBool(v bool) *string { return Set("1") } +func SetStringMap(v map[string]string) map[string]string { + if len(v) == 0 { + return nil + } + return v +} + +func AddStringMap(t map[string]string, k string, v *string) { + if v == nil { + return + } + t[k] = *v +} + func Get[T any](v *T) T { return *v } diff --git a/measurementprotocol/v2/event/addpaymentinfo.go b/measurementprotocol/v2/event/addpaymentinfo.go index b68d16b..2e338fd 100644 --- a/measurementprotocol/v2/event/addpaymentinfo.go +++ b/measurementprotocol/v2/event/addpaymentinfo.go @@ -52,15 +52,15 @@ func (e *AddPaymentInfo) MPv2() *mpv2.Event { for i, item := range e.Items { items[i] = item.MPv2() } + eventParameter := map[string]string{} + mp.AddStringMap(eventParameter, mpv2.EventParameterCoupon.String(), mp.SetString(e.Coupon)) + mp.AddStringMap(eventParameter, mpv2.EventParameterPaymentType.String(), mp.SetString(e.PaymentType)) + eventParameterNumber := map[string]string{} + mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberValue.String(), mp.SetFloat64(e.Value)) return &mpv2.Event{ - Currency: mp.SetString(e.Currency), - EventParameter: map[string]string{ - mpv2.EventParameterCoupon.String(): e.Coupon, - mpv2.EventParameterPaymentType.String(): e.PaymentType, - }, - EventParameterNumber: map[string]string{ - mpv2.EventParameterNumberValue.String(): *mp.SetFloat64(e.Value), - }, - Items: items, + Currency: mp.SetString(e.Currency), + EventParameter: mp.SetStringMap(eventParameter), + EventParameterNumber: mp.SetStringMap(eventParameterNumber), + Items: items, } } diff --git a/measurementprotocol/v2/event/addshippinginfo.go b/measurementprotocol/v2/event/addshippinginfo.go index 19709b0..94a61e2 100644 --- a/measurementprotocol/v2/event/addshippinginfo.go +++ b/measurementprotocol/v2/event/addshippinginfo.go @@ -52,15 +52,15 @@ func (e *AddShippingInfo) MPv2() *mpv2.Event { for i, item := range e.Items { items[i] = item.MPv2() } + eventParameter := map[string]string{} + mp.AddStringMap(eventParameter, mpv2.EventParameterCoupon.String(), mp.SetString(e.Coupon)) + mp.AddStringMap(eventParameter, mpv2.EventParameterShippingTier.String(), mp.SetString(e.ShippingTier)) + eventParameterNumber := map[string]string{} + mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberValue.String(), mp.SetFloat64(e.Value)) return &mpv2.Event{ - Currency: mp.SetString(e.Currency), - EventParameter: map[string]string{ - mpv2.EventParameterCoupon.String(): e.Coupon, - mpv2.EventParameterShippingTier.String(): e.ShippingTier, - }, - EventParameterNumber: map[string]string{ - mpv2.EventParameterNumberValue.String(): *mp.SetFloat64(e.Value), - }, - Items: items, + Currency: mp.SetString(e.Currency), + EventParameter: mp.SetStringMap(eventParameter), + EventParameterNumber: mp.SetStringMap(eventParameterNumber), + Items: items, } } diff --git a/measurementprotocol/v2/event/addtocart.go b/measurementprotocol/v2/event/addtocart.go index d339565..aef2f46 100644 --- a/measurementprotocol/v2/event/addtocart.go +++ b/measurementprotocol/v2/event/addtocart.go @@ -48,11 +48,11 @@ func (e *AddToCart) MPv2() *mpv2.Event { for i, item := range e.Items { items[i] = item.MPv2() } + eventParameterNumber := map[string]string{} + mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberValue.String(), mp.SetFloat64(e.Value)) return &mpv2.Event{ - Currency: mp.SetString(e.Currency), - EventParameterNumber: map[string]string{ - mpv2.EventParameterNumberValue.String(): *mp.SetFloat64(e.Value), - }, - Items: items, + Currency: mp.SetString(e.Currency), + EventParameterNumber: mp.SetStringMap(eventParameterNumber), + Items: items, } } diff --git a/measurementprotocol/v2/event/addtowishlist.go b/measurementprotocol/v2/event/addtowishlist.go index 32ea818..2c8f09d 100644 --- a/measurementprotocol/v2/event/addtowishlist.go +++ b/measurementprotocol/v2/event/addtowishlist.go @@ -48,11 +48,11 @@ func (e *AddToWishlist) MPv2() *mpv2.Event { for i, item := range e.Items { items[i] = item.MPv2() } + eventParameterNumber := map[string]string{} + mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberValue.String(), mp.SetFloat64(e.Value)) return &mpv2.Event{ - Currency: mp.SetString(e.Currency), - EventParameterNumber: map[string]string{ - mpv2.EventParameterNumberValue.String(): *mp.SetFloat64(e.Value), - }, - Items: items, + Currency: mp.SetString(e.Currency), + EventParameterNumber: mp.SetStringMap(eventParameterNumber), + Items: items, } } diff --git a/measurementprotocol/v2/event/begincheckout.go b/measurementprotocol/v2/event/begincheckout.go index 6a16c68..51d2732 100644 --- a/measurementprotocol/v2/event/begincheckout.go +++ b/measurementprotocol/v2/event/begincheckout.go @@ -50,14 +50,14 @@ func (e *BeginCheckout) MPv2() *mpv2.Event { for i, item := range e.Items { items[i] = item.MPv2() } + eventParameter := map[string]string{} + mp.AddStringMap(eventParameter, mpv2.EventParameterCoupon.String(), mp.SetString(e.Coupon)) + eventParameterNumber := map[string]string{} + mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberValue.String(), mp.SetFloat64(e.Value)) return &mpv2.Event{ - Currency: mp.SetString(e.Currency), - EventParameter: map[string]string{ - mpv2.EventParameterCoupon.String(): e.Coupon, - }, - EventParameterNumber: map[string]string{ - mpv2.EventParameterNumberValue.String(): *mp.SetFloat64(e.Value), - }, - Items: items, + Currency: mp.SetString(e.Currency), + EventParameter: mp.SetStringMap(eventParameter), + EventParameterNumber: mp.SetStringMap(eventParameterNumber), + Items: items, } } diff --git a/measurementprotocol/v2/event/login.go b/measurementprotocol/v2/event/login.go index f5cb2c3..ebcd815 100644 --- a/measurementprotocol/v2/event/login.go +++ b/measurementprotocol/v2/event/login.go @@ -19,9 +19,9 @@ type Login struct { } func (e *Login) MPv2() *mpv2.Event { + eventParameter := map[string]string{} + mp.AddStringMap(eventParameter, mpv2.EventParameterMethod.String(), mp.SetString(e.Method)) return &mpv2.Event{ - EventParameter: map[string]string{ - mpv2.EventParameterMethod.String(): *mp.SetString(e.Method), - }, + EventParameter: mp.SetStringMap(eventParameter), } } diff --git a/measurementprotocol/v2/event/purchase.go b/measurementprotocol/v2/event/purchase.go index 64d013b..cfb4a2a 100644 --- a/measurementprotocol/v2/event/purchase.go +++ b/measurementprotocol/v2/event/purchase.go @@ -56,17 +56,17 @@ func (e *Purchase) MPv2() *mpv2.Event { for i, item := range e.Items { items[i] = item.MPv2() } + eventParameter := map[string]string{} + mp.AddStringMap(eventParameter, mpv2.EventParameterTransactionID.String(), mp.SetString(e.TransactionID)) + mp.AddStringMap(eventParameter, mpv2.EventParameterCoupon.String(), mp.SetString(e.Coupon)) + eventParameterNumber := map[string]string{} + mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberValue.String(), mp.SetFloat64(e.Value)) + mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberShipping.String(), mp.SetFloat64(e.Shipping)) + mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberTax.String(), mp.SetFloat64(e.Tax)) return &mpv2.Event{ - Currency: mp.SetString(e.Currency), - EventParameter: map[string]string{ - mpv2.EventParameterTransactionID.String(): *mp.SetFloat64(e.Value), - mpv2.EventParameterCoupon.String(): *mp.SetFloat64(e.Value), - }, - EventParameterNumber: map[string]string{ - mpv2.EventParameterNumberValue.String(): *mp.SetFloat64(e.Value), - mpv2.EventParameterNumberShipping.String(): *mp.SetFloat64(e.Value), - mpv2.EventParameterNumberTax.String(): *mp.SetFloat64(e.Value), - }, - Items: items, + Currency: mp.SetString(e.Currency), + EventParameter: mp.SetStringMap(eventParameter), + EventParameterNumber: mp.SetStringMap(eventParameterNumber), + Items: items, } } diff --git a/measurementprotocol/v2/event/refund.go b/measurementprotocol/v2/event/refund.go index a1ca181..6293aba 100644 --- a/measurementprotocol/v2/event/refund.go +++ b/measurementprotocol/v2/event/refund.go @@ -56,17 +56,17 @@ func (e *Refund) MPv2() *mpv2.Event { for i, item := range e.Items { items[i] = item.MPv2() } + eventParameter := map[string]string{} + mp.AddStringMap(eventParameter, mpv2.EventParameterTransactionID.String(), mp.SetString(e.TransactionID)) + mp.AddStringMap(eventParameter, mpv2.EventParameterCoupon.String(), mp.SetString(e.Coupon)) + eventParameterNumber := map[string]string{} + mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberValue.String(), mp.SetFloat64(e.Value)) + mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberShipping.String(), mp.SetFloat64(e.Shipping)) + mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberTax.String(), mp.SetFloat64(e.Tax)) return &mpv2.Event{ - Currency: mp.SetString(e.Currency), - EventParameter: map[string]string{ - mpv2.EventParameterTransactionID.String(): *mp.SetFloat64(e.Value), - mpv2.EventParameterCoupon.String(): *mp.SetFloat64(e.Value), - }, - EventParameterNumber: map[string]string{ - mpv2.EventParameterNumberValue.String(): *mp.SetFloat64(e.Value), - mpv2.EventParameterNumberShipping.String(): *mp.SetFloat64(e.Value), - mpv2.EventParameterNumberTax.String(): *mp.SetFloat64(e.Value), - }, - Items: items, + Currency: mp.SetString(e.Currency), + EventParameter: mp.SetStringMap(eventParameter), + EventParameterNumber: mp.SetStringMap(eventParameterNumber), + Items: items, } } diff --git a/measurementprotocol/v2/event/removefromcart.go b/measurementprotocol/v2/event/removefromcart.go index 49c37d9..7ed78ea 100644 --- a/measurementprotocol/v2/event/removefromcart.go +++ b/measurementprotocol/v2/event/removefromcart.go @@ -48,11 +48,11 @@ func (e *RemoveFromCart) MPv2() *mpv2.Event { for i, item := range e.Items { items[i] = item.MPv2() } + eventParameterNumber := map[string]string{} + mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberValue.String(), mp.SetFloat64(e.Value)) return &mpv2.Event{ - Currency: mp.SetString(e.Currency), - EventParameterNumber: map[string]string{ - mpv2.EventParameterNumberValue.String(): *mp.SetFloat64(e.Value), - }, - Items: items, + Currency: mp.SetString(e.Currency), + EventParameterNumber: mp.SetStringMap(eventParameterNumber), + Items: items, } } diff --git a/measurementprotocol/v2/event/search.go b/measurementprotocol/v2/event/search.go index 730f139..c90a01e 100644 --- a/measurementprotocol/v2/event/search.go +++ b/measurementprotocol/v2/event/search.go @@ -19,9 +19,9 @@ type Search struct { } func (e *Search) MPv2() *mpv2.Event { + eventParameter := map[string]string{} + mp.AddStringMap(eventParameter, mpv2.EventParameterSearchTerm.String(), mp.SetString(e.SearchTerm)) return &mpv2.Event{ - EventParameter: map[string]string{ - mpv2.EventParameterSearchTerm.String(): *mp.SetString(e.SearchTerm), - }, + EventParameter: mp.SetStringMap(eventParameter), } } diff --git a/measurementprotocol/v2/event/signup.go b/measurementprotocol/v2/event/signup.go index 8edb972..479fba7 100644 --- a/measurementprotocol/v2/event/signup.go +++ b/measurementprotocol/v2/event/signup.go @@ -19,9 +19,9 @@ type SignUp struct { } func (e *SignUp) MPv2() *mpv2.Event { + eventParameter := map[string]string{} + mp.AddStringMap(eventParameter, mpv2.EventParameterMethod.String(), mp.SetString(e.Method)) return &mpv2.Event{ - EventParameter: map[string]string{ - mpv2.EventParameterMethod.String(): *mp.SetString(e.Method), - }, + EventParameter: mp.SetStringMap(eventParameter), } }