2018-11-04 17:52:58 +01:00
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 )
2018-11-04 22:05:48 +01:00
post := BlogPost { Content : content , Author : author , Title : title , FTime : time . Unix ( timeInt , 0 ) . Format ( "02.01.2006 - 15:04:05" ) }
2018-11-04 17:52:58 +01:00
entries = append ( entries , post )
}
return entries
}