simplify / unify Track creation

This commit is contained in:
Helmut Merz 2024-05-02 15:01:38 +02:00
parent 601ca4715a
commit 14bb005f08
3 changed files with 10 additions and 11 deletions

View file

@ -37,7 +37,7 @@ func Messages(db *sql.Storage) *tracking.Container {
} }
func New(cont *tracking.Container, h ...string) *message { func New(cont *tracking.Container, h ...string) *message {
return cont.NewTrack(h, nil).(*message) return cont.Make(h...).(*message)
} }
// message store action handler // message store action handler

View file

@ -151,6 +151,10 @@ func Tracks(db *sql.Storage) *Container {
return &Container{container_definition, db} return &Container{container_definition, db}
} }
func (cont *Container) Make(h ...string) Track {
return cont.ItemFactory(cont, h...)
}
type querySpec struct { type querySpec struct {
Table string Table string
Headvals lib.StrSlice Headvals lib.StrSlice
@ -220,7 +224,7 @@ func (cont *Container) QueryLast(hv ...string) Track {
func (cont *Container) QueryOne(quSpec *querySpec) Track { func (cont *Container) QueryOne(quSpec *querySpec) Track {
var tr Track var tr Track
proc := func(r *sql.Rows) error { proc := func(r *sql.Rows) error {
tr = cont.ItemFactory(cont) tr = cont.Make()
return tr.Base().ScanP(r) return tr.Base().ScanP(r)
} }
quSpec.setup(cont) quSpec.setup(cont)
@ -232,7 +236,7 @@ func (cont *Container) QueryOne(quSpec *querySpec) Track {
func (cont *Container) Query(quSpec *querySpec) []Track { func (cont *Container) Query(quSpec *querySpec) []Track {
var trs []Track var trs []Track
proc := func(r *sql.Rows) error { proc := func(r *sql.Rows) error {
tr := cont.ItemFactory(cont) tr := cont.Make()
err := tr.Base().ScanP(r) err := tr.Base().ScanP(r)
if err == nil { if err == nil {
trs = append(trs, tr) trs = append(trs, tr)
@ -245,13 +249,6 @@ func (cont *Container) Query(quSpec *querySpec) []Track {
return trs return trs
} }
func (cont *Container) NewTrack(h []string, data lib.Map) Track {
tr := cont.ItemFactory(cont, h...)
tr.SetData(data)
cont.Insert(tr)
return tr
}
func (cont *Container) Save(tr Track) Track { func (cont *Container) Save(tr Track) Track {
return tr return tr
} }

View file

@ -68,7 +68,8 @@ func BaseTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
func TrackingTest(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 := tracking.Tracks(db)
cont.CreateTable() cont.CreateTable()
track := cont.NewTrack(lib.StrSlice{"t01", "john"}, nil) track := cont.Make("t01", "john")
cont.Insert(track)
t.AssertEqual(track.TrackId(), lib.Ident(1)) t.AssertEqual(track.TrackId(), lib.Ident(1))
t.AssertEqual(track.TimeStamp().Year(), time.Now().Year()) t.AssertEqual(track.TimeStamp().Year(), time.Now().Year())
tr2 := cont.Get(1) tr2 := cont.Get(1)
@ -88,6 +89,7 @@ func MessageTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
cont := message.Messages(db) cont := message.Messages(db)
cont.CreateTable() cont.CreateTable()
msg := message.New(cont, "", "data") msg := message.New(cont, "", "data")
cont.Insert(msg)
t.AssertEqual(msg.TrackId(), lib.Ident(1)) t.AssertEqual(msg.TrackId(), lib.Ident(1))
t.AssertEqual(msg.Domain(), "scopes") t.AssertEqual(msg.Domain(), "scopes")
t.AssertEqual(msg.Uid(), "msg-1") t.AssertEqual(msg.Uid(), "msg-1")