goblog/db.go

49 lines
1.2 KiB
Go
Raw Normal View History

package main
import (
"database/sql"
"time"
_ "github.com/mattn/go-sqlite3"
"log"
)
var db *sql.DB
func initializeDatabase() {
dbo, err := sql.Open("sqlite3", "content")
if err != nil {
log.Fatal("couldn’t open database. exiting...")
return
}
db = dbo
}
func writeToDB(post BlogPost) {
2018-11-04 22:14:34 +01:00
stmt, _ := db.Prepare("INSERT INTO blogposts(author, content, time) VALUES (?, ?, ?)")
stmt.Exec(post.Author, post.Content, time.Now().Unix())
}
func readBlogpostsFromDB() []BlogPost {
2018-11-04 22:22:24 +01:00
res, err := db.Query("SELECT content, author, time from blogposts limit 50")
if err != nil {
2018-11-04 22:22:24 +01:00
log.Println("Error reading blogposts", err)
return make([]BlogPost, 0)
} else {
return resultToBlogposts(res)
}
}
func resultToBlogposts(res *sql.Rows) []BlogPost {
defer res.Close()
entries := make([]BlogPost, 0)
for res.Next() {
2018-11-04 22:14:34 +01:00
var content, author string
var timeInt int64
2018-11-04 22:14:34 +01:00
res.Scan(&content, &author, &timeInt)
2018-11-04 22:22:24 +01:00
post := BlogPost{Content:content, Author:author, FTime:time.Unix(timeInt, 0).Format("02.01. 15:04:05")}
entries = append(entries, post)
}
return entries
}