feat(db): session structure use sql.NullString instead of string

This commit is contained in:
Taha Yassine Kraiem 2022-01-28 20:41:28 +01:00
parent ce7ee1dc0b
commit 885afb223b
2 changed files with 36 additions and 33 deletions

View file

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

View file

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