some more: simplify / unify Track creation
This commit is contained in:
parent
14bb005f08
commit
3a2db7146f
3 changed files with 12 additions and 18 deletions
|
@ -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 {
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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())
|
||||
|
|
Loading…
Add table
Reference in a new issue