Monorepo for Tangled forked from tangled.org/core
Something went wrong. Try again.
1.2 kB · 68 lines
Go
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869package db
import ( "fmt" "time"
"tangled.org/core/notifier")
type Event struct { Rkey string `json:"rkey"` Nsid string `json:"nsid"` EventJson string `json:"event"` Created int64 `json:"created"`}
func (d *DB) InsertEvent(event Event, notifier *notifier.Notifier) error {
_, err := d.db.Exec( `insert into events (rkey, nsid, event, created) values (?, ?, ?, ?)`, event.Rkey, event.Nsid, event.EventJson, time.Now().UnixNano(), )
notifier.NotifyAll()
return err}
func (d *DB) GetEvents(cursor int64) ([]Event, error) { whereClause := "" args := []any{} if cursor > 0 { whereClause = "where created > ?" args = append(args, cursor) }
query := fmt.Sprintf(` select rkey, nsid, event, created from events %s order by created asc limit 100 `, whereClause)
rows, err := d.db.Query(query, args...) if err != nil { return nil, err } defer rows.Close()
var evts []Event for rows.Next() { var ev Event if err := rows.Scan(&ev.Rkey, &ev.Nsid, &ev.EventJson, &ev.Created); err != nil { return nil, err } evts = append(evts, ev) }
if err := rows.Err(); err != nil { return nil, err }
return evts, nil}