some more: simplify / unify Track creation

This commit is contained in:
Helmut Merz 2024-05-02 15:16:58 +02:00
parent 14bb005f08
commit 3a2db7146f
3 changed files with 12 additions and 18 deletions

View file

@ -10,16 +10,16 @@ type message struct {
*tracking.BaseTrack
}
func Message(tr *tracking.BaseTrack) *message {
return &message{tr}
}
func MakeMessage(c *tracking.Container, h ...string) tracking.Track {
h = append(h, "") // make sure at least domain is there
if h[0] == "" {
h[0] = "scopes"
}
return Message(tracking.MakeBaseTrack(c, h...))
return &message{tracking.MakeBaseTrack(c, h...)}
}
func New(cont *tracking.Container, h ...string) *message {
return tracking.New(cont, h...).(*message)
}
func (msg *message) Base() *tracking.BaseTrack {
@ -30,16 +30,10 @@ func (msg *message) Domain() string {
return msg.Head()["domain"]
}
// message container
func Messages(db *sql.Storage) *tracking.Container {
return &tracking.Container{container_definition, db}
}
func New(cont *tracking.Container, h ...string) *message {
return cont.Make(h...).(*message)
}
// message store action handler
func Store(act lib.Action) bool {

View file

@ -58,6 +58,10 @@ func MakeTrack(cont *Container, h ...string) Track {
return MakeBaseTrack(cont, h...)
}
func New(cont *Container, h ...string) Track {
return cont.ItemFactory(cont, h...)
}
func (tr *track) Base() *BaseTrack {
return tr
}
@ -151,10 +155,6 @@ func Tracks(db *sql.Storage) *Container {
return &Container{container_definition, db}
}
func (cont *Container) Make(h ...string) Track {
return cont.ItemFactory(cont, h...)
}
type querySpec struct {
Table string
Headvals lib.StrSlice
@ -224,7 +224,7 @@ func (cont *Container) QueryLast(hv ...string) Track {
func (cont *Container) QueryOne(quSpec *querySpec) Track {
var tr Track
proc := func(r *sql.Rows) error {
tr = cont.Make()
tr = New(cont)
return tr.Base().ScanP(r)
}
quSpec.setup(cont)
@ -236,7 +236,7 @@ func (cont *Container) QueryOne(quSpec *querySpec) Track {
func (cont *Container) Query(quSpec *querySpec) []Track {
var trs []Track
proc := func(r *sql.Rows) error {
tr := cont.Make()
tr := New(cont)
err := tr.Base().ScanP(r)
if err == nil {
trs = append(trs, tr)

View file

@ -68,7 +68,7 @@ func BaseTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
func TrackingTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
cont := tracking.Tracks(db)
cont.CreateTable()
track := cont.Make("t01", "john")
track := tracking.New(cont, "t01", "john")
cont.Insert(track)
t.AssertEqual(track.TrackId(), lib.Ident(1))
t.AssertEqual(track.TimeStamp().Year(), time.Now().Year())