goblog/db.go
kageru 99d20cf1f6
Made template prettier
Also more formatting for the output. This is now actually usable.
2018-11-04 22:05:48 +01:00

49 lines
1.2 KiB
Go

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) {
stmt, _ := db.Prepare("INSERT INTO blogposts(author, title, content, time) VALUES (?, ?, ?, ?)")
stmt.Exec(post.Author, post.Title, post.Content, time.Now().Unix())
}
func readBlogpostsFromDB() []BlogPost {
res, err := db.Query("SELECT content, author, title, time from blogposts")
if err != nil {
log.Println("Error reading blogposts")
return make([]BlogPost, 0)
} else {
return resultToBlogposts(res)
}
}
func resultToBlogposts(res *sql.Rows) []BlogPost {
defer res.Close()
entries := make([]BlogPost, 0)
for res.Next() {
var content, author, title string
var timeInt int64
res.Scan(&content, &author, &title, &timeInt)
post := BlogPost{Content:content, Author:author, Title:title, FTime:time.Unix(timeInt, 0).Format("02.01.2006 - 15:04:05")}
entries = append(entries, post)
}
return entries
}