package msgstore import ( "text/template" lib "git.sr.ht/~cco/go-scopes" "git.sr.ht/~cco/go-scopes/storage/sql" ) var Store = func(db *sql.Storage, msg lib.Message) { q := buildQuery(db, "insert_msg", "messages") db.Exec(q, msg.Domain(), msg.Action(), msg.Class(), msg.Item(), msg.Payload()) } func buildQuery(db *sql.Storage, qname, tname string) string { t, ok := sql_templates[qname] if !ok { t = db.ParseTemplate(sql_sources[qname]) sql_templates[qname] = t } return db.SetTable(t, tname) } var sql_templates = map[string]*template.Template{} var sql_sources = map[string]string{ "insert_msg": `insert into {{ .table }} (domain, action, class, item, payload) values ($1, $2, $3, $4, $5)`, }