Pracownia.Programowania/main.go

59 lines
1.2 KiB
Go

package main
import (
"fmt"
"html/template"
"net/http"
"github.com/blog/models"
)
var posts map[string]*models.Post
func index(w http.ResponseWriter, r *http.Request) {
fmt.Println(posts)
t, err := template.ParseFiles(
"views/write.html",
"views/header.html",
"views/footer.html",
)
if err != nil {
fmt.Fprintf(w, err.Error())
}
t.ExecuteTemplate(w, "write", nil)
}
func write(w http.ResponseWriter, r *http.Request) {
t, err := template.ParseFiles(
"views/index.html",
"views/header.html",
"views/footer.html",
)
if err != nil {
fmt.Fprintf(w, err.Error())
}
t.ExecuteTemplate(w, "index", nil)
}
func savePost(w http.ResponseWriter, r *http.Request) {
id := r.FormValue("id")
title := r.FormValue("title")
content := r.FormValue("content")
post := models.NewPost(id, title, content)
post[post.Id] = post
http.Redirect(w, r, "/", 302)
}
func main() {
posts = make(map[string]*models.Post, 0)
fmt.Println("Listening port 8080")
http.Handle("/bower_components/", http.StripPrefix("/bower_components/", http.FileServer(http.Dir("./bower_components/"))))
http.HandleFunc("/", index)
http.HandleFunc("/write", write)
http.HandleFunc("/savePost", savePost)
http.ListenAndServe(":8080", nil)
}