2018-12-08 23:15:39 +01:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"html/template"
|
|
|
|
"net/http"
|
2018-12-10 19:42:28 +01:00
|
|
|
|
2018-12-11 20:42:44 +01:00
|
|
|
"git.wmi.amu.edu.pl/s439508/Pracownia.Programowania/helpers"
|
|
|
|
"git.wmi.amu.edu.pl/s439508/Pracownia.Programowania/models"
|
2018-12-08 23:15:39 +01:00
|
|
|
)
|
|
|
|
|
2018-12-10 19:42:28 +01:00
|
|
|
var posts map[string]*models.Post
|
|
|
|
|
2018-12-08 23:15:39 +01:00
|
|
|
func index(w http.ResponseWriter, r *http.Request) {
|
2018-12-10 19:42:28 +01:00
|
|
|
fmt.Println(posts)
|
|
|
|
t, err := template.ParseFiles(
|
|
|
|
"views/write.html",
|
|
|
|
"views/header.html",
|
|
|
|
"views/footer.html",
|
2018-12-11 20:42:44 +01:00
|
|
|
"views/index.html",
|
2018-12-10 19:42:28 +01:00
|
|
|
)
|
|
|
|
if err != nil {
|
|
|
|
fmt.Fprintf(w, err.Error())
|
|
|
|
}
|
2018-12-11 20:42:44 +01:00
|
|
|
t.ExecuteTemplate(w, "index", posts)
|
2018-12-10 19:42:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
func write(w http.ResponseWriter, r *http.Request) {
|
2018-12-08 23:15:39 +01:00
|
|
|
t, err := template.ParseFiles(
|
|
|
|
"views/index.html",
|
|
|
|
"views/header.html",
|
|
|
|
"views/footer.html",
|
2018-12-11 20:42:44 +01:00
|
|
|
"views/write.html",
|
|
|
|
)
|
|
|
|
if err != nil {
|
|
|
|
fmt.Fprintf(w, err.Error())
|
|
|
|
}
|
|
|
|
t.ExecuteTemplate(w, "write", nil)
|
|
|
|
}
|
|
|
|
|
|
|
|
func edit(w http.ResponseWriter, r *http.Request) {
|
|
|
|
t, err := template.ParseFiles(
|
|
|
|
"views/index.html",
|
|
|
|
"views/header.html",
|
|
|
|
"views/footer.html",
|
|
|
|
"views/write.html",
|
2018-12-08 23:15:39 +01:00
|
|
|
)
|
|
|
|
if err != nil {
|
|
|
|
fmt.Fprintf(w, err.Error())
|
|
|
|
}
|
2018-12-11 20:42:44 +01:00
|
|
|
id := r.FormValue("id")
|
|
|
|
post, found := posts[id]
|
|
|
|
if !found {
|
|
|
|
http.NotFound(w, r)
|
|
|
|
}
|
|
|
|
t.ExecuteTemplate(w, "write", post)
|
2018-12-08 23:15:39 +01:00
|
|
|
}
|
|
|
|
|
2018-12-10 19:42:28 +01:00
|
|
|
func savePost(w http.ResponseWriter, r *http.Request) {
|
|
|
|
id := r.FormValue("id")
|
|
|
|
title := r.FormValue("title")
|
|
|
|
content := r.FormValue("content")
|
|
|
|
|
2018-12-11 20:42:44 +01:00
|
|
|
var post *models.Post
|
|
|
|
if id != "" {
|
|
|
|
post = posts[id]
|
|
|
|
post.Title = title
|
|
|
|
post.Content = content
|
|
|
|
} else {
|
|
|
|
post := models.NewPost(helpers.GenerateId(), title, content)
|
|
|
|
posts[post.Id] = post
|
|
|
|
}
|
|
|
|
|
|
|
|
http.Redirect(w, r, "/", 302)
|
|
|
|
}
|
|
|
|
|
|
|
|
func deletePost(w http.ResponseWriter, r *http.Request) {
|
|
|
|
id := r.FormValue("id")
|
|
|
|
if id == "" {
|
|
|
|
http.NotFound(w, r)
|
|
|
|
}
|
|
|
|
|
|
|
|
delete(posts, id)
|
|
|
|
|
2018-12-10 19:42:28 +01:00
|
|
|
http.Redirect(w, r, "/", 302)
|
|
|
|
}
|
|
|
|
|
2018-12-08 23:15:39 +01:00
|
|
|
func main() {
|
2018-12-10 19:42:28 +01:00
|
|
|
posts = make(map[string]*models.Post, 0)
|
2018-12-08 23:15:39 +01:00
|
|
|
fmt.Println("Listening port 8080")
|
|
|
|
|
2018-12-10 19:42:28 +01:00
|
|
|
http.Handle("/bower_components/", http.StripPrefix("/bower_components/", http.FileServer(http.Dir("./bower_components/"))))
|
2018-12-08 23:15:39 +01:00
|
|
|
http.HandleFunc("/", index)
|
2018-12-10 19:42:28 +01:00
|
|
|
http.HandleFunc("/write", write)
|
2018-12-11 20:42:44 +01:00
|
|
|
http.HandleFunc("/edit", edit)
|
2018-12-10 19:42:28 +01:00
|
|
|
http.HandleFunc("/savePost", savePost)
|
2018-12-11 20:42:44 +01:00
|
|
|
http.HandleFunc("/deletePost", deletePost)
|
2018-12-08 23:15:39 +01:00
|
|
|
|
|
|
|
http.ListenAndServe(":8080", nil)
|
|
|
|
}
|