diff options
Diffstat (limited to 'entry.go')
-rw-r--r-- | entry.go | 21 |
1 files changed, 17 insertions, 4 deletions
@@ -20,9 +20,9 @@ CREATE TABLE IF NOT EXISTS entries ( );` type Entry struct { - Id int `db:"id"` + Id int `json:"-" db:"id"` Location string `json:"location" db:"location"` - Referrer string `json:"referrer" db:"referrer"` + Referrer string `json:"referrer,omitempty" db:"referrer"` StartedAt time.Time `json:"startedAt" db:"started_at"` TimeSpent int `json:"timeSpent" db:"time_spent"` ScrolledTo float32 `json:"scrolledTo" db:"scrolled_to"` @@ -36,13 +36,11 @@ func InitEntries() { log.Println("Defaulting to STATSDB=./stats.db") file = "./stats.db" } - var err error db, err = sqlx.Connect("sqlite3", file) if err != nil { log.Fatalln(err) } - _, err = db.Exec(schema) if err != nil { log.Fatalln("Could not initialize schema") @@ -61,3 +59,18 @@ func InsertEntry(entry *Entry) error { _, err := db.NamedExec(query, entry) return err } + +func CountEntries() (count uint, err error) { + err = db.Get(&count, "SELECT COUNT(*) FROM entries;") + return +} + +func AllEntries() (entries []Entry, err error) { + err = db.Select(&entries, "SELECT * FROM entries;") + return +} + +func ListEntries(from, count uint) (entries []Entry, err error) { + err = db.Select(&entries, "SELECT * FROM entries LIMIT ? OFFSET ?;", count, from) + return +} |