Add navigation

This commit is contained in:
Senad Uka
2022-02-16 19:11:48 +01:00
parent 47987ff395
commit ba918d1f57
7 changed files with 113 additions and 4 deletions

View File

@@ -1,6 +1,7 @@
package server
import (
"fmt"
"github.com/gorilla/mux"
"gitlab.com/kbr4/svevijesti/internal/database"
"net/http"
@@ -21,9 +22,51 @@ func rootHandler(wr http.ResponseWriter, req *http.Request) {
http.Error(wr, err.Error(), http.StatusInternalServerError)
}
dayBefore := "/dan/" + time.Now().Add(-24*time.Hour).Format("2006-01-02")
data := map[string]interface{}{
"title": title,
"articles": articles,
"previous": dayBefore,
"next": "/",
}
err = templates.ExecuteTemplate(wr, "homeHTML", data)
if err != nil {
http.Error(wr, err.Error(), http.StatusInternalServerError)
}
}
func dailyArticlesHandler(wr http.ResponseWriter, req *http.Request) {
vars := mux.Vars(req)
day, err := time.Parse("2006-01-02", vars["date"])
if err != nil {
http.Error(wr, err.Error(), http.StatusNotFound)
}
dayBefore := "/dan/" + day.Add(-24*time.Hour).Format("2006-01-02")
dayAfter := "/dan/" + day.Add(24*time.Hour).Format("2006-01-02")
if day.Add(24*time.Hour).Format("2006-01-02") == time.Now().Format("2006-01-02") {
dayAfter = "/"
}
title := fmt.Sprintf("Stare novine na dan %s", day.Format("2006-01-02"))
store, err := database.Connect()
if err != nil {
http.Error(wr, err.Error(), http.StatusInternalServerError)
}
defer store.Close()
articles, err := database.ArticlesForDay(store, day)
if err != nil {
http.Error(wr, err.Error(), http.StatusInternalServerError)
}
data := map[string]interface{}{
"title": title,
"articles": articles,
"previous": dayBefore,
"next": dayAfter,
}
err = templates.ExecuteTemplate(wr, "homeHTML", data)
@@ -50,10 +93,14 @@ func articleHandler(wr http.ResponseWriter, req *http.Request) {
http.Error(wr, err.Error(), http.StatusNotFound)
}
next, previous, _ := database.PreviousAndNextArticleUrlByID(store, articleID)
title := article.Title
data := map[string]interface{}{
"title": title,
"article": article,
"title": title,
"article": article,
"previous": previous,
"next": next,
}
err = templates.ExecuteTemplate(wr, "articleHTML", data)

View File

@@ -39,7 +39,8 @@ func init() {
func CreateRoutes() *mux.Router {
r := mux.NewRouter()
r.HandleFunc("/", rootHandler)
r.HandleFunc("/dan/{date}", dailyArticlesHandler)
r.HandleFunc("/{id:[0-9]+}/{slug}", articleHandler)
r.HandleFunc("/", rootHandler)
return r
}