work in progress: storage/tracking
This commit is contained in:
parent
16c9b87d3c
commit
3923d49666
3 changed files with 30 additions and 6 deletions
|
@ -1,6 +1,6 @@
|
||||||
package tracking
|
package tracking
|
||||||
|
|
||||||
const sql_table = `
|
const Sql_table = `
|
||||||
create table {{ .tablename }} (
|
create table {{ .tablename }} (
|
||||||
trackid {{ .idType }} primary key,
|
trackid {{ .idType }} primary key,
|
||||||
{{- range .headFields -}}{{ . }} text,
|
{{- range .headFields -}}{{ . }} text,
|
||||||
|
|
|
@ -6,10 +6,27 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
lib "git.sr.ht/~cco/go-scopes"
|
lib "git.sr.ht/~cco/go-scopes"
|
||||||
|
sql "git.sr.ht/~cco/go-scopes/storage"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Track struct {
|
type Track struct {
|
||||||
head map[string]string
|
TrackId uint
|
||||||
timestamp *time.Time
|
Head map[string]string
|
||||||
data lib.Payload
|
TimeStamp *time.Time
|
||||||
|
Data lib.Payload
|
||||||
|
Container *Container
|
||||||
|
}
|
||||||
|
|
||||||
|
type Container struct {
|
||||||
|
headFields []string
|
||||||
|
indexes [][]string
|
||||||
|
storage *sql.Storage
|
||||||
|
}
|
||||||
|
|
||||||
|
func MakeContainer(st *sql.Storage) Container {
|
||||||
|
return Container{
|
||||||
|
headFields: []string{"taskId", "userName"},
|
||||||
|
indexes: [][]string{[]string{"taskId", "userName"}, []string{"userName"}},
|
||||||
|
storage: st,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
_ "git.sr.ht/~cco/go-scopes/storage/db/pgsql"
|
_ "git.sr.ht/~cco/go-scopes/storage/db/pgsql"
|
||||||
_ "git.sr.ht/~cco/go-scopes/storage/db/sqlite"
|
_ "git.sr.ht/~cco/go-scopes/storage/db/sqlite"
|
||||||
msgstore "git.sr.ht/~cco/go-scopes/storage/message"
|
msgstore "git.sr.ht/~cco/go-scopes/storage/message"
|
||||||
|
"git.sr.ht/~cco/go-scopes/storage/tracking"
|
||||||
"git.sr.ht/~cco/go-scopes/tests/etc"
|
"git.sr.ht/~cco/go-scopes/tests/etc"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -30,7 +31,8 @@ func TestPgsql(tb *tbase.T) {
|
||||||
|
|
||||||
func DoTests(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
|
func DoTests(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
|
||||||
t.Run("base", func(t *testing.T) { BaseTest(t, cfg, db) })
|
t.Run("base", func(t *testing.T) { BaseTest(t, cfg, db) })
|
||||||
t.Run("message", func(t *testing.T) { MsgstoreTest(t, cfg, db) })
|
t.Run("message", func(t *testing.T) { MessageTest(t, cfg, db) })
|
||||||
|
t.Run("tracking", func(t *testing.T) { TrackingTest(t, cfg, db) })
|
||||||
}
|
}
|
||||||
|
|
||||||
type greet struct {
|
type greet struct {
|
||||||
|
@ -60,11 +62,16 @@ func BaseTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
|
||||||
t.AssertEqual(data[1].label, "Good Afternoon")
|
t.AssertEqual(data[1].label, "Good Afternoon")
|
||||||
}
|
}
|
||||||
|
|
||||||
func MsgstoreTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
|
func MessageTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
|
||||||
msg := message.SimpleMessage("data")
|
msg := message.SimpleMessage("data")
|
||||||
msgstore.StoreDB(db, msg)
|
msgstore.StoreDB(db, msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TrackingTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
|
||||||
|
_ = tracking.Sql_table
|
||||||
|
_ = tracking.MakeContainer(db)
|
||||||
|
}
|
||||||
|
|
||||||
func resetSqlite(db *sql.Storage) {
|
func resetSqlite(db *sql.Storage) {
|
||||||
db.DropTable("test")
|
db.DropTable("test")
|
||||||
db.Exec(sqlite_create_table)
|
db.Exec(sqlite_create_table)
|
||||||
|
|
Loading…
Add table
Reference in a new issue