From 885afb223b3a56f6fee51cf2ffcfb95dcf1e3041 Mon Sep 17 00:00:00 2001 From: Taha Yassine Kraiem Date: Fri, 28 Jan 2022 20:41:28 +0100 Subject: [PATCH] feat(db): session structure use sql.NullString instead of string --- backend/pkg/db/cache/messages_common.go | 3 +- backend/pkg/db/types/session.go | 66 +++++++++++++------------ 2 files changed, 36 insertions(+), 33 deletions(-) diff --git a/backend/pkg/db/cache/messages_common.go b/backend/pkg/db/cache/messages_common.go index a99ef259a..cc5d54f2c 100644 --- a/backend/pkg/db/cache/messages_common.go +++ b/backend/pkg/db/cache/messages_common.go @@ -1,6 +1,7 @@ package cache import ( + "database/sql" . "openreplay/backend/pkg/messages" // . "openreplay/backend/pkg/db/types" ) @@ -50,7 +51,7 @@ func (c *PGCache) InsertUserAnonymousID(sessionID uint64, userAnonymousID *IOSUs if err != nil { return err } - session.UserAnonymousID = userAnonymousID.Value + session.UserAnonymousID = sql.NullString{userAnonymousID.Value,true} return nil } diff --git a/backend/pkg/db/types/session.go b/backend/pkg/db/types/session.go index f9d696223..5a841a6d3 100644 --- a/backend/pkg/db/types/session.go +++ b/backend/pkg/db/types/session.go @@ -1,33 +1,35 @@ package types +import "database/sql" + type Session struct { - SessionID uint64 `db:"session_id" json:"session_id;omitempty"` - Timestamp uint64 `db:"start_ts" json:"start_ts;omitempty"` - ProjectID uint32 `db:"project_id" json:"project_id;omitempty"` - TrackerVersion string `db:"tracker_version" json:"tracker_version;omitempty"` - RevID string `db:"rev_id" json:"rev_id;omitempty"` - UserUUID string `db:"user_uuid" json:"user_uuid;omitempty"` - UserOS string `db:"user_os" json:"user_os;omitempty"` - UserOSVersion string `db:"user_os_version" json:"user_os_version;omitempty"` - UserDevice string `db:"user_device" json:"user_device;omitempty"` - UserCountry string `db:"user_country" json:"user_country;omitempty"` + SessionID uint64 `db:"session_id" json:"session_id;omitempty"` + Timestamp uint64 `db:"start_ts" json:"start_ts;omitempty"` + ProjectID uint32 `db:"project_id" json:"project_id;omitempty"` + TrackerVersion sql.NullString `db:"tracker_version" json:"tracker_version;omitempty"` + RevID sql.NullString `db:"rev_id" json:"rev_id;omitempty"` + UserUUID string `db:"user_uuid" json:"user_uuid;omitempty"` + UserOS sql.NullString `db:"user_os" json:"user_os;omitempty"` + UserOSVersion sql.NullString `db:"user_os_version" json:"user_os_version;omitempty"` + UserDevice sql.NullString `db:"user_device" json:"user_device;omitempty"` + UserCountry string `db:"user_country" json:"user_country;omitempty"` Duration *uint64 `db:"duration" json:"duration;omitempty"` PagesCount int EventsCount int ErrorsCount int - UserID string `db:"user_id" json:"user_id;omitempty"` - UserAnonymousID string `db:"user_anonymous_id" json:"user_anonymous_id;omitempty"` - Metadata1 string `db:"metadata_1" json:"metadata_1;omitempty"` - Metadata2 string `db:"metadata_2" json:"metadata_2;omitempty"` - Metadata3 string `db:"metadata_3" json:"metadata_3;omitempty"` - Metadata4 string `db:"metadata_4" json:"metadata_4;omitempty"` - Metadata5 string `db:"metadata_5" json:"metadata_5;omitempty"` - Metadata6 string `db:"metadata_6" json:"metadata_6;omitempty"` - Metadata7 string `db:"metadata_7" json:"metadata_7;omitempty"` - Metadata8 string `db:"metadata_8" json:"metadata_8;omitempty"` - Metadata9 string `db:"metadata_9" json:"metadata_9;omitempty"` - Metadata10 string `db:"metadata_10" json:"metadata_10;omitempty"` + UserID sql.NullString `db:"user_id" json:"user_id;omitempty"` + UserAnonymousID sql.NullString `db:"user_anonymous_id" json:"user_anonymous_id;omitempty"` + Metadata1 sql.NullString `db:"metadata_1" json:"metadata_1;omitempty"` + Metadata2 sql.NullString `db:"metadata_2" json:"metadata_2;omitempty"` + Metadata3 sql.NullString `db:"metadata_3" json:"metadata_3;omitempty"` + Metadata4 sql.NullString `db:"metadata_4" json:"metadata_4;omitempty"` + Metadata5 sql.NullString `db:"metadata_5" json:"metadata_5;omitempty"` + Metadata6 sql.NullString `db:"metadata_6" json:"metadata_6;omitempty"` + Metadata7 sql.NullString `db:"metadata_7" json:"metadata_7;omitempty"` + Metadata8 sql.NullString `db:"metadata_8" json:"metadata_8;omitempty"` + Metadata9 sql.NullString `db:"metadata_9" json:"metadata_9;omitempty"` + Metadata10 sql.NullString `db:"metadata_10" json:"metadata_10;omitempty"` Platform string // Only-web properties @@ -42,24 +44,24 @@ type Session struct { func (s *Session) SetMetadata(keyNo uint, value string) { switch keyNo { case 1: - s.Metadata1 = value + s.Metadata1 = sql.NullString{value,true} case 2: - s.Metadata2 = value + s.Metadata2 = sql.NullString{value,true} case 3: - s.Metadata3 = value + s.Metadata3 = sql.NullString{value,true} case 4: - s.Metadata4 = value + s.Metadata4 = sql.NullString{value,true} case 5: - s.Metadata5 = value + s.Metadata5 = sql.NullString{value,true} case 6: - s.Metadata6 = value + s.Metadata6 = sql.NullString{value,true} case 7: - s.Metadata7 = value + s.Metadata7 = sql.NullString{value,true} case 8: - s.Metadata8 = value + s.Metadata8 = sql.NullString{value,true} case 9: - s.Metadata9 = value + s.Metadata9 = sql.NullString{value,true} case 10: - s.Metadata10 = value + s.Metadata10 = sql.NullString{value,true} } }