Work in progress: Container.QueryLast()
This commit is contained in:
parent
b01887d412
commit
cad0da95e1
2 changed files with 25 additions and 16 deletions
|
@ -5,7 +5,6 @@ package tracking
|
|||
import (
|
||||
sqllib "database/sql"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
lib "git.sr.ht/~cco/go-scopes"
|
||||
|
@ -100,32 +99,41 @@ func (cont *Container) Get(id lib.Ident) *Track {
|
|||
tr = cont.ItemFactory(cont)
|
||||
return tr.ScanP(r)
|
||||
}
|
||||
qu := lib.Map{
|
||||
quData := lib.Map{
|
||||
"schema": db.Schema,
|
||||
"tablename": cont.TableName,
|
||||
"scols": append(cont.HeadFields, "timestamp", "data", "trackid"),
|
||||
"qucols": lib.StrSlice{"trackid"},
|
||||
}
|
||||
sql := storage.BuildSql(SqlSelect, qu)
|
||||
print(sql)
|
||||
sql := storage.BuildSql(SqlSelect, quData)
|
||||
db.Query(proc, sql, id)
|
||||
fmt.Printf("%+v\n", *tr)
|
||||
return tr
|
||||
}
|
||||
|
||||
func (cont *Container) Query(headValues lib.StrSlice) *Track {
|
||||
func (cont *Container) QueryLast(hv lib.StrSlice) *Track {
|
||||
db := cont.Storage
|
||||
data := lib.Map{
|
||||
var tr *Track
|
||||
proc := func(r *sql.Rows) error {
|
||||
tr = cont.ItemFactory(cont)
|
||||
return tr.ScanP(r)
|
||||
}
|
||||
var qucols lib.StrSlice
|
||||
var quvals []any
|
||||
for i, k := range hv {
|
||||
if k != "" {
|
||||
qucols = append(qucols, cont.HeadFields[i])
|
||||
quvals = append(quvals, k)
|
||||
}
|
||||
}
|
||||
quData := lib.Map{
|
||||
"schema": db.Schema,
|
||||
"tablename": cont.TableName,
|
||||
"scols": lib.StrSlice{"taskid", "data"},
|
||||
"qucols": lib.StrSlice{"taskid", "username"},
|
||||
"scols": append(cont.HeadFields, "timestamp", "data", "trackid"),
|
||||
"qucols": qucols,
|
||||
"ordcols": lib.StrSlice{"timestamp"},
|
||||
}
|
||||
sql := storage.BuildSql(SqlSelect, data)
|
||||
//print(sql)
|
||||
_ = sql
|
||||
tr := cont.ItemFactory(cont)
|
||||
sql := storage.BuildSql(SqlSelect, quData)
|
||||
db.Query(proc, sql, quvals...)
|
||||
return tr
|
||||
}
|
||||
|
||||
|
|
|
@ -71,10 +71,11 @@ func TrackingTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
|
|||
track := cont.NewTrack(lib.StrSlice{"t01", "john"}, nil)
|
||||
t.AssertEqual(track.TrackId(), lib.Ident(1))
|
||||
t.AssertEqual(track.TimeStamp.Year(), time.Now().Year())
|
||||
//fmt.Printf("%+v\n", track.TimeStamp())
|
||||
tr2 := cont.Get(1)
|
||||
//tr2 := cont.Query(lib.StrSlice{"", "john"})
|
||||
_ = tr2
|
||||
//fmt.Printf("%+v\n", tr2.TimeStamp())
|
||||
t.AssertEqual(tr2.Head["userName"], "john")
|
||||
tr3 := cont.QueryLast(lib.StrSlice{"", "john"})
|
||||
t.AssertEqual(tr3.Head["taskId"], "t01")
|
||||
}
|
||||
|
||||
func MessageTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
|
||||
|
|
Loading…
Add table
Reference in a new issue