storage/message: insert new message

This commit is contained in:
Helmut Merz 2024-03-28 10:59:00 +01:00
parent c49a8390d7
commit 27771b3ebe
3 changed files with 21 additions and 9 deletions

View file

@ -6,8 +6,20 @@ 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{
ItemFactory: MakeMessage,
TableName: "messages", TableName: "messages",
HeadFields: []string{"domain", "action", "class", "item"}, HeadFields: []string{"domain", "action", "class", "item"},
Indexes: [][]string{ Indexes: [][]string{

View file

@ -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

View file

@ -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) {