diff --git a/cmd/web/handlers.go b/cmd/web/handlers.go index 823be4c..ff76867 100644 --- a/cmd/web/handlers.go +++ b/cmd/web/handlers.go @@ -3,7 +3,6 @@ package main import ( "errors" "fmt" - "html/template" "net/http" "strconv" @@ -15,20 +14,29 @@ func (app *application) home(w http.ResponseWriter, r *http.Request) { app.notFound(w) return } - files := []string{ - "./ui/html/base.tmpl", - "./ui/html/partials/nav.tmpl", - "./ui/html/pages/home.tmpl", - } - ts, err := template.ParseFiles(files...) + + snippets, err := app.snippets.Latest() if err != nil { app.serverError(w, err) return } - err = ts.ExecuteTemplate(w, "base", nil) - if err != nil { - app.serverError(w, err) + for _, snippet := range snippets { + fmt.Fprintf(w, "%+v\n", snippet) } + // files := []string{ + // "./ui/html/base.tmpl", + // "./ui/html/partials/nav.tmpl", + // "./ui/html/pages/home.tmpl", + // } + // ts, err := template.ParseFiles(files...) + // if err != nil { + // app.serverError(w, err) + // return + // } + // err = ts.ExecuteTemplate(w, "base", nil) + // if err != nil { + // app.serverError(w, err) + // } } func (app *application) snippetView(w http.ResponseWriter, r *http.Request) { diff --git a/internal/models/snippets.go b/internal/models/snippets.go index ad5389f..0b0fdb4 100644 --- a/internal/models/snippets.go +++ b/internal/models/snippets.go @@ -50,5 +50,25 @@ func (m *SnippetModel) Get(id int) (*Snippet, error) { } func (m *SnippetModel) Latest() ([]*Snippet, error) { - return nil, nil + stmt := `SELECT id, title, content, created, expires FROM snippets + WHERE expires > UTC_TIMESTAMP() ORDER BY id DESC LIMIT 10` + + rows, err := m.DB.Query(stmt) + if err != nil { + return nil, err + } + defer rows.Close() + snippets := []*Snippet{} + for rows.Next() { + s := &Snippet{} + err = rows.Scan(&s.ID, &s.Title, &s.Content, &s.Created, &s.Expires) + if err != nil { + return nil, err + } + snippets = append(snippets, s) + } + if err = rows.Err(); err != nil { + return nil, err + } + return snippets, nil }