storage/message: insert new message
This commit is contained in:
parent
c49a8390d7
commit
27771b3ebe
3 changed files with 21 additions and 9 deletions
|
@ -6,10 +6,22 @@ import (
|
||||||
"git.sr.ht/~cco/go-scopes/storage/tracking"
|
"git.sr.ht/~cco/go-scopes/storage/tracking"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type message struct {
|
||||||
|
tracking.Track
|
||||||
|
}
|
||||||
|
|
||||||
|
func MakeMessage(t *tracking.TrackTemplate) tracking.Track {
|
||||||
|
if t.Head["domain"] == "" {
|
||||||
|
t.Head["domain"] = "scopes"
|
||||||
|
}
|
||||||
|
return &message{tracking.MakeTrack(t)}
|
||||||
|
}
|
||||||
|
|
||||||
func Messages(db *sql.Storage) *tracking.Container {
|
func Messages(db *sql.Storage) *tracking.Container {
|
||||||
return &tracking.Container{
|
return &tracking.Container{
|
||||||
TableName: "messages",
|
ItemFactory: MakeMessage,
|
||||||
HeadFields: []string{"domain", "action", "class", "item"},
|
TableName: "messages",
|
||||||
|
HeadFields: []string{"domain", "action", "class", "item"},
|
||||||
Indexes: [][]string{
|
Indexes: [][]string{
|
||||||
[]string{"domain", "action", "class", "item"},
|
[]string{"domain", "action", "class", "item"},
|
||||||
[]string{"domain", "class", "item"},
|
[]string{"domain", "class", "item"},
|
||||||
|
|
|
@ -104,10 +104,13 @@ func Tracks(db *sql.Storage) *Container {
|
||||||
func (cont *Container) New(headValues lib.StrSlice, data lib.Map) Track {
|
func (cont *Container) New(headValues lib.StrSlice, data lib.Map) Track {
|
||||||
head := lib.StrMap{}
|
head := lib.StrMap{}
|
||||||
for i, k := range cont.HeadFields {
|
for i, k := range cont.HeadFields {
|
||||||
|
if i >= len(headValues) {
|
||||||
|
break
|
||||||
|
}
|
||||||
head[k] = headValues[i]
|
head[k] = headValues[i]
|
||||||
}
|
}
|
||||||
//tr := &track{head: head, data: data}
|
//tr := &track{head: head, data: data}
|
||||||
tr := cont.ItemFactory(&TrackTemplate{Head: head, Data: data})
|
tr := cont.ItemFactory(&TrackTemplate{Head: head, Data: data, Container: cont})
|
||||||
cont.insert(tr)
|
cont.insert(tr)
|
||||||
return tr
|
return tr
|
||||||
}
|
}
|
||||||
|
@ -142,10 +145,7 @@ func (cont *Container) insert(tr Track) lib.Ident {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := db.Query(proc, sql, values...); err == nil {
|
if err := db.Query(proc, sql, values...); err == nil {
|
||||||
tr.Update(&TrackTemplate{TrackId: trid, TimeStamp: ts, Container: cont})
|
tr.Update(&TrackTemplate{TrackId: trid, TimeStamp: ts})
|
||||||
//tr.trackId = trid
|
|
||||||
//tr.timeStamp = ts
|
|
||||||
//tr.container = cont
|
|
||||||
return trid
|
return trid
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
|
|
|
@ -79,8 +79,8 @@ func MessageTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
|
||||||
//msgstore.StoreDB(db, msg)
|
//msgstore.StoreDB(db, msg)
|
||||||
cont := message.Messages(db)
|
cont := message.Messages(db)
|
||||||
cont.CreateTable()
|
cont.CreateTable()
|
||||||
//msg := cont.New(lib.StrSlice("", "data"), lib.Map{})
|
msg := cont.New(lib.StrSlice{"", "data"}, lib.Map{})
|
||||||
//t.AssertEqual(msg.TrackId(), lib.Ident(1))
|
t.AssertEqual(msg.TrackId(), lib.Ident(1))
|
||||||
}
|
}
|
||||||
|
|
||||||
func resetSqlite(db *sql.Storage) {
|
func resetSqlite(db *sql.Storage) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue