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
|
*tracking.BaseTrack
|
||||||
}
|
}
|
||||||
|
|
||||||
func Message(tr *tracking.BaseTrack) *message {
|
|
||||||
return &message{tr}
|
|
||||||
}
|
|
||||||
|
|
||||||
func MakeMessage(c *tracking.Container, h ...string) tracking.Track {
|
func MakeMessage(c *tracking.Container, h ...string) tracking.Track {
|
||||||
h = append(h, "") // make sure at least domain is there
|
h = append(h, "") // make sure at least domain is there
|
||||||
if h[0] == "" {
|
if h[0] == "" {
|
||||||
h[0] = "scopes"
|
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 {
|
func (msg *message) Base() *tracking.BaseTrack {
|
||||||
|
@ -30,16 +30,10 @@ func (msg *message) Domain() string {
|
||||||
return msg.Head()["domain"]
|
return msg.Head()["domain"]
|
||||||
}
|
}
|
||||||
|
|
||||||
// message container
|
|
||||||
|
|
||||||
func Messages(db *sql.Storage) *tracking.Container {
|
func Messages(db *sql.Storage) *tracking.Container {
|
||||||
return &tracking.Container{container_definition, db}
|
return &tracking.Container{container_definition, db}
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(cont *tracking.Container, h ...string) *message {
|
|
||||||
return cont.Make(h...).(*message)
|
|
||||||
}
|
|
||||||
|
|
||||||
// message store action handler
|
// message store action handler
|
||||||
|
|
||||||
func Store(act lib.Action) bool {
|
func Store(act lib.Action) bool {
|
||||||
|
|
|
@ -58,6 +58,10 @@ func MakeTrack(cont *Container, h ...string) Track {
|
||||||
return MakeBaseTrack(cont, h...)
|
return MakeBaseTrack(cont, h...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func New(cont *Container, h ...string) Track {
|
||||||
|
return cont.ItemFactory(cont, h...)
|
||||||
|
}
|
||||||
|
|
||||||
func (tr *track) Base() *BaseTrack {
|
func (tr *track) Base() *BaseTrack {
|
||||||
return tr
|
return tr
|
||||||
}
|
}
|
||||||
|
@ -151,10 +155,6 @@ 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
|
||||||
|
@ -224,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.Make()
|
tr = New(cont)
|
||||||
return tr.Base().ScanP(r)
|
return tr.Base().ScanP(r)
|
||||||
}
|
}
|
||||||
quSpec.setup(cont)
|
quSpec.setup(cont)
|
||||||
|
@ -236,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.Make()
|
tr := New(cont)
|
||||||
err := tr.Base().ScanP(r)
|
err := tr.Base().ScanP(r)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
trs = append(trs, tr)
|
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) {
|
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.Make("t01", "john")
|
track := tracking.New(cont, "t01", "john")
|
||||||
cont.Insert(track)
|
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())
|
||||||
|
|
Loading…
Add table
Reference in a new issue